%!PS-Adobe-2.0
%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
%%Title: main.dvi
%%Pages: 62
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: CMR12 CMCSC10 CMR10 CMBX10 CMR9 CMBX12 CMTI10 CMTT10
%%+ CMMI10 CMMI8 CMSY10 CMR8 CMR6 CMSY8 CMSS10 CMTT8 CMTI8 CMMI6 CMSY6
%%+ CMMI7 CMR7 CMSY7 CMR5 CMMI5 CMTI7
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -P cmz main -o
%DVIPSParameters: dpi=600, compressed
%DVIPSSource: TeX output 2004.04.21:1259
%%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: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type/integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics/Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{
dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1
roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def
dup[exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}
if}forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}
def end
%%EndProcSet
%%BeginProcSet: special.pro
%!
TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
{userdict/md get type/dicttype eq{userdict begin md length 10 add md
maxlength ge{/md md dup length 20 add dict copy def}if end md begin
/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
save N userdict maxlength dict begin/magscale true def normalscale
currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
begin/SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
1 startangle endangle arc savematrix setmatrix}N end
%%EndProcSet
%%BeginFont: CMTI7
%!PS-AdobeFont-1.1: CMTI7 1.0
%%CreationDate: 1991 Aug 18 21:07:18
% 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 (CMTI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 97 /a put
dup 99 /c put
dup 101 /e put
dup 104 /h put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 122 /z put
readonly def
/FontBBox{-27 -250 1268 750}readonly def
/UniqueXX 5000825 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f
a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e
fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65
66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee
ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7
695aba81f0260cd5248b9e649cd80219794832af151fe9d5386d1ed91db54d1f
56dbec55d7c48ed295977e18f23fda49f00cbf6b37dbcbd34dd98770e780450f
ab0bb54cb467b1038527da84f47b0cdff9561b343383c7cd96f818e10597fb39
4e91fc05dacdb7b418c8e6362ca4e803b563f227624bc4d8e0e1f76925affaeb
710c3b8220db48814ac08cc6a4d735d85316555bd4ab77a1098370dcb2bd272e
fce72e2125b0a783a9b1fe202217eae8eb51e4ee2b9735b997af5b43174c58b4
07c1c7a4b7528d6ddbc7091f1fb8d4a731d78ec08e4c996301846cbeb5673597
69578272b49423899ffa88ed9e3fb5511c3e471150a3e257ba5656d21b8ed57c
4d1f6433eb9e04012c52e0fad62312eb2a88dbff69cde9d39d372dd7934fde7f
906a9c4828c1762dd4e1ae410026c58b56db7df324dad8fc3696323900480ff9
09c9f4b9acbf7d983b9429b25d317613beae8ea83b7626fa7b010aeda862d9d0
9b45c73d841e6d5e36bc8db0151d6dd635442552fa4d942210b738d3b6258846
28e541a7abb75c347ec149ecc27a148cea9cdf7f1e6842ec26e2b9fdac2bd6ae
a7bb0a594e0298b7003b2b858a51d0da0ecdb9172942c16eec62c8b4352d64ac
ee149e55cd6a72b0e80c67782b42c244b955a3885f87c6b7fa8d83a611e2e10d
5a6fce63f0a6cbeac3684f01f7cb60166a924849aa33626d97a1f7c7d323388b
666e15a2b4a21ee5542aef982c7c88902127b872f9405c9f3ddee6f09361efbb
93e28d89714b02c9263ff96cd423a693ae2834a8f26e926aaab01f70ad759640
dc6d18b0867d828a3c9a3a8758c2b3408100b416b920aee2155e70bcf5c76920
2d54ad46f5af53045e6040862d2cd51f0571f3d440aeb71635a5d3d55570cc88
aeafa8d60f46d1921d5e90ab1deca6d53b88b48c6b94daf5468b8aebc508dd99
cdd8644bcdef8090e5ced5e7c44caa9760af4108d1c36ebf6b9c1a7391304254
e48593e711a53be6b4412b1e9462b8cf32e153a4beba46ee4f955bfee4883331
29b121da27c2a2592d2211da6b8f98471245c56fdb9add698bfcbef33e718b69
5eab1bc2435e929e301e668b1a8774ff963860f0c5f80af3964fcff65a3574ac
5e86a5622809268a6f5fed9575231dc388fbd76d0e99dd01036ac9f882c483b5
b5ebf8304234629e9c049f30a06f837306beb77ecc25e16d1517885843674ea5
5fc499039e7a7c4c80b5a42242d3a2889a8556d64b0a21db6363674438a90e4a
7f68894c32b14ec5563aaaece901a173cf0a48083551d7dc2ac244fe966242b4
2b1df87e62ac61d7963f602620918c741be13a1ca918415a61185b136a15b87d
5839e8623fff62215488911a2904a50971db93e5f62e1ae711558088afe2e8c2
5f7533d2d354372c61c350e4622cf59bf67eddd78dfc8b691feb5e1bc89eef1d
3dd3f3dd1fd70a54f53e7a07ecbc69e6dc0480e5e145f83423407ad18c590d0c
d0dd91d899600089ed4f63adf2163fbb977e32cf02a11d5c5765d81219195672
0e7157db118182dc33cce9d5e63fa53d1495db211c2f041eba315a26d9dbac11
a2c4cab67b3d37429c3ea736e4ccaa2ac5adcb3a08e9fe32776555d449742339
9d851962358a7040fcf6c9a7a50adf01b2e727e3102098a112503bea944b9f84
4057105482fe24e2c6205c7f33118afa2879bdd0edd74abc1945728c6e13a9d8
8204778056fe681ba11ecdbb7e9a5e382a76cf3766b3e495170ba572bfb764e0
1c782cf195b9d47608470caa9ba7458fa1600f4cb20334fcfd3fa55280382bf0
539f65b67e36ea17588b44877dc3026575d8c58b7aa1bfb79fd9f8dfc03ca061
735703c87890220e2b2fe76f33df9df922b2d819ef0e2613171a03c6d6efb380
358c298dd9f6b79c6d21753260f09e6a892d6cf51829e1700c55f83429545ea4
0728862a535ba6b9b67b5e0c0d3372af60ecc0bd42b06bd0e51e45b03bbb72cb
42c08164cfa5003164214a4c8c521f62cab8f14469a8b5347921588916299393
97f6d444764d40310a3ca445008a41bf6a94b6e0e73544ea6d3ecdc8c95abc76
c3ea820437f1a0159a8b0399e17f11aa73a80e2c4ee4b6017e13502e35b93068
1c5762bd84ab974a51472f458650bd6301abb5c9200ac46b03830f251788111f
f5595020547bf0e1bc2ac5f1b3dac4a51fa30be0b7f20c018775b8d125250647
292e77fdc277d0e288c81f5c0f2f3a8158b69f5e5f0da156459af2921a344ec8
dcb44e2e0bb73cceaec1715a9d35893b26d1a038026ec87b14c9637d4f2ce138
300b0cbfa1f7dd557cf9cbd37bfaa6ef835d24e4ea0d1217a0d48728b2def5da
fb9b1b4ff20fb9f235a5a62614c210dfe92bb1f54ec9a737e76fdf25c3947411
ad8ef581b85aa0ebbddfbf6d08cd11981a7f7963a8e13eb5c41b1cedac0bef91
e430c2e9dbac328792d55c8fab639901a552ef60fe58cfa8575c8e86cc103def
a65cd7a14c021678b5f53007ce83d31db862f8963210243494291eec814513ad
239511f3fa84aea8e490b17950fbda1dc736c20453787ad3671325555a2968e8
5db60ab7ad9150f3727e241417a051c877626220fc5de76bdcebcf035ffb4a73
3fc38ef33f33740d01d914939e0b19d76a2fd1988fe9b6bfeff173a82289728e
e28bb5ab92db5fc55320617c9a8f3098f3194f04beabc8259ea5eb8399b4f65c
c9138d108508aa788005506fb307c357292e3e395838ebe0abcb6c8f6282e38f
3459b0c8b600afee0d11e5eca414d013f822cee0ccf90502e8201969e3f01507
4e2ffe11f40affcdd91ba6c79763a68a06d2f5ef03f8c878858abe12e714cc38
6752518e7f98365b7762acedf939be8e5b4fef22028a51b7b834bec9c5349286
6ef8698a3fb4a7a0ee21bead55e5a5b07ea78ebf31ec132e2c394c6bc56eebce
67c7a15d05feade6f97169f0993d5d3247f9416be2f5b7139c8eca2a01aede2d
967d3546dbf11e8140af0e9b0afeac899c842e67d7164e1e8031d7bc25384f4c
e6b5a4a36c67d7319b3b24c129601ee5d50bc28223b2702e0760dc704de005f0
9eb9058f48556603bf314c864e7bdf3d84ae905ba1f11059acdf88554f7fda7d
fb94bbec2d806741df6072dc20a30bf877a4a0053dd361bfe23ddb51ce875e92
c8ed6c1bf92fe1fe987176f33062803b6be295ea0997d70d9d80be386e082e6b
d078e3963a831f1c94e07d4c4e03e15407e9a79c2b35cd9ff1a62e2b69e1b22d
3fba9bd607e177553b6cb19f0fa1954a4f8571bcf534ce3b25ea9a7eef9b5eb8
101dc19f098e7f164c7bde1b41e8e867b4712ee819c6820207caa15acbf346f1
4549452e905dc140c434dc62c56d768073965ad65c979f886a00ed25b6ba739f
c3cb69aaddd4c1d49d72c9d5a521e3af8e5e140647a42a09eb6b21ab0b3d6f70
572aaa7f24536c262f6c7c9af6efac15da09d1299f0ce7b3f715fb41f578abff
e9930253d3f7316eb20bbcda6dbfaf9b8d7bcf8fa88cb35e0f8ece16301151d5
7b0559a39f38db422b37aeaf940e9b1650e8a4d9faf568ac576894bf4a3e91f1
ee9a7bfae3d58b80fa598df8b20e177419c66bbb1bda0e03f93a5dd82c7c46db
8069f9608adfda9a03694fab1526b45e7291253f7af3404e658f123e225614f0
1dc0bac29424a32dd4532a27f0518fbae794bf28a72f67ba8d9eed869d1ae97c
871ab2b798afa8de14765a64c87e5a1d7beb862257b3827f6ce3d47695615def
5aeb5c4b002eb51bc65374472dc9f5ca8bd108d6069cbb2124fd3fdc63e4dca2
2bd971a187b7ccb360066853031216cfa81597f3fc772195d49ac8156d00e982
c20f8120a9e29eb13fa20bc2a1f13f829fdfe1bc431f5eef01e81ead6519ddcc
18648546f9390d22a63126975f578dff5b0e98c4d55703651c60241638270ae9
9eb1535878742a1bf8d03d218103ac32821422c104b1502c3043b81b86b86925
6994b7a393527726138452f66a3c84af087b0e4f28be7e3935a9f3f34417e523
2d5ab748f76bd9dcb1ff30dab0279dde26e0e36134faf137e4367de13c041f75
93531a86fc61227470bb8abddfdd068245ec8416640289cc2eb60fd8644a620e
c88586c51e97023e572a53472b7c7eaab70a0f9cf9e4e9d8043ca85dce853843
cc5dfdae29bdfe5bf8c3895d060e57d2442a0d504419be1012c1d9076f86636c
d2d3945bb247d1cbe9ab41980ca2b3716e491124f7d79f260d9e8201ef3492e3
b18ab257cbb18df9bfeecdc872ea042d7d81d494f258f696128029aa25efe361
a19cd7542b2569910cb2e8c3263d3b38917e4c5c50b128b7fb36df25e93bd08a
bf82a264a24aafd5b1f07fe11b89a90908f360b786253175abb46ebef0f3b601
a24ebd3d0cad5218a1a899b2066b806b66500b9ec41c018ade56ec1fa077c465
86affb7d9deefedb8302f200e6d2d3121b5406c263e74ea1a0a21d3d25bebb88
edeeceffdb2327b0d27b08cb5dddd4cc1cab6372054e33fcf5bfd6e333d6f39f
1169f700d5d63214bc475d63d3577bb235b622a1812d0cbcd83a08921f02d1c4
bdbbddac697326aad3f1e23d7ec72735a20b29cb9030ecc797a3db26f0579877
915e6f0861038b556893dbf9e9eef70b6d36998384785dd214e31a4e9d2bd5c4
9367e0eef093293a1e24cc92191d300c28266463df570f991d8fa8abad0955c7
027b79bffbd15f6dd7c498fa0a4925176a4031f0127a0eb3b65ac3e0fec27e4a
511629653b7625f988ea1f114a238e06d9698cd36169a968c015f82db998224a
5c93e661642de23ddd37652900623d927b
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSS10
%!PS-AdobeFont-1.1: CMSS10 1.0
%%CreationDate: 1991 Aug 20 17:33:34
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSS10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMSS10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 68 /D put
dup 78 /N put
dup 80 /P put
dup 84 /T put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
readonly def
/FontBBox{-61 -250 999 759}readonly def
/UniqueXX 5000803 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b448685bdd20eb05d43275929a6669eca687892476
7868f7357418bea5258a0ce230bd4a90e4c2449c1bb0b09a003fcc1550cc30c0
074be252faae7ebbb4540870d857f3fa917fbc959e50a1005453d38380bb2050
ab7166ae895122c76d0fe468acb4209a6a4732c83c7b3efd4a48f01a0095a944
70612ba2a396dd6f90875a7b48a6806c6d7b781c419e0404c494a7531556efd1
08e97e770410e56fe92b45557101548925cb121fe6c80914681803e6a43f603a
7a5a56dc73ad61f0e07d23b83519d73df4bbb2095c0b43c63ef3839135866235
3fdc68c810d53b36757496e93e0278a3e9ecfb064693408c428ccb882e25cbd8
0a6816f0f43d82cd7e7f65836756fd2bba49cb58c838fedcbd066007a0d05031
7bd08ed1ee6852e941da15d26b694f786dd9aa403dd448eb7459c1f1be275dcf
da8d9eea3ce8c4590ffb24f7b35ba9486d675c2c05388d903335b7ca38d54a8b
dfb43f0aa7d4c553f962fadf9f7515bd713d93bdb45e1917d291116d3fe3c7b1
7a0303886591e6248ca7862a83feccf080a54fc9780f848d95bae09126f5c52c
88ff1344328249a2bed8726f05890eb9988e69258044b9521bc6a56ba837d06f
28f244e71c374e76aacb5c16a0713c104b38e48a94bcaf268f27a90dc7bcd5f2
f579ad458fd22ce0ddbd9aef2cb40cb76686ea2380f985ec361517d0c488173e
6ba28e55b37c3dde4ab214f8ba90d1c86968eaf684f58125d056be4ba1ffb276
aa5910aa52a1f27e7fdb93db1689aa98404cdb94185ff6e3881aeb9427d41231
b90246e1d3e0b229160fd017197b75052f46fdb53266bc9cd275ccfdb703409b
aa3554e863dfe7c5f18e4857576946cc84eaf43dbf1e7633b7245071464f5e74
e8be65b252244ec46133761189dd1a343913e74fe0d52e3698aaa9d3afef6ef1
b607cf1a57a55d52ba6927cf4bf96471530773a1347d949067bc5801962a7eca
c157925098f7dbff5a973b49e4c4b8cb89a3986085a66ed9746512d52c58d322
fd115dc8473cd0f99ef7fc04a64cf1b8241adda6cdb49b98c3a602eca01926ea
4b3e2931891c1c7de88d0cb6e7b0a54fb5f696c4c91ae52bfb8d7544fd230344
abab7b0d08df23f1e5d4d9347cbf3fd2f4c421d76f5a01d15dd2b8dd73bb80a5
4955fbf47a1c2fd770674b5d448165b816c3c0f9e4abe0928362d59fd80fef27
a7b65c5359da52e08f6ab57c73d787be6edd29dbfc28acf260597b4c687063df
7b0b128e1ca819227cbc6622b418ec38658a30d9adfa7ec53d68c419a44d4bb8
268285c0f9a006fd891fdc3c41f85d5b62f8a25f13b527cb7d7cdc0e70bf84a7
20652511e062d9e4231bc445bd1a3fbef0d602b3cda23b57370acbb676b18456
060fcadf0ea8d6f8b42d99736a6609725a0456c3474dd9b0435c42cf43d0d438
d51ea46fc07b6416c8711be23b5e8f2cacb4538ed47fb29a6e2ab841be62cae5
ce67acb44b400916c770bd5ac354352b4ec50621314dd43372659d81ce187a1a
3328e7dc597c1e7b3d052714dc4d2f6c9c8bc472ae3a1b9e30f65d79ecc17edd
759e791a7d2a55a9c08ae6e32be8204e948275897e88d9bc9fea5f9770c81b11
8247ca954fffba6248200dcd4b45f1049de23ff99c741e6ee0aa56ac5a7ba829
26febaab3a3b0330482123ae981c0eadd3dbc3527922427763c5a598d0fe8aa1
062904c3804f5688d9438ab15c03f26e82a161c83673c1c454083f203c9466cd
23b0dfd3421551a18331c069419240b7f26411d7bbd4872c872f4dd8dd1b4b75
5b951874fa7c04ebdabb68a7f9d44c549bee7f784e389c2e1b00eaefdb70b14b
5c45ced0e0be57137e6ff6afb1faafe793027b3972a4ffecca2120f31d44c289
27e0df68e5b4b158143aa5270e426be5712582a7eabf01c8f34ae7abbde906e7
7af3ba3f13040e693d0502522e24b7fc87b4011307e948cb3a0253bf248f7f66
f0c94b5c844d56de9d90c501fb2296b2effb65b2a353ceb3c49aae8b6ada619c
ba85427ba458f667a9a17b2a99ee6f4713cda83a1f4ceffbeddfccd1f13d3688
55d41a0e64b01c14bb00cc40dba0e7a8a26d11036b38d8c10cf8439fbfbc508f
83739374524dce50a24200b3a5a65d3ea57654f58cdc44fba2f061b36469bcf1
ec6217aaefeb5b0b8a2af2ad741cc4d25b610fa250c744a2e880b6e85cc06be1
1fbe8e9ba20dca3d8eba57f751e220e6e56f8bf81255e5ab15ebebf9fc29e01b
7083d0f1ba8273f095ff19114b091e1bb7f881d4cc88772244889d5702b45f14
2681b3655c75ffbeaf7b5c7a8381cc6c8e8b094b334eb2759f3535dcf7a62fa2
d5b756d943950b09aade5d6a687fd45f04827c142001b8cf5d2ac3c8b9f6f1db
3b4a161a7155cb5513013656fac2b2f74f01a3b3d5a489b7a847f0bd689ebbce
2cc5ba3d25f43bb9a5977b7472d2b3bfe36bb61ca134a060073024d36c76db20
c29ff63adf42c780bee43287c586fb74cc3660b40914cd263cfff51160eb092d
48066dc44d5e963e1d6e46f6dcae73f5094ec7b41d8d1ae101d780256925b0c8
1b8d68428e77508c689124be4ddcd05a473c8f0addb590e55b4ff2e49f530952
d2514660073a63816edacf05d5f2e66782ffb57f7a60600e3f1aaf978a5bac59
9e8b3dc74cd5a77b9298810b804c7a51f8154c88c12f73e9ab28728595090ab9
5d63138e93c3ab6bb5803600ccbadc06df5fb1d79465fc732363645db153f550
79478771dc666c43ed3fd8d834a9750c2a3d57ab5e5ae0d9c5ae4570adb57668
8cacd043bcb2e519bb570567f7f9fd6dc62fa38606149356fa19232d723ea98d
92cd1fc6b7cec6111916c660c4f68b7b2bc320fc1ac19c7f1f7b7a7034c57c4f
3233150e42350c4c06e8a26136ba4d321c373cceb61203e2083cd09915e2f25a
c8fef00dbdf02bf204ff48f25e9848e8db968007183522b60501907b7bbd384e
636191945bf28fdb4e383bde2752540fcf07e99ceae0c25ed105094fd0e21c61
99811881e8b2ec0c6bd62dff7d5b8529a1afa8f821cebd86d2ee4f628b80dd17
c37a917387ce8350992f76e172f5968b5758f3c4b9ad2619c430626ab8d4f141
cafbe897b86be8b62a176b378cbebe2e4ac984ab316694fd0eba886c6004801b
aa260d85890548b10625cfb25754fc9b11382a4cc641fa514a38dbdd0e4730c7
542f3150cee984e3a1a14669f870d163f9e28bf9b129cf16f883b2cb9ec60e4d
1c763eaf0158ab8b57d3a3e6e03f82704f0435210b27267f896aeb90cfa7a549
9e99aef1395fe0a78ab55747cf9fe07d73aa6ac6da6278973db9db05473fa0ac
75bc1e08bb98a3a70e1e999aa4cfb27ed15b7f9c5101d20db2632e56b9c60538
444771a490b4669e18f13664ce25f9f51430b18c3a5cb825eb904cb887112c84
7f8a7fe76c5f9ba1d0400a10dfae663c75b191c0d64ea55b94dfd0151de61a98
b227f5aced75340497f735fc86ef75f0f20167082d8100f9bc48e38dcf4828c4
f4b02db7a55a4f4d2bcb2087b2502295e01745102da79232d0c7f2e892c8b931
53c943986c634ba6dce429b3ebd60ad32cfc6cc7281f057c0a4617afb38d9920
5b995e90104ea7408c62099f729cea1972e04769f24cd4a843197bfca14000c4
a723045338e9fde4d602b62ae88f85a703745b5a8f0e35cd4680389ed0d0643d
73a4f908fac9d7f9f6c392d5461d90415af4eacba0521721fdd7ab7e8f2f4685
c8a88258157f4cdad9f76eea9fa837da162bb8d5808a4c34175c9b7e5e5e19bd
4ce4bd24b3dfa93474d8735ded8135b0017cb17e8ce29e29f6551ce73283a7a1
276d8f56b01b6d7b71ec0ed49ac6b1bfcc3f7126d19e8b871f6e584f119bfce3
a9c91bf490420765e974ce226ac1c0e76e5ef5975690d78e3b3a748abf589517
4c33b5f95cf816c39d8e47b435c1b56efb307985b812d5accd176dc468db880d
32d0d7d706ad70fda6fe036a1fbb80e52667895e7a9fe74c539535a3da96a51e
89ee10748b03e675a70389103afc4c9bc5cbaa98c4469b96ca8706842f3a6ffd
5832b024c36b6031b2fa9dd8c2a5382bb6a4efe767a69054d2495b6fa5a1d809
030ee74cd780ff49bccbd509b3546daebd78a035a3ae8bf2e7325daf33
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI10
%!PS-AdobeFont-1.1: CMTI10 1.00B
%%CreationDate: 1992 Feb 19 19:56:16
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 11 /ff put
dup 12 /fi put
dup 19 /acute put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 49 /one put
dup 50 /two put
dup 52 /four put
dup 54 /six put
dup 55 /seven put
dup 57 /nine put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
/UniqueXX 5000828 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3ffd20326947b1065649b533eb5e9e3
a88a87fe987918a687950b26f647d6e08bf14d983ed1d4a8ca1e2da8d985f944
2eb916f5b6ed0697ac7c33e1e36a3bf460d34ce45f1631871097cb04f18e3889
4cf4ac1538eb19481311d24fe3be7beaa4a3730e8b4831fe59d6d9ce2e46116b
629c7ba2f9ce3ecba2f43bc162a5a077ca1b2882a42afdcec3f4b75b5d63e0bc
8e5dc95257766d8ea467ad9cbaf47be60f797580cced6884b3a68f70c91f4fdf
80fd00ed9139e7f480dc3a76af72ad9b434187730bdfaefe4cbfe5c7edcaaf24
9204fd703011932e5a3c27be468b7dab69daa18dbbb6335ab8ddfdc607961c7c
02582763fa069d43563ba17704029945cf42fcb19cf78c51df0ec4d851086d43
c1ab38e865ef36865fff3a08b01cbcb070ba4893f7482dc7819ad03d337e520e
7d8cd83bb8ac7aff4df36751f4f12aaaea2b6d7260c09a26e987c904003e0723
7dbcc4a8e4e85cd3259f40d3caf55c742cbb40ad0db1044c20a4f122a63f7b81
1d945bfa69662189ce4d089464d2ead9f6ed60b581b04114d5d45e97be27a576
35154e9b8464f2a0df18da855eb51b8f64d3054b0b2e84621f025a0776d16fed
b988a43d2d64c32768dd106b9f541ae8e68ac0bb7399e16f4d4ba074b2152d0a
4e9b5bfc21bfa0d531e28165e518ffc054dd4ed0d74eca079d20e79670419f92
e03bcbfeecf3554d661596f6f29e12170804d15a250d917ffe7a8b6e8fa53047
1ed97ba56481589a65ca13619129f1e26affe6c22f0c38540f8ce37efb6e9e9b
60b51a5a9cb4454fd7c7f92f2f9437159687ab590f35b946a54491a7739c9269
e0f1fb48b129811c82edb3171cbd5105fe65906974db8a7da92f4f43dc7f6b36
6981146d86d23613a0b38d9d6191db9fea0172e982cb1cc50e382f69da1b377c
1be9407f88a2a761b56f398467a057f35d18c01cc377e006182c891ec80272e2
2e3a5c7123cd27eccdc87392a9fdf63bb40f02b7649cfc53ef933c6518744cb8
9cbbd437830ef5b1d58b00b67bbcf4426dc1e6ef583b0b4ad3aebd741e3ff0f7
29ae271f032019b1e7268043fd215be590f9cf24da14a90f1683afcba8006cef
5d5632c2481fbc1bd8224e8952debb7c4596a237e5505ac143180956ca1f603e
ec70cdb4a33e1c4ca174436a38b06fd9d2b9196f02114b77a9a5f66595727faa
ba323668573ae328f1f84e5299e9eebaedb380024f83e0ba39519bdaffd36eba
d88c26ffd8ad02b0f3b11cece842d5a02973232999932846d95b6eb507bb39c3
d2bfe42904065c637c3f27e8bfd224a50d1d6adb4fe4addc41cba8253c3ae97e
fa1dc8abb62ba4ab86b7a4ff9a810fb0ecbc71c06e9089fc42a864d6f5aad7e2
276183beedef909cd4a4fa2c7268cd8725bda0bf1895a671dff05e8a76de8004
cce04fd871006ccfebd0e08e0541af85c96a5db4018c92b440a66ea0c4d8d0fc
a5271ff144c6a43d2f334f7c0f9ea0fda591438ba271a63dad588cd801bf73ad
97b87815345f3b60dc4701dd38eeae3c214117eb03b82f1d51fb326f67ca490c
fcc6dec7699beb08e736ad121a5e2aec58aee88968ac9b2152ab5a150b13cc99
b62a4bca0e3e3018830050df4f4605a4ce2fe2696718b19a9e469bf4b4c2c922
6101e0d9fd41635f13fae51bb213fa82ae6caf0efe7d1d4c90ad8d3dc99377f7
d91a59b09bc4439473357cd59ca4ca86537ed0b8910687831f0440af9b282e80
4720412a1bb48571274e7f85a5a3f8aa60f76eb170acd56113709cbcc6cc56fa
dbb73274a6ee7a2058f7f0498853e04a50fbc43293d3a6a09f8de426e1575987
6b4cbb04807c9fbaae97647684974411248db0e21e9624dc6c79ec4ef53006e7
dd54ff78597cdd37d2af47dc0dd9030ba31294c68dc39792953af0cf49d848f4
03c5dae2498b55b3dcc9001e4566435dbaefed7531b40c11d263b17614a3dc0e
03511a7caf707710e4c35e5d24d5f60086ed6208dbb917a17fb11c67f1f5c2c5
d050731cbdb2501ffb83f4c90e307af9f3abbaff841d26c189a91445b47cfaf0
2f0fc6ea271c58493e50a7b8aee9239a4b70a1b4aca80d12e719150d47591bcb
703de1ddaba1cdfabe8b6209cd15b696b41d6bcd391d0f01de658821125d6d56
cef40a2b73e0a3033928fb68cc6998fc3792abb46d25bde9662ef518ca9714f0
b018d3f82347e0739b609bf957c027e082d5ef1a84c46a0f98b7c6610c43f41b
b74989b8256c583be6f0878809f59fdf27be69bf99f4c070a8905598465dddfa
1051c29f730017ed94259767a1e6b9069c3f6b914bbddf57661eacd398c838fe
4b1b94a0ccb57ce83b21bc74f7b4f090c35b7b913478415ac0cdb3dab395d57e
c25baba3c8c2f7ec1de381edc43cf2ed409fbe9b1f2345982a9dbe2444997f12
a8be127bbd3755bd6e4f7c13e9d889dfa6e154f2daca4f940f7a4c0e91e0a2a7
3d0214af73ea702601ee947ad883e78ec6d9c85203a2da83a221db40e1b71510
0696a0c084f01cd5404e3e5149fba545ba2430440bfe76c96b9c1a8f280b3b2f
689593bb0b12647a5be6517c2e5fea6fce154a7fa2dba7728aa6f4f1f164267f
e6f469b68677a98e410f64871b66e9a4cc17c82991a50ca02fc181b0aa528f4a
1fd54bf20c04d42051d90fbdd9f8dee19d0a9fe75a64928613949fb456d115c8
9b8e0af328c426a7565bd16557897887188708ad9b5127e2c9cfc1bcd7d2d856
30088d9d8b07d771241c48bb5c6d3c6e53f40b2ff3c1107f9a85422e98fc5d39
356aba42114d2e2e56de5abce24967e382c902c70190c61a923dbfad37857570
2d5bad43c9012dd75836c88a34ce46c497ec1ac673f202d1f3b93346557a488b
968b1c9ff19feb0f54d149807f94f1a87f53470804a13ba7ed2c1fce93c548ef
9ddf007a5fbc5abed1c17fe3870b7e25f15759fad2968246de1719e3fcd0ef25
7745fde6fe4a97a72468d7ef9d2d44dd630f61e50b05fea1df2ed3a5fe0f903e
0d04f553a96025e7db905586ed81044412ddf59ebf187b3f4623a9fe78506b3f
237ae098608d7c6de6e163ab4688253370a67fdf9ea8e58b61d50a5371ad4ae7
dfb06100ddf38e1ef8a20614c30afe5f097eda61a97dc33f1f1177e2f32d2b4a
26c00551176ec7efd8a4071936a0128b26a31e114b72a8b95bd7e78a766849b9
04182930f0251288d01e8d5dd6c5c423e4696bd3f943e6fd411c9ef36e868608
2c86db74a39f800eca38f9fc774f5c512d84378b2f87b8e334e725e8eb2f518d
cc6407b73be9b17e2465cde4ebd3b26db5f1f22a45ad41252258e88438005695
fbde7b01ffc5776c64a0db2e298df5d4b611d51327eb3ca0d71d5349258b0d4f
a5c96acef8b45f33a4a2d2110136f817faf68941ff2e978c2c17be02ec025676
9db21c7b853a6f05b338e3585cfbbd33589f3132710522df47ac980eea5d9b20
a0596f91c289dfefd7e19f82a329f0e146caa91366afba17ad76386d85eb85c2
48ff7c71d6de7615c44d831084aa212e90dc29800426e96566e44c9f9a2ad28c
fa310d3f561e43340359997a565cc95c32da2e87cc93e73458515faf58d1a3e3
e4c72127acc8b6e753706eccf5b290e20c15d5e0e71f9cc9c37b668f0451e2f1
61d859731e588d875ce97179cef637e98e906320d02c3f770e5ef34614b026a6
68eed0f56d2000263264832356ca56f9e263cd20eb9cd49d86521de046fa76bb
ad91139b088b82a90b2d01b95bf35c88deb1f5dd38fc29dd349f49ae91db587c
4dece9490406c859e536bf581f988ead9bed00ac973627fd3e876f831c744149
a729360e922d93bbb62598e286521a4fb375178c271099ceaa245b589989cf06
2df08ffaf90a1d634aedc986af0655b44a0406a86ea491a89f232fae489755c4
81500d290917183219057afb286f242033282d3b80c0cf0c9c60bbe9a39b8a46
c4d2dfc9ff0699ecd8ab11fc99a5c6afd92b7ff1b4d07c595fe19806a8481376
9a7f109d69dccccc118b2b65201586af2dd7530aa78ca0c89729222277ca17c5
29db52db1317cadc4e149947bbde21c759b38f4a69c98cc6c0b8c1a5359c3d08
c6d7237839c250a1bb6bc1e87e468626c3f483537a4a5c8e7c3dc05ff5f320a7
b532c9ddcba2d8fb0410bb7d0eea4bf19f8dc2caaa4d8587ce208d3aa4867166
0fcec5d38c14c665dec50048c4c40684906dd6772499531c5f00429cce739d5d
476a8ecd4f7686065094f611ae6b006cfe105bc49616e8eb8981b93cdfb5e15c
59dfd7affaf9860b8b2a9daea7706e9b1140e6bf39aa3522a2bd8dc4f6af4b6c
87640dc2480c674f9588f5d8385805049f1b61b7265ad180695277a6e07d5356
506a69ff62a2b7c8170009a92dcfca8ae50f4255714dbedf19e2f2968222275e
20a6db671b347dc8376ce536ad475a942cde7aab9d9944b96ee55e6cd735d9d6
b9e23a9ad7f034855ee6d071a83744ce662fea75ec9e5b9819a3920fa624d902
b01408d1939b8e9c94bd3f530eac567248122c123a05b3a035bddabf79cd64c7
5df8daafa5d8d83773ce9a4b6318b24b97aad77649a44d91a6d315e811280bf1
8f569bdafc2b5773567b0726eca39ba8fe78469ddf8854175ce0b583c49ac82e
f01acf2a590aa05e4fd152ce06d83ea97a11e987f99222352ffa762617b50594
ccb2e42ac02e33f7a2cc15d5273ad32a201793d5f6087ec6c111e67820fac907
0957df2e260f94fbd4d7fa7f4f45a3ca310c764b9d4454089dd03cdcdefa3e2e
886229802a6543528f1b0723b25ae756e769a4c32b915a5234bd391f5b32b807
d56f6c1705f1c634357013a143435599b723bc937cea3ab10d230dd227a69493
0087f05ed1c2f3ccde78f8b1a9a0e4bc1963c06a4db02247a7b36f79d54fbdaa
6ca2f93d14ddc570a6da380642f60abb4f245e8f6a86ff5598fd6485f55a5f36
333830d72ceab7df8c4f21abc6e2da107b7a4d875829ebff32467cd9b65abb61
ecffd6b8b0e45e9660ef84c99ec21e3cccca60547634f43e01acc2d10d54fafe
88e442c6b04cbdba8aa21e45c11ed357302b225b4dcbdbe157f601dff0f0c46d
9862b8e569f4b0f8fa09a97377c2c7b481e605bdbbb75bd8250c9b80ecf7b7a0
98cff7c8504fa8a948de57768b140f5973696d85a4b94d0c6b65f210c404c49d
8e223f35642abc63a4986f5239bf7ad2b7a2bc04fd8588eca6a28a5f9606ed7e
a633b9eca7d162a97d644cb3d67abc2b60d9c41aaa2dbc74c957f1169584737e
89651e4ee5c2263e406a35a47312533438abf01d647e2523639b373abf167032
060690727d446d9edb67711f9069855075d2f095b2cefb6f05198e44663a3612
7708bd15c36223677b843378ce0740ea7342017c067579a8613b61f4caa819b5
c2946060ff2eafa4ebaa871bce47b8d395dbc82842937709062b3d5f5fc3fa53
7c664d14e70ff9cbc42fcf7f5461a1bf2cebe7b29845c0611d71f6593aa7de59
9b01dc090f5425c223bd1166ac6c4209125e672d0cb33f423d577dfecca16486
5c975340a263a3118ff63314560b8556f8498ccef8719917e91ea2b7fc0e977e
382c2c0b9a0402c089e335ee494fa3f7808e8498fc600827f2485febae4809ab
88fbe22b81dd9818838dab7ac9dc498ad2a7f5d332c0422a8fcd9ab0338de511
b42891b7c8ad9e0e0febcf5731ac936e049392e5e36585de176743057c739540
e2e7258edcc4e2269796722508b01f25e386acc922898539ce1241f195d2e5a1
044c425e019e09b475277776709dd59957eaa9c0a40bc9c10874046263cf9aa7
e8a26049eae0cde9e97295d847ecc9244f27055c0e04e5683bc41ddfcb370945
1e0291c778201825c3de4a57084c63f5842240927813a6f14794046b8ec3cfad
ad7dd54de4d27053260e56555372d3a3bbda5c7ee0470773dc19b5e57966f0ad
f4b2916dd35886d5fd0ac16d1d906775c64887092597b3bf7aa6c572ce4f39aa
38050d77a2010814989cb014df2babb701e9c33a511f6b6363613ef4e866e8b9
4f145c5af00e284777dd69b9d513b3e2e9e9e83138f190e91dfc7c22e4a8dda9
bcfd1d086402aa943a05507dbd6c314422e7562f2fdc47ede74bb510504067d1
969958173aecd892a18f033853c2f17982a13e93b9518e4384fdf9a0e4cfd04c
5f02b9f0116783a1a1f349fde875432b9666dcc8c22257b68db61fc6ee90e72c
53ec27e254940dc6e3f1e0a5407352003952d1495fe4bb0fbd3afbd3bd43dc7c
9d5b6aa9f50988efe3cad9118d83eb6d46aa21b907149dfc0b493f3f8ef7781b
bdd5b0b377894c6af2c3cb815a67dc31007e6ef3e7ad1da3f6a1eab39df6badc
1198bf3c09ca1b6f202e7cde951245d1fc91650a4ac427477211c379d65e672e
0191a4c69597182b8a24659848c03a75d215095d9d428061bc89fc75b71011f2
288d9c1d0ebfdf06567211e7358e02d7a06077cba45da73fc6589140c24be273
4db7e67c317f201074f9370c8a7004a120fa9283a5d7159cd78acd515211f30f
8da3f8c108bbfd91e5e838b7bb8bf027b81b35240ed21a9c2f15789d9be92766
24c99f6be73f6c9d2df20b4401443b1928ec0632441f17ebb0ee6fd8a8e11d50
2c59bde04b3216bd7c8d3cd4c7491780990d950f7f5c9e464a91dd4eed128f9a
8ae5f2de36c2904e65cb4ba79d33c81c694ad054df5e6d7ea1bc82dc1962647e
74ca8c0678372a12d3da233574a0e52f2782e972d04135bf0792af60f43cf65a
ac66bad86c4715266d0618da6e644b3633edf7cb63ef3a4a5f9e7f2c1b14e9f4
b0913c613ab392dfa65b97b5d9e818dc5a5b5960886f2e36e6d562257b7c41c8
323ffbe2d15eb5e10fcb03e131e1caefbd21762fcc5aca0a86a3885b6e139de5
9c9af0e3dc9f5a76788c30babf1a87c433232585ccad78f85a4e9f4f8fd2bdfe
21aa3db58fbfd1493bd3c45e05cb98d672b8babb9589a0613d10325b2e878efb
c7a6fef0436105befe55e1d2b7482f9d1e0493de4797d67cf7f082264c67e9c5
8397206e1545a65aae69c7b83857502b82fc52d8e5bdd5f12c97abfd5bd50824
b6026c8417225d396c21f2f9496b736e0d116d581685a215ba481ebff138fca4
b43a938e288b4fc7de0d25828d22a268b42eb89066dbbbfaea083e1dd8b4d17a
e3f33823a8f67f3614ff7a46dd939be7364d3a785c16eded621849a550579a3a
ce574eb63788b047c395d9a1d975f6b26ffe79e789d8887fdfe500a76a6abe3a
849d19216775400e7d992a35dad4447aee4ad66da2dec2776bcdcc77d9f534ab
2b0618357e896cffe8145308947081d877248d979f22a409ef3eca0c7e717211
e8369a1ef491d5e758335515a197caec15e121d0133a13d4612644e2f7e6a2b2
5483bb9966c698fb4ee8d02c547cc15d18791f3d98138889d61925dcfd675094
9ed8905e5033c0f3b762662ba2d3bd4df250c286d621ba7094de077b8020babb
58652194b68051defde516ead20d01040ed8c07ec3ba7dde62d5c93dc6a31542
f499cefbfd623c20d45b7a8826537a83cf37723ea4616529725667827319d274
dc2187716caae47b59abdeaa3d26b503d70accdb89368d306e1264b7f70749a3
4ad9fae6d5a316ff0cdf7fc65797496dd408833ac252eb27397725dda8c91a51
c34d55811ae70c07669605dc3369342b579e67fffd547ecd5a60da7a895a46e0
81e57c4437a80aa5596cbdc8878e601ac539b7766323c40607fa01dd80f2612c
ac88b12f8ae1956b749f3b7a84a1c4fd42e47090bef5ec999c9c1f9279c5e3fd
3b397a2a61ba291f285c6656ddfd1ace17a803b42a70462bfebec6982af65755
6285d35e136e0dabd1f72a78726999322494566f163eddbd556c3156618915ad
024c1b63c0e00d7ccbc11c16218670cd5a0b315d9c86ec5154ce69e6252eaee1
4d540328034366d59896fb49a3101c147fc34af4e27864fe3adb350f49109a17
f44e4113801a753c6930309f53ebf25b3f5201586cc5a72e1b824123e731acbf
127dbffd4e229f89b725f452a4c8bdb135407d6e4d6d3a02eb9bcef9d23db7bd
277b4fc237ce1c49828a2a234d3673b6e31ac83dc7ef8b7171eb6b3d7479dd9a
49df11c083eac63e6ffbff5e9cac5ebe73bb99cd284bf5c7bf15ca992fd77b00
8a83aa001e44ecaf44713f6c8b1d20714f5086eeba8249dc1f00accfae3c6e88
350126a942994a8b914641e0750fdbfdbdba1c0f0b93a87841272f7e784ad1b2
ef854ee6214d383a484b12021348cfbcff0769575905ef9a0783e7457933bf71
dbffc724d4378cf8047873e36c939dc0add90ac4edb2a6055fdad5b5e84389e9
8e305cfbe9c024907163ef0ae6247e4efe9a2e383d5be2abd32ea2da6c2f9035
14d3d7ce7c0bbd5405f9576cf1b50163a5ff4e110fe2f3663cd7c4dee4feee2d
eec1298c9cf38fb911a445ac62b41c4113dbf4514b3361d29e2dea3e851943a3
2abcb1c1f3d88f09817bff50a7365f3471ba1c8d517ab4ebc848b69719a63cdc
663946f757140153b1ba08e5375276aa8cf036a2bc7afb5650f7898b3a25bae3
7fe27d0ddb2ce52805e1425111fc120c5a78089374335466279e50182552dce1
464a44a062ad04fe270cdd8e54bc60e0958a941d46352318d88f79613728519c
0b082d45f6a21d4bd18f6dbea56684bb1a6c683ba25bbf8ff1a5bf4fbb0c8e0e
2464a2b46d3e95ee3e98bcdbce807ac1ea6291482b9bc4b1cfba54e7b6424a39
262ff8f307ccfae1c1b86f8571b3914f1fc6e3794e81844314f43087b015917d
b02e79e5f60047a192564c48794178f0fd39d12622b8f40a366d8085fc1b6077
cbbc47611962af20fea22730fb79a1a2e59974a310cf18fb2e755b3835f12a45
71448792f483c49997290e50b2122065120f099ffe533eb8a3c1dcca88a9b0ad
e1e71a2beba6e955847f95e5950831c79a378d473ab67012520c5a0945f5532d
9d0605444c0111cfe3a609203a24b9ca77c78d40de0343967d4755d44365e333
5602e7db49fdae7590fa12a2f19a5a87c95b860c44acd7baa8dfcba84de7b12c
d9fb5c6ba28aedc830c7ac90b835f129c98fc8cb92145fc8b4e7b6067150d8cc
436f05713f3cd55a9f36419d6fdd1c00114c4f0df9aba8308ec7977692078c45
4686df11728310d026fdb4e852b70fc6f099dbb3c6357ca0deb038c0006cb991
e9e3d4a30883c4990952ac631de531e3a5201ea3f188c9712b6cbe78dda96010
14090d3e706cfe465b50e09fd51b52151178e55f556250665cb158792e0b81dc
be76e573141411c70abf7405b2656498ae7499f840ed701ab9271a1f0e9d69bf
8122d87de4e8fe7fa747a459cf1d40e64456a79964bfa3464aa46acc793ee80f
3ac76c61e39cd5331803cef91ae7fa5c989ab7488f4289c37d9fd078c8821950
c498250ab5621c8b156bc683862fd7ec7d1efc88e46db72dc51922c4a5f98255
baa528e22cd8cdbf08c183f284a5710c6096ac4eed057dbe68b86c18f3b3e6b0
1dc91fcdce266c44e7c21183734adcb4b3dd72a410e05f01a9a9fa3ae6ff881c
d315031d63de030f95b54e616288402ece640ac8b8bedec4fbceb213574fa7c9
be514709776c305815a27b844fa76c00ae82df11a8f5fe18dbdcd9816065fabc
0c10d0aabd9c75b30c68ff4d3de7df8a68be29d8ebe3515e0e4371e85905c908
78074044383cae7ebd625dd9844d527165b35a6be642e9f6c21bd9ce7e610a00
e39aeaba171f7941f89a7945cc28273516772fe26208178bdf8155277d99e36d
256c57c34b4ed71fad03d62447bbfd117c7c2ffcdac1aaf3c47b8fd4f29292b6
3386a3d3707d9e0143f9c2a4d4cc139c795c8cb010d6afee4731f4eaee6d9296
03515021c0e8d4935162ccaa8807124416b7865cd333141693293bd6b2ebf479
af79df43a67531062b2ae2226bdc619695413342deedfaf0c1581e1fdcd34254
f6e9984cb77cffed8002893f3673040c4f3cace882150850d4d6fc192beb9858
f864eff8e875471d0365a7c03da2797580ecf6cd0208b11487b45199907ee11d
e4f6346cec1d2d4bf11d1ea28fbaf941def307fb77321ef0a6e38793c8fe73b4
07fea832e309c59ebb08a0fcfbd88e95989cd13ba16039fd3ab8ec62f540d7a6
9df2610ef72aa642d9b7a3214be3669295392f54be435ec9d96d77d612477ea5
0209b77b5f15dc033588dce20a7b1018c43faa71c15972a372c80d5d21e286b3
f9e913fdad271d341601d53a69f43cde67ae10c81d9f6d7ee7204b4c9cb053c6
42808178577f6ba874a22eac0703363dd974e9ef16531e4aeb9f7baf37b42324
db324f1a6723960a654d43adcca24ad47c0a7cfbc4e8a78f8aa4aebe176cfd13
18a52d9b1ea9c0108175d8092fceb3c0b5aa1da40790d3e70e81ccb047d64959
1d8c84b0ef44472c7b1a04d6d48c35331f8f8ef32f8c1efb9d5a75975cbcea99
df395c8a78ebd2830d4a6ce2ed7baa55508f18ea9ac338e2967d05e9bfcaa081
ec43700f8dccf7431fb0170a4c48b6b5b171d27aedaaf30aab14a16ab2092a5f
a634f5301c94ee46c5f1c2b108854d98c4562d9e1861d3c944a89ba9b68afcfd
9d033bbdbc8cc0ff464b6afb259cb3a7f432249b704ef59c4ebbd24b29b0a5b0
d1f7e4d441c8fa0eb75b6afdf3353d750a378bc6d74a4b81dad8a0bd28176652
97415e5539ccc3985a860c46844f8a1514cace878fc0458c883c5e2cf3ad3057
bf70f878b3248a2cd0bbfa83fa7d09ac75a46f1732882b84156b3ce7ae6b3034
3cb98ea771ad0c2807484cb15dc71d208cbfd95f6db9c25eac6b5a059841ff69
458f23c503296f408db76e3086fff0cd68371fb9968900afa693de20e584574a
f579c8af1c88248e1a705b51e0b8beaf46d7d4fa086b22fade134ad41e100a1b
aebe476746c3b5c798419e8b501810ff16c1880b67b6e3bed6875cfcc74356a4
e4f31c9da51b5a6fcb1d6299e0f83c0a222bcf23ba7dd975a148ce49bdcc28cc
a11d252b140d686ecbaa81a19c35c5c8c3d53ec77378598b4e9ab0de5d1f9918
deb2d1b47127779e7bd2e21b4d94a17cc3e01adca08c8be2ca4122185f6b36bc
e86f264f836e01a3717b9ce1240bcf51d83636d0499a4121ca95700be8ab0066
d5315ad0cd8f758915780c890c05d37c7daf1c23483c02b5210f146d865f6466
06a11e7d1c09f01704f3da32c0c29008ca9c7c1bd4fe2ba4ef0741443592c2bc
824a429a8f76d6e791440ad1226cedd2053c768e10623d0c6020b8bb2e80cf43
5a68e0786d492956f3c429be6eaf4dc392c92bdc8842f894bc38bc8e96e37755
9cfd61e8fdf78388e8a90e9e376c3a59122eb9549252eb18c4530fcefeb5b74f
4b61aa738356619f8df015bdfae915993e8e7c9dcf0e902c40e0d815305f4bda
5d910526c4b17e3404e22857ee691cc361026c888b34ddb902fc522074dfb446
b35efb350b73fffc3f6d80bf7c7767e60cf654977a18ee35ac2514a2bc8074a9
d894c54724be305b4ad1eca6df3b4161f00d17d46c91a35ec2765ba06d246987
463f83603a9cae4b73c803e71dc058f18647ff31cf66831586c79b07563cc391
f20d459244f739b7e2b54ffd4196ac66afe195eec7ba83ff7ae7f03b6725371d
d03f1bae5c7906c31795d7374b9682961a521fd96d30af561cec82f50c2a9ed2
be852397bf7c95d65c4155e00de6ad0c62521ea89b4342718abda1bd0239c7ad
c4ebed11e347df1faa726515690d995d723c444d6371dcd44a6c6a4b39fbec92
eebb37767f9f45f359197fe3bc1ab5d36e8ea0cb535517dd33d5491de2aad16b
55872c9508aab2f390f6adc9a664e03f0da059e6786f92e5d688b6ea286baa64
b8b8128b3472063015c8da7f501ca248bba9092ff412a956da6ef0570737e29f
61f912d3b56185d7c262d3d25f61e98d75f31b67a24359ac1ae8a8f50d82bc22
da10e23bf9bc5241ee36f5ecf5778594f0592d459f9e2a31278d285aecefa80b
511ea1607b161dd2fe9497a8f72bfd0dc733707e6bd014f84fdec1d8b0a7d4fb
f3ddbe7a922ce6ca698d38543fc485499cfd0cfa7e29bbba4509f17249bc99ea
a6821a1b4921833dde8c4be8577aa40720d4e5947deaafe1227c3fcadb6692a0
cd3da5b284b060aea83c6026a84057cd4633e160bb466206fe05cbeeb0917c67
7d0efc6f242236ef02a61afca5df102431ff777de7ce8b0636eb1d510d076d22
3274ac1bf5478b32d199cde5bc91a0d38aa5975687640ff8aba7aeb7553cc32e
44bafc1803017920730608c8248fb7ef4c41368b09311f1048cfccb9b085443a
a04220c5853c1c31771e0faa84191612c2361d0a43e7b113462e31ecf1e40479
822690241a8d38f64febd841a9d9e00373f9e0b0f4487df82be88faef3b0a0f2
b2fa9a68d5beb115d5713ad748c517ce3b7cbc83ca3a96cae887d5a938010ad6
3f834eb10e3ac55ba3c3b3795aea1d90dd5fa5192bc1fee03bafc312070c5dcd
b39f471302e5ebac870aefdb194fb55f6e40d9092c1bd707db9b779b0614d497
eabd188676b706b829e55b750296301e88574c9a2c26d4ac649f6229f8bb243d
43a12e95c4ef6591d0955f431403fee3e0ae3cc33c22e342ae65b2f890f12b6d
c6531d683fef12783fc935679d71127d67bfb7bebb2f484d6cf1f2d08d5acd7d
96921418c9bec1432233360b74f0f75eeeff24e31a8081849d0c26af2e716ed7
1fb66c74c9568fff4f4cf58d0cedbc2e921ce6d8fb44a305899f39da2b86ff12
4a9772ee8e9b3c6758d6a3970e9e8f513ec2b62bcbc1d14e7ec0ec4f49225495
7e510172313e689c56bde28cb15d4c808526846f6ee8518fabe0046651ef8671
6f3102deae196de824ef08e9feedc900e49d14c2961cdf40d7bb4e7c47729eac
0e834ea50d4935aa89eed3f456c9f74c465a6a4b14e7ac7b0228f3ff7d118cf7
ed7243b5ac260c4efa0aa10d2912e066c427dfdbb8d8f0bd91959449caa60a97
f19e6c7329d64698cb650a380c64523105e3e6934b8640f633bdb5e673c86f9e
9e7f9b11c46afa1d9a55136e963a8401d6b42bf968a0e3ddb2fe3dabc79d3b6c
a85e125191ce66ba8219e3cdd6cb700990f95d5a41760f2695aecb44a3bffc8e
333402a8181508b30bf92c2552dca5b7c1a513527d0e4874034f3d9490b96472
db6faf539d2166f0da3669887dd7edfedf1f311f11f486d722bbbc23286b010a
5ce6cd9c9d5be2fce423cbb208294c9f9f154dd2be0f3c8b9165709cb5461f8e
8e32a14f8034bcc60720ebe21b8885eef8edbe0a1c4b265d8a09183d9a405b18
657a9b79b8e91085d402dd1b59a9bd2d89212f2a62d703a05f2c55bb2a1044bc
7e4d4a81aef86d342363fb8bb065816ebcae0ff39fd869f9612f1732d1d06518
7d4a48e089b556127658a0ac9b145cd1fd07f8e9adff1f620e3a08b78606d51a
ff4e436a5846bd0bddf637b5f73916392f63d24d1884368691f122a33aca9b69
e9a10e3fa30c24c566a284c5e50bd82bb03a1d9300ff689c229ce2f7f0f3e252
cda9375ebe4cdfe427c50b7900b0901f94ffb447011815235b45140ba49d68e5
046d444b21e2302947edb1c2e4625509e3e1af983e32aa1237c9d7437ccc1c5d
e34e14c08b3c7536ce6b5606e7c577db2ad7782eabf8129ed1740dfc0cf66cbb
a52405e47bef83833ed8f5906a1fd2b68086d66fdf7f85603a96ce11fe2589c4
658cc3ba503fc085c5cd8a00e6b37a7d0d45f353fb049a0667242537a15a5ab1
0fe017749521ce1c225e94e3c173ef1f68bfdf919ee1fa11a60c91f3f40fc0ee
3b11bc185c655980274b73ab96ce1f4e44b01e0b99fff524335c83b780247a60
968a8f0dc70c1e72806dd7c7e584e94e199e0bc5eb59fd07514cff9342c4a092
d744d9edd56321ecdc9f1fc9dc6995d452eff2632d0bce81ec441047d7790c36
16df84a5471d56263660928fa55b0c82efa9d9f15a2f736997e6b3d075237946
6385f91c3abc0b99349c22c5c253dcc5823034fda87930b451516f411266febd
d4e86800e417028432a6adc8608f21a351ae81ee0ea098d3ab250754597b1e44
cbf871d8ca016b18062b39f55821bcf1f319802a95b457087e609b9f4d8d940f
2390da0fd63664983cb3dda0cff3e49a697213f7f1ee47034d956cdeadbba26b
d81bc0f1a4049812d828090ee1c1e5d7c611be0ff560820c6384fc464dcb0f55
e8196b0951af4c5ed972860cb291c6e33008b050ea3b977caed1799779917327
6997857ec1fda9f74622b14c4aeec8fe1f87b416615e3069a3dbaf1379c22786
e5af2b29ca46e380d2070d5acc1c121ae176b9d82c6764dcfd2e5ee45c4384f7
fb4b71633b79b495b00e298dcbadc276938b91a09c58a49e1d9733bc4d243a3d
16512bf387e1ea4d08b4e42406a4f2eee106b06cac6300860b6110fa58a1cb75
bf2453b18a60ad064afbb5ac6777296fdf56eedb778257b4c35922b02d4c7563
b020553b77c94f362a95799a52bc1a2f4f7ddf256092f01fa75cafe02c8fad48
77b3e0ddfce91d3a7eb7a4488316b957c6cac21a095b261ef320406d640238db
a989531255505d42c83a4eae8f6c023e2bd0284bdd49a47ef6d24e0ddc2527a1
f276c2ee11e361143c3957f8a75a0d1b65db2fafe5969c2309f5e518d3d775f5
0c0dad976ecbd280f42f2cf0fa23adf581fe44374486c78a99645a9b107c88eb
5fbfd84900ed0024ca6b1624ffe506dadce64e4254f50046d829536fa6061bf6
f3fce9d4dbf7b94f13897934f84fa875eee4bbccdcf10bf5fb5c71b041452b75
ff0d7c402c76db16fd15cd820be1595c26b7f2015be9884531553e6f4b5f0d45
bf9c60d13c7f40478dd648eb908f1be7e6b560cbd78ee7dc161932481f55d10b
b65750a59c0be639539a30e52decb0af1d87ce9667c45882f8a0e4a64dc04e6c
58e0005f8d2aae81bb7a0481b506d87fef44c2f3738c7808a6db632fcb3126f0
a694e244a528bc79bb5aa391dc79075f8d192feddfb0e800fdba1ed2dcb538be
5bc1aabded9e7ca315e831814c67171cf7b5c659157d9827c0b29c80d895c5fa
fa4e66687b88a01aad4953aedc88c81352625a42ebadb6d818a6a127d9274930
70b959bf4667c5310d988b70726b285d433170a4c1cfd3b73c3095f012cc731c
0aae8c7bf31ed8852bf1650fadd263a70f033888d753f754c333026b2213259d
4a5f6189ee823d8705f72131be2a40b7d7aa5d9cc8ae1457a803c6ac7adb2b86
bce2f32bc771c38600fac832a3d21a5b329b69c551884006a44d1f2a6d0aec83
3f08a506f951131670eb8c49a3119ca184fd7e21b855d0f747225010b2d97545
7b951514c4dc521500bca8ab35b132598ac97adb341666eb6231c89f8805be80
d9776a12a4f1267373e9d5598b1736b0cc7c73d5ae475d044c5dce37199e0198
c84649c743fa07ee95717c4fb6f24d15cd1d730424c622ffbefe38453a38b58b
659a5d351d583866b15e476167e0541fe49c99cbb6ec80954ce06fec8546366d
7953041037ee33327a5aa0bd93fa5ed1ec4486a74b2b6313e65ced88f5fabdfc
d4f064141811b9b6139c0bc1f1d1ba75b0b046f777afdd894d1575603eb0edb5
7ddcd02219ebe057fbcfda669196c13496eaf811e3234849bd65311d7b3383cd
ac34247b3f0dec0d7bed3778a012313c3d1735dee5d4033b46682844dd9eaf50
9a61cbaa7a9d7eb349bff0fb875508bd02ab7e99b7d51412921b35a3ff370eef
d98edc0477a5307c78ffa4d7eafddd23185dff515f2bcaee24d063db52867c5f
aed3c102b2a8232a14bde9ef4501a1c51f1f5555641f35d35c2484ef750175b8
326f37ab01d18e1a0c882408a7085a4fbcab3cfc1a5a667fc7213dfe1a022651
c9906cf9383bd9b46fd13cc385f4c7e88d53c1a0869bf5b4bde2bedd0612ded5
4a3dc91506a299f36981c79f3734ddb4b4aea1eccdc8a42d7aedb84ea6d51af3
1f2c63754c0c908915b33b650c1dd3a9be3edafbc36862aebfa9bfbbbda66554
628fadc10a8425b6a584002be3d3e64d23eadbac99c9ee0c0fca040b352746ed
d0b64ee0281a0f4cee87e17baafc18b11777c601cd50173f5271ec7c7bdf3226
2f413ffdfee773f43ad3d005fcd9be5127e748f497a89e0ab2d79dd5d5a090aa
28d6c72f8eae27ab8fc152ead90b59f257ce30054e85f7a34874699e88bc1282
8082b2cbe4c398eb59a864745d02756fbb67e8b8f5a1a2d8255c3b4b9027e333
2480b96d2b84e3fc02b26b0bd78e0cb1ed71574020e9f4333acf97e0b8e375f5
0c72bf209813d561cfb007288b2f4426a8796e97fd6f1a039416624f428a7ac5
27e5877a4d92726cf1b47106c44cb599bdaee244969495bf60083c6ef7dd45d3
7144920ea8673277b862574e4522d4d30db59500cc683a60ad6d8ba6146d951f
c4313ef376a7f5dc82fd9ee785675c1fffd5d12ee43512e20e0af9745c2d047a
d64d940c9fe449e111f47a0b421e57e01e17bf9d30c0948f7f1b87c30977c805
48f498eeb439935e0a8aa50d59fd4ec137a1c4e723f83ded4ddabd9935604a0f
9889129e3e8d22d06c7356450bc7e229d1c7be2196bde49ad2d3d9675e4d3489
fedbad9c7d7685ad314f1952590495ff9669b8886e159183e18ccdcf5b3065b4
e5e2d925d0ea5b512348ecdf9ac92d6d46878265fb341ba7adcad3fa64b7fb3b
b0af7f1e5235383e2fda5cac717ed4bf390e279072f55d2cfbc4e3dceac3f179
6109f6bf8d82fe6b6d04976a7c3bb47b9bec8481ecf9a860f7c56c43dbd3d806
e4c8c1f405c7b4e3a3e70b7d6001f08f5f3f0e2a759dfecd5b3fe4a982c7fe46
0726faaba016ab337deb4712c26e7534ee24c1446bc54b900eb83f238dc59168
17d5f383950354dbb82a71efa8da8e533b9087275aa02b1caed68f699fe80380
eea27df6cf337d9f0ba3ae533c89db9559e53cd19935de4bb92f6192fcb7c973
cf63aa1786abaedfd2823facffa8387c211f883114029bba53976fd42da22028
684966987a04d2c034bf3eb1f7ec7c6439e157b19e23f25dbcf3bd3d4d849a9b
f3a930e4edfb96840e69b13c75c0bbb015fb768d61a0328f5b4eeb734614d72e
1a8ab406ba5115c3eb840297ef31d37708d56f5c39d3fc91e13b3171d40a188a
eb7bad111f4c7119eaf388aa83d49088c14f41a672f7c179b01619d3b329432d
16e008531b3f2e1976e0e82d45ea44e11b20941a1356a8e88c33272c8523dbf1
08c7854d2bbfe326edefde462658e63fdef14b8f629309dc3d77ac3c7c538746
57fbb2c20f4cea0cd20e6ffaf6db2358952b27670f522cb105a218b74a2b34ed
37be15174b4e2ce37c2cf9875f36b00a4b7ee6c66d8740a2fba5bf5b56fac0d7
c8efbb474fc4b6fb41855ce03bc08545d2be99a4dd0aa886bfa062fa7cb12d91
2e7b8b8776b3fa23fab737484d765a22bcf4deb1ca76f7fd545a496898c5fe85
e763499f7d852f8434b04aaf771cbaaf42e23fed1958fa85940431ca82e5808a
a39ec9030b8cfe0af065cf37ced6c4282f6ca4aa38e5d1b505b141dd8f2164df
cff5c80a88ff4fc40469e54d04ae761be41b8d6b799e4ba1b609f6cde0a4feae
2239bb65d4dcb5161449cf5d855324fbe0e9962bf80296bd94ebd35157d804dc
a9b11962f132ab2ba2034819d85a358388efbfddc699fdc80cf1240f07605442
99caa16b7e969ed6656ec3df1a526c68d108577e5561f2d9d80864ffc65eb15a
27b4b4058b389f529ef0928396ef0d962705eb218612943ae8128d8e68874675
7a329639b9302364cda809e11e7c40f72dfdba4e8b8b0c597304b993f8608ddb
78215d62d63ff98ae5c072477e29c4d0e34a94cc6466930a10f188d76b615067
849f48c326759fbc8453209d842c6089c91029b49e015525bfcfdb8d7a7f396a
f590aecf8e0e9ac08abe11905607a71a00b56652221494f7c92da36c8892212b
00caf031779a27a5356748661dfa5be11c4dcb40e03a3e3ca629bf395ef03d1f
5b1cc629347279fe1bbce8396568308dcba47eb01ac00563f7ba94acc5b28389
de6c4c12831e3500e1a1dc1611589a0afc3e2e52922f44e473d08ba585236959
08dcdcc261c9e7953cbf9b390448cd134e97020a50fc4612d6e9695dc69682fd
881059dcd80881b01d93760704d0e3f70cc21b6f6e3f3bed151100937ace57f8
2eb5aa6e7ada7495248d9a4b308fdb8bb162882e3a0d21cd9ba2995d49a3e0b3
e5c722b186690ca570cf6814a4269381d9c1be2ec8964cb0f8ea28a9c7a76e8e
055b9be7547bddf9fc6c62c63bf01d5be81b6ea75db87608b11e800449e2bbd0
e02c79dc15a36a8f88abf5ede4527e35bc73b3e68423006cbbc8e5c96aa3a677
e71766b1ff35af8c7bc3a16277704a2391702ead4a9ff3393e3fbf9aa9b73c3c
c975bbc6ce87dc6dbc3341ee9d4dbbebab90c4357e97691d7a376f7054fd59a9
92d290995a3d4a44a25d6be30b9d781d3ba949b0840bd95850b7280c69e6beef
1588db3c47b50f78dfc907ecec7c857610e8e7ffe7dc5992938d611c9c531c94
b0106136e0e43021b6dd6077e7c845f3547a909da7c638f3e6dadcbefe03ca7c
a6c6d977d6dabb0c7d1b17869ba648842a457d0ed0e5030bf7ea03e800c3e2ff
2d6d170a5db8916c10950b4d81319affebb45431c6c4770b2a2bed7a8f1cc911
c63b4d1bc8656c249ec162918c1772eeee8cad42ea79b8158605eb2a944131ed
1d91f9dad78de25124c1e7d4a56c97064e1861f757a00b37d40f7d8fac39245a
4b656e6270e4b0e7d80c85f0e7439e93
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI5
%!PS-AdobeFont-1.1: CMMI5 1.100
%%CreationDate: 1996 Aug 02 08:21:10
% 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 (CMMI5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI5 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 109 /m put
readonly def
/FontBBox{37 -250 1349 750}readonly def
/UniqueXX 5087380 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311e252234d51741e18db3a68e8ad10242
29e5817a10e796a78d2c7f7c1f50961b9a57aa604c9f821dbf5a9295197bc666
31678d7d2c7e1f8f2151ce0c29efce46270570f4301c5dad1b38884732e53dad
05dfc36b020e726ca575f71f04abf2b49e1f1d6d2a08a477658ca9a48f1c8cce
14382f0a42201de56e2821ee2b0e91a818b1b753d810ec2428dae5153b66af66
9442192024becf743a8f6264a58a0b3aa823510a4957d1bab3e1b83135362888
3e392f49926471a8021fdb48637baf0abcf31204b1b214f48c99f44af7782323
69d772ae4f49be53a1bf584747bf29b94f530d59a5be5370b8dd0691e32a21ba
9d0d592cf3bb50a99a3ecd18d6c4114cb4cfecc49705da90d7edb10e3a28f9eb
a49347a09d31eec896f2a28e9607d99d42914aea16545c16e136bdd0b75fe486
61e24c7a9e9b233a76754c760822d0a88c575e08ae3e3f081d7bfb80ec4c03ac
a08b65fb6474f71fc95c7c2462f2eb3754e647c29498288f2ced0bd3a2bca5c3
2f80a61fa667802d376cacd34de1f9572d1b3ab09d6f352750db4a768f869638
a87457889aa502850427b40e1294c5ba33e6b17532b2d13b5f50e71582f93daa
231e86597872a2a968127afb0f36257a76ce1eb24e6c4f29fce2aaf6532fb5cf
df84da03f03a45b915209f67d398c7c4f7a3b0623750259087a478dca684b29e
a8b7f52060bae9394369ed1cecc645d113cca3772a8dc36c6d916b5c5e65454c
0a188a33395fd3da67ad0a31ddab6a8434dd80f0bd0ea1a2a62eecc331d88b3e
369552daa1c575a98fe84383548626b65be7c24ae7eb61159f149872cfd87cf7
6c1a7c155c7186c7600e58cb61b8cb0c5dea98268a39e928bf6fc53985eaa763
2b28c1eb3d82e4d3fe225223f4266d2b6147e344aad2d4884a9308aadc7801af
a606838925e3e50ee7aaf73f090baefcfd4e34b795cd92d83c944d91a4940f2f
c955d727ea5bd76f0c8057b12621eceb0947b0a5dd10dbcbc52957dd978d7db0
c794660afdd4e946b3d7fc1ba60907fb3f756aab0406c0e7bce5a2238fb3e12e
07e2c0a7f465e90057642d704434ae0b57bd46c8ea91ab2a386e24c6deaf9cb0
8cdaa8fc4ec3fadc06bf28659cb878453db16f4b03925b2127b83be8fc240f33
23ea950b51d70c8fe861e30c346efa0a0125137598caca5478991e35f5bbbc19
4c787488ba339830bca15f8333431902e82b66a514a41c0bff92719a6a0d9587
4cff62c622fc61a0308a69f9fb7ef51bb274ce9e059c04b64e817abdbbb39375
bb4d84ca40de5fa46b84b04f3056d74af0ee6444cebd8f6da5a604290d9e58fd
ada0ff3f16aa4928bd0eaebd6c2a9cfc92188640f97a047a4f74012a39119e1b
f20999bf7a4681774de7419b0c26d92504bf0dc494923c336cb3d601df6b1f03
610bf3ca8a68472b45a472f1382bebeae1a5b924361309cb55b44d4c1988635c
dd540c38041cbb3ba4192342e8cff16adb06fd0817648584c9868aacafa3736e
2db7e6b3dcf4f1f78ebf388130d35bab736347badbf3ed721795621b98f5791f
7ad1a9d2b4dd574f53985d21bcada4950911e25d068a3f6d75e90afa6de94b21
d4c256fdcba2c01974b9e45038e63ab4633ef2ae9f4eda443034fe0596b7dcfe
62a2d0ff964a6c87c8f7cf15160b4380ede8bcd0cd4e23882f8040db6c6597ed
962336b9eba8892cd913ba0e57e907f4c78d2e143993f6948b69126831ae4e0b
afd6bee4781c1b836df5f835ddd9109cc96c897b55ea1763224db60177f44d71
5cfc22521b8874da2a4055f5b6cc6ef12775a6d3f8fbb6851335698e75d4ed97
7d820e7f540860e804ad52ef7e68ca22aea89656b27ddff169e27094f3d59809
db943553907f4ddf084c1952763f019fa8ac6081d36c29e0b6cc882713509490
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR5
%!PS-AdobeFont-1.1: CMR5 1.00B
%%CreationDate: 1992 Feb 19 19:55:02
% 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 (CMR5) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR5 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 49 /one put
readonly def
/FontBBox{-341 -250 1304 965}readonly def
/UniqueXX 5000788 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de
fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202
3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4a71813d2ffb26
445026f89b4787516ecd1afc78f8bd19e91e9ccc9402e8c36d2449c1ff850a8a
f61165aac3fe931332dd28e261b91b05edd18f44ea7d58a8f35fe88493b64aad
6bfac3a0136215fc2f4ca8e91d70c5010e6f4013e6d63b44f6fb00afdbd7cdb4
5ec5b1d9736f45cefc8a0124b815987cebd81bbe0d44dedb2d5ef37923b3d551
abb6a1cefca7868fc7bf3814ef7d7b6b1ae6e869cb77aa29e3d90b12b0dc3ff6
ec945922b5899bbf2f12e92731486d2ef1230c528bf8d7e0ae09ad7632a38966
5963de49d1ef3d65bc483e4a577b927c940f5e121169ba52f6576c85793e5fd7
7f5863c488e55bdefd5d8b2514795533aabbc12e7f51816c7e1484f1c441aa9a
66a5dc77158e79cd6692d299b95e8058b35e771a6972d2b5eb1cd6d2bb8e835d
361a6eac0c90c906aea1cd75c4412a1339dc1439f93e59917311bf20af4f2bc8
bba5a4626f75f28a47d4595c37f4019df480d9385975159142618e22e964f019
d88125210e2ef21d65baf500adf802297b24eebbf4e93c617a613f856bd0d45f
e17a9480980ef83950bdb8ebf208c895ebc4a7132f0765b7c19a332ebbf8a3c9
ab65063a42e19ca9d43dec3de7aba46b9a5d24fb93d615c0a1726ab7e31c378e
ab77150858535b91362ab0e2b968dee1c539964126d937f9d4980ccefa92bc81
b054996a65a13995c9c9d819ff05511cfc89cbfe67447c940405001d61be633b
b771eff383fc6977ec06af30f981504260de7b9ec97359974734f495ac073935
fb30e3700679092ef5d971b6b2da0e15960f2391fa6b63c33e7f56b4a9b86951
1d3686a5e8e613a69a0add8b8c73b127ddcd397a48d785079e786d24b31bb502
0850037529377f7d1ed88ee66c914ca09689c42837ef6bc86d11e1e0ba7c9f4e
b5e2070dd17c75bf975e01c04936eaeaf26add898b986a56ee3deb5689c48b43
1182db25523158aea07b74fa294a7dd3c02462bb0a3ce4afc704d7f7e8f5a365
a897011f1d1a0569c0e5064281fa6c64acd6fd875e928b43909560423305b4eb
97e477434893d83b6fe2255ef4dab7a5a34440f3281770de9573c9554e73f2ea
02f199e22c4d9a59e4aa258a20e41f42ee1675153a5fa51b79df079bb3deab17
2453cfbd8f1abb2b69d65deda544672a8a73ba6fd9641efee78be4863dafee89
e0adb45a942dc9e7684f09f785865bb31715043b48a88489af38c176b73e19fd
341cfd06454531a5a6ab012162c5
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY7
%!PS-AdobeFont-1.1: CMSY7 1.0
%%CreationDate: 1991 Aug 15 07:21:52
% 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 (CMSY7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY7 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 48 /prime put
dup 67 /C put
dup 84 /T put
readonly def
/FontBBox{-15 -951 1252 782}readonly def
/UniqueXX 5000817 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
d026957276530530a2fbefc6c8f73e9b697ddc0351763500e23c4d170ea8a2d2
75ad0b6b23097f02fa803c1f46f9ac10fe0e527c431b11b1b9a50e874896cca6
17fe3e255960846bc319ca68b9b930a45d5d0fc36b352c3443ab6f7793b38d2c
7fb9c409ab7980ead55e9f8f6b83c70088d1fa6d7f2214da8928e40b96334ad2
72d1b5db9d1355a579b26a8dac21f021e393d7d837a95deb8de92ed818a8b80b
98ee9cdd8a3c57ad7d6eb7a82f43eaa6ec520eefa7302e750edc4b495f70bba2
24a2182eec37f1a1c5dc8e20973007150237daa6bf03d498826777eeebe09014
ebfe05a8731e1a421cfc513d47d673e3d94d805f5d0668ffa265e0962cb5a75a
4a93d9b8745f749460afc7ec123d154bb5b7dcdd7481a3ec5b9301c8f54f4d26
df835cf0ecac2dfa15ffb02023b86c27f92763287c4219104d7e15ecb294b46f
a9d827a5ff1e08b6fa4d9369b905600e012e0568984556f4aeac4c6f91d3419b
af08de6f28b9f6bf88748e04c8196167b01b09f45c12d0725647f2db16bcc97d
8c95adf9d5ee3082afb50346949346a64cad26a3e782bc650993edb4cf29a29a
9fe7d4a230fe548a754465a51cfe51a244ece20604c17e6fa639a984a8f525da
91e41ce27c56bd48b69b268d2d1504910993e94c1160f97a660e71a1c9e0464f
e11d2752d884904b6c7a842aa46cb8795cf60d577ab6d8e8ac8756125d0161b2
e2237b732bec5fba8452891ac62a3bd0f1acc8de02af5b0affbba23349a95e88
db852a327dc2e2a579252b19c3eb2dcd66d33d851c498dad9dadadd33a439496
9cdf81ec3e8ecc9cba07e66020dbc4a0b60e45f576ee38246b63e6b832665498
cf479892f47e1389d586baa4ecff753763867b4919571271ad5683d80cf576f8
0d07234656edbd2967e6549c39bd873b64e71c0a0ffe9d56f5296de27ee3d3bc
3ecd0064c871c6fdbf31383fbe21734dc1d875f568dc357a7e6387a545088f3b
6a4c2c70efc6a1f7b1d5ad8ef65093e6e494690e21a8c04205e7350895afd9d0
651f98c584eedf2ce1b20d7c10974fe1e905beb4cddf8a737e08f4e57aae4845
50d72ec27dc9fb0e95de7391e83f5447d8247ee1317bb126654436850ca917ac
509c7fa5b5fe9d28ece5b32626379ae8df34db835fd264a0e282b41a97075a59
b0cc89bc5ace03d33b5f31097eab9f8d1cb35762f93b6e75ebed4a
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT10
%!PS-AdobeFont-1.1: CMTT10 1.00B
%%CreationDate: 1992 Apr 26 10:42:42
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 33 /exclam put
dup 40 /parenleft put
dup 41 /parenright put
dup 42 /asterisk put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 47 /slash put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 58 /colon put
dup 59 /semicolon put
dup 60 /less put
dup 61 /equal put
dup 62 /greater put
dup 63 /question put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 73 /I put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 82 /R put
dup 87 /W put
dup 89 /Y put
dup 91 /bracketleft put
dup 93 /bracketright put
dup 94 /asciicircum put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 126 /asciitilde put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueXX 5000832 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306462c563d51ecefaacd079732f12c29
315e4b9623a5752c6f1d8145869e120d910b2644887cea7e30b15676a92537c2
9d3aa80dc30082aba94b40990b82fb1a877e805e0c8c48f61e9f2edac05b944e
e4d8084ec1d5cc517aaeec5b3ea379dd011eeb454cecab3ad2443c887c582789
72355673e503affe0394fc7db31de364e4f56c24033c7df2265c56445ec63a1d
5695a6041ea1b94407e1cdb7c5635603a4fd047e6edcaeb2d0da6c9e0e9396d5
1a4a58e8fdc1578730f992435560a6e2d3e3687703ee2f78f5896389ac8470bc
806169eb01762e89b6dc9adf857ead656620e2589aae722c37a2ed7a2941c360
b067ee34d8d5ca3bf68db725614d936bcb207781f4d4ec2ac67b13a5ad161f3f
059add7b5e3d904831e31c20c04546fae83ca93a35989e65c201756888f727b9
7e5313c9870ec96e4cec3901ea03a5c744754485e7d169bbc98bf872d0796e18
9d43b712950c3786257d8be06ab6080b9d9392313298327549a8a41c00a2cea3
690b4a333e45aa815a64facae1c2b44640860b8b8687afbefdbd5b4a541a7251
4ee7d3e0752af3e96a88c95d31fa16d34ba2f02fdb0088b165844f02611c734a
dbcc2037bf741fdea7e8bcdc130c70c33772f777d8bcddf4611db99001ccff14
d7af2bb05defc3480bdab312a0eff2f375afb4e0df2f803c594b7c93f71ca4af
861ae1711932fef19bfe2f9b7adb69d68e5a70ea4d1a3d5bd85231b16993f65e
fb37a0a823f0542f8c2340a073dc1be4a8347f9d3068a6435cd8278b0db1809e
8af9664c2c989b9f16873c009449b6284b85da4dee11c96a05ba83292f0edbd9
2cf674aad6ac1a5ff966ffc37e88a66048deed053565b55ef6bdb8c2f2f67832
f8939a32442ea54f13d003494d6350a2864b427a9126a9c26a031909fe53fa84
63b80c3ffd536c9a5dd29ceb03148dbc24c0033ae3542e26551168a474b72c73
a7e2c34e90c8b7c4125d8657cd89e0449b5969f05212e64175cce0f9f22062f2
cb950ec394f625b7b9ba3c21ecdbb8e714e05ad00ffc7feaf88baade70b4b52c
d5c119ce80641c1f3409692c551a3e2c76d4d98e5c56fdd67eb9edc71d659845
a7b22c6942f2dae3ca31d931873d4fc5d149a53440400f7804de286c53093c48
22f6c120b875cb111f603b4763f3229ab43cfa1d2bc5c452ca24372be821b752
387df84f1b64ccfda51e728fdce9213c9a977dd3a2f2d0a4251bb706677e0ca4
fc695115ed3e891ee14548c35361595b87b39a96d7dd658151f68d861983c098
8426532950f9dc357f169d805459f5c985b31f61bdd8b41b73bfb0965c52f5f8
4927ba1bf09d569b8a57c6f64ad61500776dec77616d4ebfe2752ed10fd2621b
5df7a3745d606bd25d8ce1e676db166606ddc764f377d8dc61ed663566459cf6
0c977cbd2f9f687f2dc20c5e5e1947a186b94607407abbd8790ee7ce8f4d6b95
2fbb6603ecbd7bc2cbf0455408b379d6d66b6383685fea73ad67a9c4d65d0961
5e57955cb9cd59dc293b43a2e90a2054e817c0108e9e8cd09a6a574b199f14e7
81a957e6730a8d88ecebd7c08799a17578d3339ff41f7ea778c097ec9e418046
5223b452eeed8a2020856b03efe44676058f05e92680cdf2985a67afeb7830c7
b7ec64a25c61973cc1fedd9ff182d68980f5c55d6d9669cdd6158a97668f898d
41cccebdfa6893f315ca44ddc600b0e856c2dd51fe2ed2e110244f50981eb36d
59af169e4c52476e0cedd8b58408d47a299d2da45e825f22ffe58dac511d987e
ceb65db5611852ca668f03e1357f04852e6469982fd3d7b9397191775e27ea97
8d53648bba413766dd8b4cd07fa2d31d3dd228129c4ad6f1205c90c08fb31d41
8a9d894be1d7d6536840d3ef023593b3df7c8c0eb4e8a7562d20d85697e41c94
6204c8e0808584bb6ff9656cb01253e9b94be00a7f55531ef40319e82052ab28
1e8722e004d83e67c06c800a3ac85e7f51d9559d6ce91e7bdd44e01232d7faf4
90732e61c05ba5e06b54be83cf121c70ca7c7290ef178e1bf97755e14427861c
ddd4c73eee1664d3ff8ce8edd103a2c8470395058c880a9105a503c2ea2a14a4
2ad855e6008f3b6a0a897c1d735a59cad5a57e1dc72c1732246b1569c5e30797
8ed7e022624d57ed63cb8a8c870ed8798f1bac0ea943af503c58e3a4b354c81e
31dc30dce0dca15c3917bf35d94591913fbccde1335284cc2acf561de02d4372
9321b91839a2b7c8de03743d705c80d9bccbdfe14a26df52c9b6c3c25342027a
a7885be9ae7c812fca8337a4a4526e812c05fd1a0d26fbc1e87758d56173d6ea
501a4adde58f54784b8881f30c03e98c788f491cf0234087d6eee6cd04f764dd
933d36842d3391159c2a7e847a4d0c8bf9e1f93703b1c92d65111d3e95500a6f
3724ca947a82ef75eeb1ef94e93b47bb4518cee37e9eaa035b376eb52dac6e5b
22cdca2278eaa302fbce9de3dcb909845adfafb4daf99a9ccdcc60e11502b788
a7d39eb52bc961bcd41e70ac227ee1f730ba0579830d140029146b5be3846211
b5107657792587a4e5d2ed2a0c4ffd43c73422c127cd725c4f1092aaf69359c8
371cc8f88449319614e1d1f463f06c038fd842ab49926caef52fe13a2f37943d
9ce21c655746e7c4f7984bbafa697095611e38233cc07fa0af0b5303d527a9ef
1ad8da9795304056b89697ffa0ae693c2b23c973c519fd0d92adfadd79b04add
fa9d744c5e967053c1a6c239fbe1dc091dbfbc2121c2a4b04d554abe39e35fb6
1fb33fef456c7098b06aa1aaec2868b3b9cf1e0d323040750e7b481f020fd67c
1b782aaf0379ee3d124b0bd96a9977afaa7a7eef1d305c4557c227e5e7a98526
d82576ba3aadd4e36836529da0d8854a0a94f48dbfd529e303d04e272e8d27ce
983eab0ec2c493c54a38c3501c39c649498f4a761f771ed4073b196d3373687d
c534525b674da18e8e5695909a7230f465b10ba942b7df712949dc5ee9070a57
58061673342cf412b2af80b3e2bb8fe4015886ee2b05569e4e6825480a2a74ad
087deaf33e17fd9e461a85a3866b8e31dc1a9e12d1d9e27728c8ef6e1bd19333
94e8a585086d8d53fa2c52459324cfa345f98d3b3d701fbbfc24ca23e0aee37e
8079c4e0a8d5cd1b952284038b3379481f06804ea77802a6ef4d8b340f061d8b
d18afc218ed1947e6d9adcef85c19b5e4b2b4721147e2e5776f74e787ebac59d
a77846a8a225720c15d2723c8e3d93a5bfd396dc91b8bafdfbea88ac511719de
c88acd96f358361cdcff0278a0996173ddf135463ebfe5beb3a467f9a476fda2
2998e560a001e674ca2a80ea4591e5e43caf0dfb26bc9a2489a1cc5e6486d1d8
95557ed9ad7714ff04dd8dd27f123293bfc767332965b911d8ee6f11c22232c0
066f9248a11c50cce7e0d85b1ce5e5aa7fcc4883b6eef0253ff4dd5b537746ff
1e57c467b343d4aa3e6bca35043ab45b17646be79e339e26c0856cc21d0a3a1d
74efc3fc548a3407d8ece2d9441f052210dd8f11c05bd930bd15e5bdd51667e5
a67f6607b9895cbdaeeeff43245cdd00fd1608949cb36838c9e9eec31f9a2cfa
9b0c0f5648d26a5495d8ed1552c2123c0f8230b8a5122db78364d5ece795b6c4
a7c4481edd1b30209ae1e487143d421cd3d79c26d82f4b6150cede8d8754169a
1a7428756d1e40d1f77ec03f1c13ba74c8a10e62186a0d994ef05f78a77db2a1
3bcc26b47a0a9c3d6e19bc4b9dc294fef076f78ee44b4289e0f9a2b5a569f9be
1fba9853d7f0a8d8cc4db8c264d6b7e3782f50ffebc8abee2bab481a4c028d79
e94c59cfb33bdd601966608bbe0d70c5e55cf7aeb81c6fc2e0c4829324d1aceb
d83bf65a8741b85a43a33ea29c9e261e51a45376f6e370cb897e608dda3f573e
43e657dd80ad235229c7c8d51d2e26ca9e9f51a8b234551a67cbef67e8e95f6f
81f70146655c1cc3e0d77027b14dc39a4da978bfaa3b00a1ba01de14335bb56a
e43e78662276c28e7b237c10e0a39e510bcda9086d600ba178edec15202b97e9
fded741ec9d403d0b948dac2e3faad1a94e0313503dfe9783204884fdca17d12
cc753673320ad37e9a589f8ee6e602dff92c866d181adad463883488cd934626
be5113a9fae57854fa689888f7f2a5e6e0e9a3d97f483a8852cdc8a9127b0a67
f776e29de14051646b03bdea0b50a6fa7ae2f70eae3ca0168c1defdc7059b826
e2a79883d3973019d47fe721283ae2e26fcc76e692af7f75eaf0ff22ffc2d076
dc98bfed58449dfdbaeaeffaf5e409fb750defb40d4d3e99b229acd488772e58
f3158d23e4e706bcab9f7ca27b385582063c4f8aad0fa67f88169bac5a237cd4
dcefc119487478a5de454e8e95a7ee9b129eed97b2a411d7ceba57db93bbb726
819190a519f3fd12af8ab360a598ea19b68646a1424ac5f679d2f3c436563161
b7975080351d6cd2d2873da7f88ee817ecbd33f37faf1f47f21ffe5065b6a4f7
eb5a779156c438ec2654c5f1d822dcafc62e93738d84c6a84713bffc2c055684
e01d7bf2138a91878f68be6730ed38e6fe195955103ea763871b5894453548ca
a4f001a1a7274f8841f88e2becce1dc63c4ad765ae9c38d280b8c233035c12fb
600bb2f75ea975aa44e18475478ae03c8e4547e8512a7578803f8446e705581e
a78cef58ccd9c9228e2dbc34e7247e0b4190a03671c627cf8a6789b8024f6ff1
beffd2bb08049cb995fe1277ed8317af5534dd6cd0a96168662d6ffbdaf6df00
f6382837b00f6fcf93532a1d889f129a10420d7f76e30b0c7b4b76db84d2b961
024338d4b2bb1a99ed51ae5bf92eca45d0652c575bf27b1cc1a161628b8d683f
5b7482414f39cc32eb70cae4e3c59916c06bbc7530aedef65202b7b4a15e15d7
78a08f43273cc10144c34cfc94f21253f9e07e0d6787a174a73e73383b4841ff
5499d3158ee5ccdce31a45caf847630333afa804b113d2eae46321866b7bf448
545c034508dd82988395165a84d7daa40de3df7fad748b3a64033a9f04cb6de7
c58691fa8abdbb84942b917bbda2310ca36a2e4c6e15e8d0d127dd69da74c9c1
98bc469f809e3b763d08c31dccb9a3616f1d98a3e838487c05ace1b042a3c963
f850309edba024b3896803634b2757d5f3df22f391d75b4ff160528558371153
8c2ec86bfe135b83c1e8eec0ed288e7a56079f18f6502a808a3f518aa92b6543
b8971129362febffdd09c4df246509bf59cb335e4a5d196c9013c91ae88697a2
7ee07266c1dd25a58818418e2ef438766fd40a27382b56ee232876e1ed857012
0baaff2ae0088a38b5002f230dab1a02609860c5a85ef68fd31538a982a63f81
e6efe3a2c7337c0068494e9a0f26a305b9f323dc7451ce8f67c6602ed65167be
3e925d0b951fa00a018624b615a57dffb6a8b5c8b49225503fb3bd3c55054432
a77170b22a8df6dc767376a01e1ca5ca98c2849714a8901dd22c05b09b1459e9
c37dfea7b1ddb26d8ad124e952060b178807cb345027649f5835bf249b6b8489
77617bdeccbcc54c5717aa9ab3a2c4faea8c1d107c255639244fff27875c19be
dded7d3d46da8e2b696cb5242615a2487563325445cab217c75bb94e3645e5f6
f9701fe694e7eb9d44851d7133c2af785f72562851d10584b118e0e9a9b4eb6b
0b9a65cc23891dc6452063fcbfbbc949cdd2277273c70f02069f846c1a53c16b
e46da9bb1321961fae5cde27fb5a50ccef2416b35f90951b4dd47bc28281caa8
e52635f006d3cf663e2ebb3ab279179abe4229bcc43d6aacd9b5b97078b7123b
84f22537a995cacbbe3e5aad885a52005bd43bc3d4fd68f1d220a75a5f1bbe32
1035035a431b64e4e7360c99cce6eb4d451bee1a03b0f794fe62ebe7f4933c25
ff98be95af4a66731b56e16e4b6d903542b47bc1b0f561f40bd2a1870f2b7439
c91b6191a65568657f50095f55aa2427bf075cd46718b9594e9e3ed58f4d8ae9
33e35db929fbd57f0f6e50c2c44f4494908c1a504a1f64163c729931bbbac755
003fe42700d4e3a207023cb0b72c782e2b3488cb86b456e5e56f3e50c63acc89
5d9098a477515cb3c788bfd68abe15f79faa14def094d6114c71a638253e61f5
d939469124029ba417b357d6260f53d16a7bd8de40ee3ab6df89e4de6ba5537c
4fabccb5447394855a301db486c3d9b90a1f326874e3108f8410fe29009465db
61c2011f3559f2a03edb28abd357e2ff16db5d29eb4de5fbf7bfafa9e39b81d5
6d114dbc3f40a9082dea1632e324dbdc52cd8f0dbda8ca83922c26acd2133ab1
e20fe80990cff1f2a8d73e02c23e655c9cc8e109d8eeb7e710cd8441454e80d7
55b31bb1bcf6eb3ce40f43fff42380db53a33803db2ba9bc726a56c26b218dbe
f1b56da5e0576e5fa7ea4b5c99b4d8e86c1912a098298e445810feadc77a3528
a9df25b541a986dbdb70cab7420308135344005e3a2d2d95979af25601100fa3
058394c4c879949991a3c3660c85851684d99e83e9347bb7444cb43a06a7d44f
8c4e8e1375efd5fe35a3f8cda1f7cc338d4e8292772b0900483fed97ebc024bc
9267765c1221c50cf807bce3601989cab338cd2b6598d4205a6614a244c2a798
82d6800549a8ab25a09ce8c9b2ebb2cd53284e115ba305a43b065eb1c881d1ed
1cfdc87097885edae09c7de1e1993e3ed3575c931580783f960dc20b4146ab71
d88ba35420d29ce43d92ae8c8c31c74dadfad4ec44278d281f2723f24c96999a
1dfff6b935dbbbcfcf488e58c9cd395b6e3874cfc19b11d223201e298f6fb5fb
d6709e9f02d08c3cc6fde03420060713349a55464606ff305f390a845997f9be
86475bd3e5ff98a9f4ff9cec20260b80a997383df3d116668dd8799174ebd5a3
7f0d85248a779a5a738724dc4670ea207f6359c9317cc1edbe11376c0811eaaf
5e7a3a793ea0dc0e57cb18fa200ffe8f6d00703339ab9d8f79d092229fa79e36
77ee160b75d07bebcf3c9daa26b31cdc99f618f25db06ccac2dcf0c651867058
e73d67125e475ffcdc21cae67364ccaad1773dc6734cb87d6562496e60b8b2b7
0e282bfd9a1aaeaa6ebf0a593a9fd11f192d030141ca7bdf2c3678a4db5d2924
6e29f2e9ef128e5dac6738fc4c405b4a0c64229f1d22acb673c9a43eebed6cc2
0f61c7aa37b79ff2351a5c6eb4c2874eb95f4aed7244016495d76e5c05696ebb
229a8c60fc49f31bca57bd50fc31e825e81ce94e55367c21b575f04544f4fe29
d1916735b5f439a0a670d36c48670051d67457387ec153bce06e25392c605a49
a23cf02bb8cbbe84789b1d5f2937474f062ffb7ce540a44c53e4c20bb02884c7
5cfaa881094b00d978eabe486732efb2e62a9c38d16e5761f753780013f42b2d
9ac6dfe59d75fac41b1cc79a764ed92ee8bdbc146730469138c37e6e354dbcc9
9723de3989180bfa30b864ce00a88e601cc048e1174e1e924154366f8222a6a2
78cd7aebaffc6f6a18482c93973440eb10b5af078f55b428e0d33da1a01de0ab
dcd8004d27ad5c88ead36ee761166dcb482ddc5eca64fecbfb04235f65227546
05b1abb81f3a0913211ff8a00093bfc9856026de56a2e2fe02d8c10af238da52
73605011ceb07f4eda7297aa46a579887dfb70c9e3d9562f8d1ed95a1c98a1eb
c2214d31b27e15eec576fd55b44e7bc739d1c34ce3ee4b681b356f5a07204937
8c2aebe23968ebc454425e008929a0cee6233dd7ef2f669ffc22a783c58dc545
d52da65217d65fb0b7d399fb7c147995537048b916a04ee02bf8b5ffb1a4b3f5
5decd8b79436ae5c33063c744d4c2d81b735b4b7b4f2e1aea9847817288b361f
3ae81443df7fc6a57b67e672d201528468be3c67b81b07b9c2550207b9453871
6e428cbec97d1b023bafefa1ec5af9d79bf18a2e44ca18b14467aec291fbf4b8
40e6bc297387c23751e7fa6ec9b567d8566d56c1b5088f1087fc6bce7ef91411
0fb2a40c3911614e3841eb5c8bf4aad367680644d89f0d1dc442e61a3fb382a3
9e23651422552f292ea702bada7040794b6e625c715a1599c7a928497201ba6c
7f7e42e7e4eae9bdc2ecf069072f553f96fab862ced74f29f0bc3a0a2276736e
737ea92d248a833f4043241d1db18199b245cf973a1d44a1b2af3de78035be41
f8af12e8cd01d391279786671a4cff5aad95ef99316343085526ebbdbef0be77
565f36ef17b93850a468f03f308ecbd90adbf4d910aa0c715c05787deba65e04
3292c1630d809f74707b4be75dda94d055f2aaf91f82f746f23da48352f43fde
cf8b9a61bc5084a243eb5c7acdf158b0202a620bfd3fa43241b0916175af018b
00f72b6b1aec16e9f4594a4295e0dcb759558400483b21158fe4f5fc5ba680dc
67e745bd9e8c89ee61d6c55a91886211824eafb834a506d0f2e646eb3549e92d
e3facb73eea95b0593f471b2b1ffd181fa09f3b7f7a4a031433ce17d88c3950d
cdea29d96749f61ef1d1180471e253ee9b8dac72e20b57396c91c511793788ea
9f00b1cd8ff830985030d0a1975dcf80284891c494eae730964c174dbb63c634
71757ea06360f4b0c43751a67498d507fe14874ac7cdd9c31cd9b2caf0bc0760
b3f66629c470bd9c9a2058a852e283f1922ceeceadf6cccb4f21045114abb4e1
0cc2e09d105a5473a818dd95edec6b553c076d94f1daaa7755035fa82ce4cc5f
9e2f1cb3369a2f8026ea15e07d821903218c9022d8348b8133c05dd85ddcfb1d
f5640f08e1ef9011931afec2279d1bc29c09d660539f6fd4f3ab3765de3eb4a5
8910dead41bdce49a2fdb539ccd17dbf31194554e1f6a5f9fe2321f8d50d9fe3
bd570017c36025e632be6983c76470568f909fe22b398c4ce3b984c5376ca0ad
9740d4278fada544aba5b62113d373d0bad93c373a6ebd5a52d66c56670fa22e
87d3bdefd8b4a363c6270a9a2e1106611c2efc98480bfe55052e77e9fe0487af
c306fa1352c4fb5ba2ed70b2f21d2132894bf3fb923ec4ab970eb6fe3fb4b015
2d89b0acdc8339ce208c98ed6588b788a1eab4e241820c04f6ba545cf091fb72
6f1df77ad7d56cd32a15731004f8d3bbf584a2b46d137a543d867144a19b119c
0ae90a924a2ab989e9e06afff1147fc75aa81c73c39df4a55839a18183c464b5
77add99c1ad9f52e0187842a9b4853e2b914070f04f1b529b5799e48de0065bc
3b00ecf03fffcb876029203b37c1d84561c0bf06361fc7fa174f6d6af29b4eee
06078e298be9155b115f7cc24f301a2889fc1d9e0d508c1aee059a38fda10af8
d7bc027ca4bc89b78571518a81c2387d296ad32698578bcd3f1e04bb8a0273cf
702d507e7c039ad73226b83c9e328082ce8fc494c781c6ba8d4c47bd7d8b7319
544c70b6df44bbddc662b5cd248136761af8bbd3fb536e353537d9151cf9e266
3cc736be1cfc5c5708f4379ef3c741790af022aefd0f58ad0226bd0fe288da12
455973f05d87026d5529ef33459a330a7c158650d9c0134e1c96a9e73a2161f4
b71b1e2a57d549441348a81e6591773ab3917aac1c9a3bc46e07e4d21a2068ab
e3123cfe9bc7cdb5cc98fda20a555b5f597308ce860e953b0182e4c0d656551a
11ef2e889a65588da617659ff0a55cc5b9d7c289bbe8d12c41b629cc1e15b2dd
3964c744a6275c51cc43cba1142b9850470ca2d324a7d5a6100a4c1581638c55
d5195c92d3c3147de22f6372135a6b15a903fd53fdce4c7ac0a6817a5f669476
ac14c5131b80661d434cf83fef4c3a3395026335126b141d47d63e0f72fa04c1
dc749f09dc53004af1b197663edcbf5e772fd4e58927b2cb20f3f9ddf44c3e61
f42e21e7caeae71f3ca7153499987f7627834fce0c4f66c0da1c8380e63c94f0
3916b58d4a84cfe8d6a897f8909c3b8b95165ab99df9cc3a62dbfe78c0b108c6
bd98c7eebd41650e21ab734cc3ab52189b91722305cc914895dd1fe341153f54
9c194edbd577c36d2ff4e6ef28df4d02d31ec9f84d918c9ee37c1713360533c1
c5705cdd8a6b8e9cf001047444ecdbef70037f93c9762afe92e07c89494cac3f
5de7d2f8bea2abf72c53804ec9ee64bb3250268b7db5a4986cddd09fdcde5487
e97b0b68d8e5a3d7ca9931dfc192aaa4ce54d10690bc428e1714d13d776fff2d
34924f8f817242a3817472bf4082f152c822c7b5d2c7f41ab606b2dc0ed27fe3
efc42ff57d64751a7533993c2b4ba9bd9c98020d218a465833bb7e98a418db74
ece1bbde71ed466d1a50b61360a498762c7c704aa69b84acd106c71c26e5084e
8f8e0dafe2279017a75b9735d18b6afe35e34d6208883f8456d07a29736120e8
316f76b845a33c72705819843607020049efb58b04babc9e6d492c2f5ad4be6e
a547c3d4776614ebda9098a24670157d93bd63f2b59e9cc1a35a49a4a4076d35
e04e140ef2eec16934989f8281fe9cdce27aa149a6fea572a51f1739c89eadc0
b3f130130277702cb5b0c482ef1817c2fc5d6c37b10b777d041fd26ade45789a
231c303c244c6239fed7d80330302806f6176e19f62249db75c8911063c12ff4
a72866a8d9fa007fe2804eeff5db91172dd667ace6732864d3dbee7e1bcf1648
ff51118750dc47698215e3ebac58bd1953cd049aed00d80cf8b641ab81d4eee4
8eaeaadf59fc3d8671ce6d0fea790d043357fa2d04481266f3e4cafd7acd5d37
647715f2964628cd08fbd9712fa9528a4a2feeb4e1c38c048333494c7669c9dd
981fb1a2063f5466ce92181661633e3b5f7a6c0a2a1851f0faafa53a015eea3a
71172c663af6fbe8ce7c7768bb229757087bb04055f6cddc80d9ff693fa09dff
7e1ac51f3aaee7f2075dd1e8b3e2c4f24cd815d96a572f44905313a67fdd9398
198e1be64731e47073e74bfa6bf44c58a73115f7b0a91a4c0ae40a6b6fe3f2a8
77e9c0db1ee526649dd43263a382485d4729de4eb060858fbbebd1ffdfe7a8f6
6420d22b2deebaf04063eb3a221f253c7c153c5c7e2f4340a091dffc9d70c25c
2571c4d62f9f16ea76bf7a321dbc97581a70849a762a063311bf98dcf7e51a13
2329289075f3c4defc227088618a4d261d45bf10525ddd901a24aef54af04d50
497a7d4dbf72f1627ef3d776b4d4100c2d32d84578f1b8bf2f400ef8e7ecf795
d816b3a6cec47c88150d0a1e38c392fcb2f7d5b32f5cd6c7e7daed98fc07ca89
6ef8a942226c040f27003271470f4f0a981ae5f42319a4f588be269f1a10075a
897f12aaf8d127b39601a9d2624606987b75cf8727181679133fd694a80c9a1f
b7a3b97dcdca8bb36874bb17aa933264c8d79c4ab425ad5cf308a61e7c3f5381
3778f20343c628b1e606afc1d671abcf540db7164db4753f05ac10d12cc086f8
b597cdc6208e8eb25e77d96eb83a846940f8fb54df34f6a8bc2db61828297390
becffad11d435ab7353c4077784e57159a544ce63b99e55f44658f74baa3d3c9
52ccbc9ff1e4624bce3944cc7fbb9ed885972ba80ce9d663765aff22f9c86582
b000c2cb52e95b52444d5c43ff1b24f76dae473a49f79440eb96f3bb2c6ed2b2
3bc26f574a1afb9c1e6e14dd2ee49b6da9a48692da6d09cf6d84c94406805a05
862e386e3ebff158055ea292732c4e8184f4abed4a4c5319b0fec8622499e53c
e9c00de439c67667b445e1d7c561bf2fe1b5b8090fd6cff6c24f5ed42aa4bae4
6e9d523fa952d76d3170cdf902198d3975989f4e4bd0b8aa6fd071f1430ef1b2
b8a04a7b425cba38d6ee5fdb34ebadfc12b961b4700e469d1e8f301adad34c97
c3abc5b9a1a53305f3f519975b67dafda48fe39b54e9e100d52ed527dd453c58
c3a4565eba60db7fdb1633c92b550d0a8d95c55c5fbdf6ff414cb1af6b19f34d
9871799641aff08d3d60b007579d164a56859f6df94b15f520456ba6da1db35f
6673a1805573c68299550b90718984e3252d6925fcfbbd40b00d32593ec457c3
1d498a629954b71af63a1aa9433898a6f28a144841f4aa81c29a1ab845d9c76c
52efef9b22b4563c14db51062897f19bacf4776e50e9d99665392a63e9a341f8
9703f3fda3b1be2e865b3a4becc55825820e6e2a9585b7f331fbcf910482bfc9
5995d3266a7493a5f96123ff22ff3aa4c30d942340bfc3e92224d94d51ea6269
74352f1f6d7afc53c8917791ada3b844e19fa0d79361af11eca9a8efde53483e
b93968bcf6ff231be5d32d471a80f990cf2d52dcdd38c1f6773f7951fba204af
e1aad9fccda8af62e3b0d91eaea8de27033505f107cf2b849fdaa29dbb35a41c
d3c7af2fb92a97557e2646b2b6aed21e5c7c46e32c8d12d1308d759d3a929659
b06101daef09ea983184b6bf666430ce3807501c966ea68afff2ac445020101b
0fe861b650a9374c1a122a05c4d4e5b0a821a50423611640bc093e8c66660e82
6caf5283482fb90b5a141fb3485ca7c5c865df65c4ab71dff8c9ea08c1d3b530
fff9158640a50630f260833ceac85225a2a9d5034223cf34b90fad3a777cc81e
eeca639ce3aabacceaf3515861b253dadcb73d9bd2e35e9e9736579ec35f16db
1a1d8885d970ffb2fbbca2df1fc1a7c0734692f41ebf2dfbe362490d3be3307e
9fd89fc2563cb316e14df22222beed029d69b080c2436593266d6e0bf6aaa5c4
5f2fad0cb5302bc2a515ce83bebc0d46a28e21d8f628772bda18d205508efb8c
5804ce9b083c0de2ab7c4925afd37517fce1eb39e894a079e3a058a711cc123b
88d0cac7f50b584bbf9cd5b3fc22a23acec2234b8bc9e1d6252604a3e371be43
e5370c8245233ce665ee52ddbe8dd1a72613e3d89e3a02fb6696370c5c3ace49
7ddf0932aa8d48513163825c62af4043ed38555f407b066a2a19f53626c8e9c7
4f805de9e39fbf9392360a495aadceea34012ce03a52d944c478c3dfd8725ae8
2099d72074f6fb6ff19fa25cadefd973be207ae9e7388dbb1fce13db4b9e41c8
42bf7f8ebff4e53b40216e55c4ba62e1cde6b8eda8b738a983776f9294e1dec8
9dfc308372a8c514d7ea9adf5aa733320ed63056e895c5e68b361edb54fecc42
8093779d8a63922a0a72049f697e032202d2b7d437b9fbf55de3f67d9c9a76cc
17f8cfc9d724db7003a24f43f3ee05cb24a239b84e73f05059326a1228fe9b2d
e0da14a67b19a72420a2845c16bdc41209a2072488ca1500087ff63d2947e12e
63deb4358f0703c5c9fb8c8a9b058da60d86a770bfdeac1efa275d1f36466a97
68460ff38b7a354ac96b4d847f7cab33dbe1406d83707fece93f9b72952a50f6
8f92ea60b19a74fc6be3fb3f27868e522580b1cca43a39841ff8cdec73489247
1fc25d46698b19869ee011f70583f58db2f60eaf816003e3f19b17e30f7a13d8
153bddc6905bf82e63784cb38e1af1f723e4ce5715488ee7f0ad005eac0ef161
23f7f0f17f87c1d2b78a09c69076f621569db1784e2cd3a2cd9c7574681c35b3
2e5ce05fc6fbccb382aad160115a0edfe5695ceeaf1f3e983a41e24bfc0da68c
99cde0468b4fd3b9891d9a60ad3c43977bdb04cfa12a6a1bc825d95ba26155cb
d590dd01b39724702ddc6980b2b7b9969a5f99d920774b36c8818ad9dcd0258b
4a65c699e93730fd0bddc29d9ea4e6a5e683ca8d513166bc0b09176401c0d7f0
74f6ca778e4ad3772fe712b9ea34009857de0948efce20f9627da0e91d39c7c6
db28dbe001f243871a97e8b85a08a09d98a8feaf13935e29b31deaca5e30d8fc
a44045b5b2e7b2b2b14ec88b9c7df2ffe6f6ce9ca91f154a62c3e9540917cebe
046b108757a35e4c779ec023cf6b31dbe80e9faa2105065da80f0a2f9e8c52f3
659c04be7f89b97b63ea41a0102cd389d8cf29543c
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR7
%!PS-AdobeFont-1.1: CMR7 1.0
%%CreationDate: 1991 Aug 20 16:39:21
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /Gamma put
dup 1 /Delta put
dup 40 /parenleft put
dup 41 /parenright put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 61 /equal put
dup 97 /a put
dup 101 /e put
dup 110 /n put
dup 114 /r put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-27 -250 1122 750}readonly def
/UniqueXX 5000790 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b448685940729e6e22f4be0e08c6505cba868f7950
93f556b64b808dd710eb936d3ac83e5783b5f7e56d363a59a026a5619a357d21
c4e77bea121eb24b09027d1aad93158edf912940e91cd2f17922b35885894644
7773730bb19af9e70453e1b78d5edc123b273a979891d6d5e624f4a388f3897e
13b045e34b4ee2f5e4fc5e996d3549640010c671de14d18b0b3cd300e57dac03
22e59bfbf7b29422230870f5897fcfaad4b50c7c1c58edcd119218163d6f6e56
25ccb882db7b6d09a1586508e8cb642a11c29a46915e4a96e282079cb21922c1
c2e360b487a45302fd22ec8c5fab63e54b5e844d4b17ca2fff37c69c366dd72a
d02922c14c0932f65ed03e4219c117962edbad2dcdeaa9c10ce8af38a4ae52e2
b377245b0be19a77d6c936e7530cc4d0b78d0cc4a92698fa2870fa54f2d8503e
2d17b3d52fb2febb09f2b2af0c2a1892039ebe19a690098799a858e3d39631bd
6925a154d161df3918074ada6bd52baddd0adc3f07e2d9f15e27cbf7fe8b98c4
07205c811121fa91e059f2f99322fed63f359ac9da97aec383f067f23e5de331
51e80f0a88ab50fe8fdae4a5de93c1ae2fdca06150b37246140c0e87cb2325a6
0d2349162ae3ac93144eee1e665a1289105318fdfe86b6e76251cb25adc967d3
d0b97fe5e279e1161736ab22b4ca510b964342383a840defd38f96a7280e6ac1
34e48d740607ff2e7804164a16d47735864db847c97335e6d4215cb99911a1ec
015a3edaac1f28fedd56d2467130d07bae9416c15f0827d27c6c79f59054282a
418c12c157c91223a829947f47592f7cafd93ca182b25a73a9419127e3b12a9e
5167ac3963f2b019b338ac46d63880f94dda4b538835884d2a5538c85528d6bd
977f844d32b43b0e48caed5a4bdabcefe71695d69ca784df993d17635761f479
efc739d705fe1a5596aaebba2b0d0160e5d2cd611de89796431d5c148e84fca7
df33669e7e5930fb8e9ecabedb37eda703578bae764f75bdaa9fdbbb7ff3fc52
8956468f8097224b9db3f633d03ac44971cf6b2e489daf74d2ef6b7326bea07f
65e1aa279324c053b56145a145dbc05533a315e19c61656b4968a67da5e75366
80364e3d532d1f4f873a1360c03feb281d8b7ab0a3a380722620f2f5bb527ad5
45454d93b76b58c0bb32600ad7775ad0a0c36fa34350eb6d00e21facd4b32411
62393a0e85187a535e97e1a218d3803864b21d4032e6e946d9275f3c5d3a9bb5
103e7afad7851447732f6f86acfd0471785825ca4673bbfde9b1553ba4bfd58d
dbc6617aaba79da5d1f714075abb8a5b2aad5846257fb05689dd0eb652f04467
2172d03e211a00d5939f6bc85750248e6b0d5b6d5ab72d7c87dcf505236f4e40
8b34bd6768af49eee3001d0bf7876d9d5e04b5ee44b78e8364dfe30d11e033e5
9c59398d774cbc5c1228b13d5156953ea48d49c81270a68fb831186176530a2e
8d75b9624eec6c6fcec0085f4d00a86217d087fac22d3d1a70439ab18ba0ab79
8fdf70e915267ef8bc9aaddc9d390ce6aee60f60e86740706966f481dc1ca2e0
77f59ef8a9c75335df1383b92d31db32e4c22946290e42106209d7c322f37f24
e599fcb41dfaa7efe63618482c30b5a30d3c71e5839da703b54fcb624bcb29b0
d98e9c7d17d2560bf0f55526ce9cbc6ff6b91aa2e81f061a7f51a1c3ccf3a05a
98c08e0f3c25dc21749f9a17e94574da6e61754dbcd64cbc4bfadcc74da34b90
1c38e930ce8a879e81f3255ffa787ce02f627f1437365e7fe3e784f9ecb3ff24
50f32d90be317f982d6f5f44af8dd07c2aeabc141811c08c07afcd61ecc8cee9
6180321dffccfddb58d006ad4ef405d9bff47142dcc681a367811d062499cba2
43b2d6195182cf2f1b3c40c7fe28f46284ae4ddaf19eb7775d3a009a087adfa7
2b930a8fb46a63e972995a482e96d15b8533d8c202e2670c4c12f28255817430
dbff71a54e582f6c1e37bb3ff86b6a10d7a784a1fa407e66d3bacdafb03a01b9
20ae385d80b15c9c183baf9c029020999bf3751869845b6fc1155f47c1bac28f
ad99635e24e1331d3e4a2d2b268b0dcb75edc42c3c1640393f76bd224304caaf
8d8390778adbb9359be086e216108589fcde5dc0a2f3ac460b013d29be9c4330
a97f465b11b5039c2a25ef581c0af1b3c32e725e553d17438d6c689dce3ebcf8
774a1fcb008e0fe25688dbada9ffb7740e3332839af3bf627344332898f166bb
ee255d6df8fa332c2a4ca59750bb0700478c35c135e1a7066b6a85750aed3a23
ba0172b54a8766c4283edea43a30b96b93137de405013331fbd3715ce34a94c4
180cefa76126d119ae3f7f98c84aa27154f318f6ff45621980f376deb8c99a45
ed34635edd1120a8b8ae8f08d078326e98b8ebe880b470788b685de8056b33a8
7a6ca2dc29bd494e4f4287de715b634c61f2e274f9223c58af93aa3b76064d84
0dd95ef28bbbc88fd13f2edaf5e261a8f147de1d0a3d37e1a851203bf4ca76d0
09d6eb568943416a3de389e8e98574c4bbd703424eabdcb76476feed491923a7
db9f8ffd017a543cad94b5eac74dea7e57c82aa4fad8d0f2d66aead24336024e
349c39665c115ff9c07363182d74e20d0e007f4ad89e0e84d63698f5e192d808
051d2ac3c62a3ac68647afb98cfa7cc36294fb4e7d5508854c4591df73e848f3
faab7c8e8859fc3ce9149322f11b2d05466b6a4711a92c3da9a8bd0e910ce8b4
70859fa33cbd1dc3baf5be4bc84146b81de9d49ea486fa79a377505abd0f0b9b
ad63f05fb202e1a100016e45d4f38a95cd90cf0efebc9899b5e12d3b280a3318
60d4c9d39d156261b701ce419548ca249ea0077f1adea7f66dede7adb7b81ecf
cd85daabc52e39aa2cb1e2913b56d90df7e8d7b71c2e7960d065d16c4c6d934b
51e902c3163e0b19dee1ec9173c4b0416ba8702c1747b6464d557e88273431fb
12185059de5aaa853d64bc856277b3acb2a986dc166ce45fe299f86d593476f0
f73acaa173eb76d7182e8faa1ffd67957591e6541cb361607fb58b5faa21f9d1
a7f3ee20dcfc63ab967257a05344751a2b1395b2c2fb8f0a8b466b649b8d2495
c9e894bf425149b89f417b49444f8e43c70b1d0249d2e1363eeb7803e143cbad
2db2b9cdc97eaf7c85125f84ae8128e6a7077d53cdabf451b5e824b0db0d4aa3
b72b107d114434d3cbfba17d87bc0db43c3c7fb05f844b48cd35430403c34e22
1eccd3dedcea6a67bf8051f4f16b10ff9b00957a1dde0bb20ae746988396a9dd
297d8b0938c3b1f0720a82b277b31f884894266de49489c71bf4f344cdc0e698
c7aea6d815f6756afad82555e2768f3fb4010c82a58ce4a88971e77d8dd6d233
3d7c2f2fba212a12c48242c5bc7a4846e5317b78369707c2e6f4f85ee0a021a5
2c4d081c1bcbc2c5269a77f6e7148e179ad704435b12be9612d3184a0f740339
ce249eed000d4e451444fda3509c213f16c7edda0a304acbee2618d1c2f70ff9
586b6b4e74229c0b045166da3a46829f1ab2145ff438b94d4c70ae056e94404a
24e59a53cffb1489f95d54e2b345d55e92b661f5859f8b426898d6acbbb48019
ce3cae84bb1540416529624197d68a76d94eb4a8655f7f1140d661dcf79cf121
f27dc1851514ff31f27d1d1780cd7573d5aca9dfb92b7704cc0c86dc2f701621
e58f6a9e64dc5aa2a58d24e6affbcf691431aa4fa4816f3a43992ac037a64d13
71ccc92f0aefab90ff945eb878682e6bacee038a31c75a45081692e706a71648
f84dd8206db507a7e60d2bdbfeb02bf30f66be1d55ca2691a1492b67137c707a
4b5bae8a227cab5f053f7e5be130ed501e742c58fda11e6ec4dd5c966a22d86f
e21745b5e0fbe7108815ab9ae274d74d7337b2ac713dda43f191e8e549cfc7dc
44cefc559b81ef5a3ba2c7ff10293b2f3813afaebf465b308c76363fe5148169
3bb5284bc1f5f4979afd5ba6f4b906fa9f7428bc76efae1f68eefbcffeeaaf1b
a50aa3e3254cfb822eb221f67587595fede4c64d5c4e00a240cd0e54f31489bf
10b5c290ec40c285ceecb7d3965e091e4a561752a9b1dbfcc72531d18b7a055b
3d1632824f3a844d66b0016218d8bab499a43eb37742a95584a4dee6070552b0
58980ded2df8f2d5bcc3d2179526d92d2dd577e387ce26114079a03a25ca3a7c
7be83af8b8bc837f758bde6c9e6cd89c958c95b8fb03235d78a7a797e3a145cb
5a465976cf6a46359bddebfab450f1079a75b0c5a3ad89075f90e09eb21440
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI7
%!PS-AdobeFont-1.1: CMMI7 1.100
%%CreationDate: 1996 Jul 23 07:53:53
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.100) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMMI7) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI7 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 20 /kappa put
dup 28 /tau put
dup 59 /comma put
dup 60 /less put
dup 62 /greater put
dup 66 /B put
dup 78 /N put
dup 96 /lscript put
dup 100 /d put
dup 101 /e put
dup 105 /i put
dup 106 /j put
dup 109 /m put
dup 110 /n put
dup 112 /p put
dup 120 /x put
readonly def
/FontBBox{0 -250 1171 750}readonly def
/UniqueXX 5087382 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
bdd7da12534ba078ad3d780414930f01bdaae649990604a33aa9eaffbe5b5489
e5c7c9ff9d9be01b08220832c41caac64816b53bbc087ae4b621d2b44b21ae5e
3f7fe4ddb05c675abfe30510eee4a7c874bb57b2ffe521a6875eddfdfd18c781
25bfca5a097aad361dd94df46f14026c25ea988194899b95001209cb7009cead
4b4ea03473ea120e7a7e341d4e3926796347fdb3a124c29660ac09f4648b313c
b58e824884382f24ce08d2edc686923acace1201c16a07a42803288cd0b946f7
546510e95b1fa1cc96f0bf72aa823d8e83d7c68c752c82a54c752eed2b1e699d
e9db1830272ffbf2f4996ccc2d6fe2ae272798989525ef3b67b0d09bffcef749
a805e5f76578222b9c4a8a09b13189a16ab746ddef7875f1ecf83e568f493d82
ff729baa1e0834dbec30a35d3c49c9b10c5e1d90c6e3c8fb737df5ceb3299d96
0fb79632f91f257753b4d2e34e3f54a26c7b950981fb7fe4dee3315db63e75b0
24b4d318baec8aac9cde186f6d65767df1dba35124287c2e805bc660a3a22772
0ae4fa097f1d75107441c0a0fbb9eec17d5516fa03b98756b7df7ac7eff9c7a2
364b9f691ed5cb692dfff9dd80c761e9c4d5d6061782b327302c053ce1cd09ba
0605ebf761cf9b730524e1994e7dfaa956799d522ec53d5acba27a35c4d28279
617771938ece58c5ab664aa00c1bc4efba2d15504247a68e3af0f9bd59a387b3
80db88cca083b06f5af70d768d1699826fb12ce12efc2b4c70923e052dbb964f
5fa957c3ce225c0fda64d9b5321ee1ade207c1cc93105096cc73118f4082594c
8ecddeb0d7bfde6f70bc62f10407c26a476ed88be7999d64a15912493829a9de
62c71f5a34fbf5a843e311873cd98817dc9f8a4aeb7e0738b5de10043f5cfea7
147c915cf31ca08cb64f5957f1d1871a5a25ffac84f921e6d21cf59c02fdf0bc
932ed2892663ccb6107e00089ad9a6581386cf58aba72878582543ed601a900c
f37ce69f61a9aa8043876d0b123b261e4439b397d818224d24cc62b4dd1062c2
361faf5df00321c08995347c435a91bc2033086a789de6ccf1ea1faff1e50661
a5a60af1727510d0ecb9a9b6ec40d86b74a0d39060884b7bedf058e628a4e8fc
991a13241b6099e54223c6cf339cb4dbe7afc9aad3f4d152a5d24ad87415dcc8
351f7ec3daa424d7fd0c8f23bccbd41be04a5f2d7a51978ded730e90992e7ed4
877a6daff8619bffd33b748e5a9f97dd0c600501d64b8e7b5a992dcb14dfb6a9
b1c477f5a0b2d5daac6b194811267e84a7ad15c2e38e6baf3065b8e141eaa207
6a2bd6f938713c9a88a7ac184b930ccf8c9f9c31d7c059f1f70168889f79815d
b67b98e5df5713d2e576586d1085254fa409a3f7f2bab0094dbc5920e1225018
4a9626b6ab314334bce869df92b82be9107c5e452eb335bb733beb1977c2f889
85c3cd6013d291dc03dd33e646d9fb360dc21ec90cb555b8d30456c6a39ec573
dafe00108d93b389afa99af20a27691cc97e50ad0ac44ffbb01c1cb8122eb838
8037f41a241d8091f11115e93b1a588ff55c9a9a5404c7ba4975469c3378b2ca
bc8846d34fdec46100185fd8351585cd8f2e8396ab60a83722cf88c929b9d4dc
dd645209a9fefde7a7c848735c91daaac92d2da731d379a71fb750aa0f9bce99
88e7b5a49aa57f028216470ffbb7b21a1fb61c4d941dee5aa62899bf3c650edb
4f4a86d04385da619b48ee26f5d8898197f1bbce60eebd5c9f9843dc845df06c
5bbfcadabe50e6b31d0fe4ba38b2b11ff01a85025da42db8133477205d2a564c
b5c19dd88647a454300925b38106353a0206ac0f7b1a9ee74adce7aa4b2f248f
1c7e456c98d9177d08f21900be4bb0a9341b8d28812048d4bf2f4f6e71ba0e91
df27e01733ea61d02258641c394c8a3d19b87e9cc35d72ad458d599ac87c2c62
78fb9221bb7a6a257eb3e5bc9eec01bbf71c185c00a6ceae83e0d561ee304282
d96495ff07693949fd05391fcfe00fc02bc0ad350389de865b1145ced18a1e39
1217ed5f9568d50679659d0a099fea109b0ba585354bb0fd498143b7fe1968f1
5faf3b2864121163c43484638aab1480fecd434389c4c9fcc578c922e6ef3485
a19b5a75ea19de5ed371344b320aea12abbe71501c717928fbafe8db99661077
ef8b05551cb7fc06538f2e5d4d97f398438416021ea28f1e35600f7b5aa36fd3
d2ca55e1c245eb973799e8017724d91dd54ca60e8744178a4cca683a36813df7
4deddfff3b8b2a1a44e104b7849cb913a0d93e59c29bd3ec8367e0247f1138a1
e6b1517d4f23482ca29d8d84a666b0adfa06637fbfa8a208163a4c3e43219cf9
c8b7bcf533154110ce99374724ed016290759130791db038abda37a244758ed4
facec2c35a77442e1adb52ed382ab7d3e17a95949d84d3e3370a8e1a06b3a2e7
b2f33a9d592076abfecaa608c0a0c2a41369fa9f62cf8f435f7b68f7b8bf15ed
b3ff7f67bc9cd0aa7ec6937a154f833d502cbfcd78c3108402813a83379cfbbf
9b752dd5a95b5525f4624c8726af2f240e580e13b9992c9ff29ad21faf30cfc8
a1ce3fa845298c9fa91d493ce2a4cf9630427d935c363ec1f5bf8ca6c4386062
33ea885a988673331971a5dccc52e0de058d5c80a81d56fc14fe6511d1301290
fee26af4ac010514b7815d5f3d3c99effedfdd951a8de99656149bad7d9bb6d8
5270670fc16e1e83bf90fb2ebe1c73a0a1112a5bb55c385816a56591959f4d4e
e751e438bc0814690f7ad387b49f3c2b6436c1f5207e1ae8c9a6f3207156f30c
985f655982420dcf899543fe3f70809758488a5e28dac0bc1538a01703daa0d3
948bb1873b9d86a5f086d080d7a5f9dae930a0e35e3f8ce396f75d0f5363c15f
916f661535aa21230723a3a518e645e05e572ada3e3e0a502a67abbf68f30e83
878fd97cbd6b11f5d4e7380350a8bfc9e5fbfd7877a6490d1302fd6abc036a6a
f915f7d1cbecdeb5b4c4ebf08354a9a4a49e0dec2e478ee23f9542bd16b670b8
ef4d5a3ae2011e4c40e249acdb1570496bf253ba949684675ea2d43a1f6de125
7c60ce9b5f624c87c61dd2ddf93760ba1fb8ef9547e324257207297bf2c34ef5
16b8b57548c5128809abc7510c0cb4c75b1542565a9bc80769d61fbf41e414c4
488c387b8c320c53ac14773d646ccad1f69de80e001b1b559f480a3bce7a775c
2abe01b9e497bec2cc4f55d3d18798e89ac7a27228b14b964cf0513c0abec44c
d114b6fb7cee04cfda7c32be98d2fe1a0bda8d458ce0bf88fd52ff5327382625
16e41eed0061d924bba553032c516520c74472e805d7b97b584de1c95adaf200
a9f05071daf8ec73ea8721c08f3ca6276e0f93db77451f08777c0575236916de
bffbdbb321e6951e9f3c4ad375b7640c81ff5b22929b7cd354b31473bb8ae006
e4f76e2e4e18d3acb4166ffc401be56a212a231b0bbc281cd31677a5c30e56f2
adcb504bfa8e0514c0188ce75f3a7963d07518ff8c0632230e131fb4e725ae76
2d20f2e22960a2ddd0268f4ffb6132c75632d0d81bff1f81550359a045d2dfbc
cfd1fad17656918ee753964a229060138160e48f07cac81f8dd34654c0af11bd
4f214b89d0829cad8f5b4b9e6c81d940b7c844d3e38ae5164716ceb60893abf8
e8160d24e083bbc06fa24cfdb44ca11dc08479f33b310ae1ae5a23c18416ed29
1d79329f194be914291c42a4344aa3d04bb99cd8bf821f64825be89ee7aaea31
8d5d9859a12f14b28deff09dcdffa025eb2bf958ce97e8de1e10ace8a246f945
30b9546cab8759134ca636a690c9c34d5410efc0107a7b14eba6e55798087954
1b7b98d39f8861421861c795d9be4bcce46bbbaf0e003975d2ed2074bf5afe5f
cae35f86870c9d31b838f48f0f0f79c942369008aedc5b57e649f431df58f09d
372a0596ba9b988456eac4cdf1d5def847310d881ebe6a24073184845fcbc88f
903bafb696b8b9512fb089173c6a8c3e70530211735cf14247444dea0b3d6709
90851d250294ec8897caeb9cf8f36a4db19f113531256413d7f9a389f619b8ed
d56fccb8a47133d2833578f6b2ab529655e54261995fdb4ff919aa52200374c2
29cff17d3d05818716777f8371fc52c26dc25b978e1f0a617dc3b165e238e557
48ade34fefbf5027a07354ed7ef7ccf11c63a39417207fc6cae1c8dc4bf7832d
fa5f639bae104033e1daceacb31982d47c5a7065d948542016f38c944d91d126
2a7ca8a6d4c9d9fc153eaf09454d61852c45f8b60013f29e54cf998f8bed3ce0
55885081ec16be3cf24a4cb7a5559d1156449c041e76b7d070ac4eca4eb5d962
08ef156cdb91fb450b3c4024967c3860e11efa6c0fbb831ff8f9843813adc8b4
914156fcc650a49035efd57b51ac5c772e1185045cfd30f8e17598a2516da31d
cece143c3630d57c49cb09599251fc6eba40f63313c52ac4a4467398f0524cb0
463c537203b9e23d5501760c80ac78a6df0a3879c5eebd6653884ef635ed1950
88f88fffc82216f6cf1f9eb7c0de7a3d802ba0aeacad7e143f024097c1ec8d66
c2586b69e36a4b46c6425ffbe17fc66cc83dbf70db2baa2fc1ff7fed89e7a8a1
07becff83c20831d5098fece89accd1c97cc17f292d97e73dfa80c7e9927c494
e714a31054a2f650adc9855799530d9a140c248226af70b68460c286dd432c30
8cedc9ec52f881b81ac82d78037e4258f611e09b6a2b4b284e98d0280855aeba
5f3326e5a35ad29c5c2b6ffa4f9cd08dc6db45d64218d34c5f2cd276b99109e2
e7442da3b3ff41352bb6e6d1700ea317773ad65b2f53f923a48415ff506999d1
a395e413e0ccc9c336b5a0ba989894f85151f9e59a6afe070783bfa3af36b819
264db451adb60a8551cc4cd1bb68291189cd075eec78aca29286dc80b1abd740
edff57d4656423b7f85d4995d5fcc6ea9fca54d1eec44e2215bb11ec8fef2e6f
410edec395c5045ba9a524c7eeef62f7f7d9342cce7ce54d8e096819740fe4d6
9cedb2084bd743eb848606dc4565ba95d9b042cd4586cd38cb90c9ac98d573ca
7a1bbfc002e83956d947a904531518aa7a3636801071f57fc972f43c91890735
d09d4e7da47f62e688a5b78b3ac64b31536130685fbece47774e32b7ec1181fe
446887673b61d333079369a0b92bec8d08f8b6396ca8dfecf505c719d1e8b824
01f02adf917660964d10c86dfd296df0f1fa15f24902551af6abe83e55a3a0c9
4e97212f15bf8a8c8de9abb265674ed79fe8ec460406fa9c4b2c74dbbc9f19ed
6506d0910a5b4a6416f33832578ad7668d305dbc7e11b7a199ab341fb68c68a5
166621724ad28f352610ef1aaee98a420307eff5c5bb2afeb5191526f6c1cae6
5f19e250caa8a179d81fd72b167a5a183462f005c5634bdf837f19276f08e57a
bafdf141e6c61c473e503b95b0bafe643faef4e8933390baaf2066768c49b336
8f50c4262699e2d7bb244efee29dc6d4
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 /minus put
dup 1 /periodcentered put
dup 2 /multiply put
dup 8 /circleplus put
dup 15 /bullet put
dup 20 /lessequal put
dup 21 /greaterequal put
dup 27 /propersuperset put
dup 33 /arrowright put
dup 34 /arrowup put
dup 41 /arrowdblright put
dup 50 /element put
dup 54 /negationslash put
dup 55 /mapsto put
dup 56 /universal put
dup 57 /existential put
dup 63 /perpendicular put
dup 67 /C put
dup 83 /S put
dup 84 /T put
dup 91 /union put
dup 94 /logicaland put
dup 95 /logicalor put
dup 96 /turnstileleft put
dup 102 /braceleft put
dup 103 /braceright put
dup 104 /angbracketleft put
dup 105 /angbracketright put
dup 106 /bar put
dup 110 /backslash put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueXX 5000820 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
d026957276530530a2fbefc6c8f67052788e6703bb5ee49533870bca1f113ad8
3750d597b842d8d96c423ba1273ddd32f3a54a912a443fcd44f7c3a6fe3956b0
aa1e784aaec6fce08dae0c76da9d0a3eba57b98a6233d9e9f0c3f00fcc6b2c6a
9ba23af389e6dfff4efec3de05d6276c6be417703ce508377f25960ef4ed83b4
9b01b873f3a639ce00f356229b6477a081933fef3bb80e2b9dffa7f75567b1fa
4d739b772f8d674e567534c6c5bbf1cf615372be20b18472f7aa58be8c216dbd
df81cc0a86b6d8318ca68fe22c8af13b54d7576fe4ca5a7af9005ea5cc4edb79
c0ab668e4fec4b7f5a9eb5f0e4c088cd818ecc4feb4b40ec8bd2981bf2336074
b64c430024c2b2db82e06262dacff21cd21d846b73836a8e6b73fca483e599b6
eefc125d008231d82f3235a978af03661b75ea7fcbe8e3e9081ebf122892403f
a5056713b56cf18c270d150f417ef00808c0318eb3334d156b6d95b635e45819
72e3779f7603d8e3ea5c54bb7a5c0c82a228c13415178cb861c01287ab4eefdd
de84df15c9f594537266e60269820799ce72d27888efb22784c0156d8ddae3e5
22f59a501563d32bc15445816e2ccf952af6f4600d895ffc3ecbe2bbf7629d8c
a25618d722cb681d3157fbfebde80b6a158aa3f66c7a5f549e065b2ee0a189df
430598a7e2a495578388415aeeddd7b042accfcca3be0a62bad09cd67be42049
afba28d439fcf8fafcb80d0eca37edf8e1701eeee4ad45ba93526f071e06f16d
7a0837f9055f062cacb81165fc4bddaa0b780e06aa94e6734155e6ac4b08244c
c6e62116114ee931651e6aa611008c5362c68bd9657230d0a1e7162e5a597d84
52677c54d1671b1d040cc6ae991a3b0f118b9e8ab006e76fab3fec9eb236763d
8989af2245479eb98d859852630ce391f077cddf3c19bda8b3d36a70c469a194
e18d21265002186c16ba96edc6e80334d00db6f3976f4735db6b55478ea54cd2
508de4eb3cac317b5fb818ec23aaafdef0e314fa9656b8f83558e9aa114d8933
8c2947a15870649cfcfbd6bce5bf767f47128da161ba6638acf2e952b1143f6b
2698686545d179eda640df9570dc2b89513fa4e70c349a8b4878e17367d0e4ec
910087a6fcbe36a3c29364fb867e0b7c8db394b693055dc22e1b04e821cf8088
750181dd10ec6956f930853b715d3db9a9813f85253f593e8f98f4b021a1e8a0
a1f48479804cd05c0014b7c0653b882a5e6ba7cf7b9639a8490fc63b17f3ba6b
86d299f12609144f55ec0759470f11219a4986e84f2bf89897fa77a903ead1cb
6a6b8ed0b06ba1d258d0a0dfaba19c7ea0d2271b36f7438f5686679efdf1231e
1aacab1200985df2b4279723688af315f61b45a332cd3cb70848412d5f18862a
5f86d275b0a8bf9f1db0976898824afbb2c4e5c73dfeca492854291c54018c15
71c9365926038f5c9e6aec4356303c43164c18b96f70884a66b0f40c4fd55bcf
8a48e4f00e3d31d92346e9a897cfd9d7d8a7a3fb9cc47c5a3cae162fa5e0019f
c1bc65f1c55a2ec9087278382dd13fb2f8e800215d857e2e7f84acfa961bba3b
88ee350d35cde32ea59ed0041068583131dafeadf63d9c6cf78ab4a27bc76eb3
f9ba2f9d8817fdb6fb34189b9a994c319546bf71453aaa441b3810d9c1d8cb96
3d6a943890b2c88847d35b9771166b5554a706d375061f6c03e3c1d09f56dcd0
839c5383cacad593cc87e4fdded452c9be7ead998526506b9a868d131209441f
0a56aa5ed2c4655735e94459e74f6bd5b2794cb8e86096996f38a21ec3dfb3f0
e783da506f80ad1237e0aa08304633e0ea6f585ea5f3967a4f7dd5ef4b5b66fe
4ae936df15b9f963dc7c331b62f9fe2f4af69754fd70cf6895e81c05dc1088cb
f9333bd3f373ed922364e86f3ec4e9ef87ac60e25e8638b9c6b6cc61627c01bd
d315a83f9cdcf57a7b6063914ebc8c9c5b0a803afe8a0283897ac1ae4aa6cd51
65d21a958c550c4e2b553f7e1aadba76624e7cdc1a77bb6362a099253724504e
5dd22f80e9abae5bac338f467caad21ee7b6061fc95102afdd7b2a85d9cab4bd
233d778a14a4a42079a6cfda3f6af5663559a1744516733cf1a8d6cf348bdfb2
aaecbcff1ab39728505684f787915411e20171fd236d6ad67402e77fc5f48a0e
0f2b868b9ac88fb3ed509c1735dcd99639a0ccac1aae7209aaa341ae45f13347
446c6bd59cbd198ee40d8c842e07ac7a52c485a0fdf4895733292303c5b314bf
e6b4f884cdb3c36d0bde571211cbfd8ae01311500dd4e994b8d966cea990713e
7c890848ca6e8a9a5e22b4c15348c3de2f676673fd36e0c57252e5395d196880
0ce3a6eb912d097a7c2b9bf758c0f7588c04f9e43ae4190ee261dce41c911c09
7afb4aaddea3f1696e5c53ffc0b63e037557ea0a9f069223cdf163872bf79812
bac587ec3d5ce048dbac5da3dfb6bf380356e51584e52a5ee73c7d6381665afe
d588cf0483f886446bc61e72ec85bdcc73cab1d637670e3a2d8d90a13cb2e05a
02ade292bd6e3cbec17d5b9146ba944aca6bee286e48b25acbacd670ae7001a2
c5fca852d670ae54886f161df2fa8e2a3bd0aafd1e2fb606eeb210e289721043
257563e7f3a03925a46ece7d5a8555a0f31a0f1d0bf7b30135e971bd08106307
084a94ea32f6327ca7cb9858793231ad39c5cc4e99c2963f5dc901796a0b1d3f
d1ca1d037bce2f9497c66902da13c7681b28080707507225a16c296cbeb33380
93403bfb10ad21dcd47e9ada421d6a8275beebef258ab958e3ae68e3864681f8
ef0e11c1c256d7426fe90d1a25c46c6dbfd55bec27a59c620045563c0a52f1f7
9cc5ada80c29d96af7ff561f17988911040f47bcc374f0ccc6895629cb042f5b
dd61cc997d50badb5733eec49d54b1452e6b7cfec0a929ee54faa784e49646c8
6ade8de4cd469eb131aaacc0be1019eebbe29bbd4def9433412856933fda18cd
be6f81d0ad9fc06b9508d55c7287a23d4dafbf7aea1cb1c0240f350c49fd33ee
691eafcb8ba2f7fd97e03c09ffa87dcffdbc868d622eecd76c5bf98e8986c668
d5884b0075e68ffa5f70b944efe2fc7435a9404e8db8b0a495f70fbeaed397a1
eea283e7939de5866d757c8e10f64dbce1c9281afd5dea232f3fa1fb58f9912a
96880468218a77760bd115f35027418a5b279caa87f0ce56b0c96c333f67c6de
daaa9d64f5755b6186a3ce3c58c75fa44fa997c75477008ff7619eb71878d4d1
f37d3d245a3c62287afbe73f5232ee055493ac8abb4af1f7cbad2a672a58b04b
26cfb01ee90cec3477673d559ebff1df9ac5e787a1c1322d311642b51a020a39
2c43a22848a24f8b8ab2a558f252bb506af0e748fa634e2109ef942f3c426d38
d7c4f12c4d935fd691daf170d6af3f7f3128aebc786ab5b12c2e2215fa3ed26f
817fb74d74f4cde5f8c922f4de87a0bd9fcab1e2b302e59d74cf0a5f27fde549
d6e23af630f9a8fd68f2625556f6966390c2c8756857df8a0a8be673c4f442a0
7382b93c465430776bb1f8332b4c543445294f302ca2d93dda59c507fa7b9d8a
b4d233eecd52e131ffd638eb6863d88a6807450b32f2b2a2371eab1121eebbc7
b18d4b0976a11b8bc501fb5e364682b318427e194f0c96baafee7f8258634243
a458a65a1bf4d935db80dab475366c2ec5bcc72a492c620beea8fc12c20d0418
0de161c9087353734b82c8d3f9822d9ddd76ace91a185499997a631e9e19bf41
6218abf7ffd130a07f177cd231a39e33173817d226fd62eb56155150a60cea9b
1b67659dd6d4268ad38f8be08c8e4f21c094056eb6361cb005f4d7fefc646d3a
611721de2379f4923fd2f2ab135bb73a912a83753d3c38209d892b7916ef4f3a
2c59feb860ec0133cbab0a53c24f6e456d31bb6b57feb79e5415d24840e0aeb0
056f3b02f4599291f69f2110d7b7dd1d1afea6f1b6d92f935be84ea0353bd3ef
39ab7f00dbf12c8e39460aae9637a6ac35bc526744c350b049de0ab4b0ac70f9
378e0deaf817a0c45bbbca5ad9bc746da373a102f705f43113b88eddcd8b94eb
fb2c1fbc34ce820cbdb3acea1c3d0df09768a6f5629cfea43fb99a1f1a38f854
5a4762cd26b86e5a15f8afd76c75ee6020425deaf8fa97cc094588f0b5f61514
35b392dfa166e6743faf6f75cc7f9cd3e55865a0685e3d55b6faa8acc563abf9
ad649cfd3a5f24ee3c8a75ac2fbeb0b10715ab2a0628e2ab129e04b41fb74140
0312be0b79e7d9d92fd74e8c3b55a9b8f2af3e17286030f415355b757c95c180
9f2329b194d427c3c2667324329374793ed6a9736a57541633681cc908b541a9
dcd298f0272d44df40d3e779390229e1597b2116b953f35d6c4c91e275690411
7cf47f957e8d5057f780152a92d08277277d87cbdc1375abf0c30faa2addc4c7
d606d00d9808a4504edbcd825aee467bfd8a66c8bbc9b4d2f276ea48711cf250
0cd70065cc23f037033ac0d0184056ed6a0cd3c847d6dae18a1f28b900d035ca
3ed1811bfa891c5762b89173bd8d16e1d0a47391c5577eda7dddbd988c0a269b
1fd5c700a2ab6c89b9f2ce19241a1b91de8c006e9ec192dae25ab2fd7331106b
87e66afdc563bccbe84e777779e4a4e66d6368345afa2ddcf76d12a2c2c57081
e538e0625556d9232c4042d0c061ed7a29007f94abc3aaf015b98af679b0689d
593f91f303ce337615481475d8de846b159f153413e337efd583ea37f955c655
2f581201182d090a6b221d069558b9ea12e509f1b71638177ade260f5a5f780b
4d7516d8a88c89e83fa9cd37f8313ec5a01387a875a82490d7a7cd767c782a9a
07e8f4ffc2ba16df18c0408dc52aac2688a4bc5f48fc176c1d4c9f2a5d6f2963
04eca2bf66a64bd21c9a9b68da4dc716d5375d8819e6a2318cdcbf56e8e774d6
f88098a0e12890a34ce60bb694f36eb95e16e7b8b4686b1d7845c332234ef86b
4f6f32649526982a62a76107570a0b6fce00eef2f46b663cdce215f5e8a4dab9
ddfd83c0b1912fade4fbcac5a9549467885540dfbfa0c5cda5bb41f30a727c8e
fa50a82bb6c4d8a0edd3ef5ab1f09bf5891acecad4c5dfcddee2e7e1d4a17bdb
a98f20f17b78c32b6dac9b050ea4f8220e24386ba6a91467ff299abe576ddbf3
1bef18a1cebe4e13080ecef8222141aaa6feb5a0e5d58d7dd28faada0b8cdbdf
96115a22328877d2601f8f082bf92f3879b49c722280ed2c9b3d660591541eb9
e2d82f3f01772a5d321bae21f69a4952b185a91f5592074428e73890afbc4315
a433e14cc998001b2d4f2762550f1f43b329e20e5a227b2c3faae80052d3e514
b86383d750f5efeef8b36dcbf08fef174813c123c7e293d94db09ffac4210586
2ea1ee54b415f4e01e64bf11e81bd261a33538519bf6e979c4d9f5aba5233943
141b54a8a86fccb200334416fbaee95600e3241e8ab16707687632140eb437fd
49c05a503d3bf0d6f296800f8d562db477de96d1910b92991a04ecd6d75ca442
8434a2fed616a02607a04df29e78c487719aaf0c90a8cc393d27a0803d65db47
6e22a90b8fccdac7445a673279ad0bb99726235436ad094d2343232be532a5f9
65b413a0dfb0ee51e4f1e809bc82c2bc36f6ea326b02b313120c161d8e5d3ea0
c6f6d173f8742bd2b0f474425b62a042f7a0df71f086e7c2fb03f07ebadec3ca
ae97672f88786df0eec5e1e1f01bed7a3b6bf6535057dec78b300e5f75cc9338
c12bac1800475523dff235db41a5ba93710ed09acf79cedfb8e4eee9368d02e0
2b55e54df7178287657bf2cffb1aa8b53bfed11ada09c512bbb565c7875cec31
307017a5fe222a78146e5eec1b3516fb7b2f0be895967c0e8fe6734913102b43
b23657feb38bc172a2afe4876995e6c9a3664252064a90e563135f95bde3e7b9
b05d159bf8a6a269238ef20e021e10afc2ad42cc328b410a6b1f432327f96167
51669f6a37b1799334cb375628ee6cffcf7a2d8465bc16286faa6212025a5c7d
1fa5ca27b7eb6e6cb0f2f4588a2e912a65ed69990eea83561617264d7e82e42e
07e5f6b46ec84462acb7784209aad9aa503a8485ad6a40a974793cffeca9dadc
c059621cde
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY6
%!PS-AdobeFont-1.1: CMSY6 1.0
%%CreationDate: 1991 Aug 15 07:21:34
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY6) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY6 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 48 /prime put
readonly def
/FontBBox{-4 -948 1329 786}readonly def
/UniqueXX 5000816 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
d026957276530530a2fbefc6c8f059084178f5ab59e11b6a18979f258b8c6ed3
ccafbc21aca420c9c83eea371adc20e038b4d7b8ac303004b0aa205f04135140
76407216032fdd22e6219da8f16b28ca12524deb7bca073cc5eba65c102a5e85
fd48e6d062cd4283ee570a7774597e5bf0e3400b6be72db0115f3cb12db70ce0
83722870cddfadee715f10f1fcaf20e06f3c54afe5ca238539bfe2b596116e83
f5371ff18fa5003d8543226cfd4025f9940365b392a858d27f078d3abcffe4a1
54e78c7692d1a32bf935967c64f01b24788ff8325d61145e2d4a489fd986fb77
38e6b254522c77ca2797a504a9ce4676a77ebacb026eca94dde5922c936f8e90
c43e28519671e8def84a1526a8b89450ef2bd624857da91e67a35269b877f161
ead3b9314f0ebb23d1a803608fb8bed47522b2a7814eba409f33973ca88ebb86
148d3d0d91d8056e573e23f17b04c8dfeb3d040cab25f1da3caad77b904b64f1
98dc18b1abbbeb700e3bcad39189c15c31bdc0009f94094d223f303408ab2800
533c624b77a8b576fcb13a492a5aac1035d7766bf5e2ba738c1de82bcb395cb4
344d6f452463521d7a6d8d979625e6900ac2b993de3d6a15cf4473176be41862
e61b3f9e109d500405e6f01936bd4cd77ca687b490df2a2e501e141fbecc7082
86f85fa428a8121af362ef3bee57af
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI6
%!PS-AdobeFont-1.1: CMMI6 1.100
%%CreationDate: 1996 Jul 23 07:53:52
% 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 (CMMI6) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI6 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 102 /f put
dup 104 /h put
readonly def
/FontBBox{11 -250 1241 750}readonly def
/UniqueXX 5087381 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
bdd7da12534ba078ad3d780414930e72218b3075925ce1192f11fc8530fcd5e3
038e3a6a6db2dcfbae3b4653e7e02730314e02b54a1e296d2bef8a79411d9225
dad7b4e6d6f9cf0688b69ba21193bf1495807e7a1e67ed7e41cc25acc04702f6
8ef703e3d45722c1a91fdef7100a48631a02a6f02a08c6b1f9b4df8310385b86
8632718fd87119a233f219d9411383b7fa9f3e4780d8c27e2e89e0cae883d664
c3eac57a3aef8988a2e9f0f8c7f53e0a80bdfc4620e21287d0390e1975398544
7f3ea66401024bea75e1b4c4437b7bb188f76f96b918ac7c6ad7e8ae7f21d8c2
790f08cccec904fe48ef39e597ed4d4237c1d1f596f5906b19ea308020f7a35c
168e327ec3246b1dfabe912f6b6daac09974876d3996e57d180261110db05f15
e3e8eebba3d90b5764c03df3033a1ed678ebc679569a2fb297378b25434c0f20
5313ecb8a952f07242d3ee731b0cdc086a4481178a3d65129c47c09b22e9c431
e11b3747b94c26a757c38d06001798c6a568303d541385244b967d3b1786edea
f65bb53c4c2fe75e4b1b15c2c78d930b4296c80f08bad86012451edc8e9f0854
c3b390a16e27b11b3d45a9f72eff8baded2242dc928a61685d79e09681c97425
5b90a498614cf560fa5b1718981388268ba206a96989e6d0b5d485d9aca5594a
e67dd7b34d8a369adb06647f8aff8814d6d9cdc04a4835918e557174c5bc0f3f
bcea9907a04cf93c12727ec40db3f2f77596dca477862747435bdedacd9b2311
6cc97fa47ffdd7d897fb6bdd5572e35d34e7e1cb5e7273a4ffd86525323ace4a
84e1297028c2bd5469baa2e75d19360c2c9042139d5e7dd4390a6a3935424711
de21910126d750ae279916ceb71da3591d60dc62db333c5021e2c1cd61ade51e
9390b8b2d3a0204a6fec9e5a25a634ca16bc351f118ba793362797bec191070b
f985be496292763dd2f8014c582bae1cde04526982e5a3864e3d82e89193aea1
d227afd033ee1cc2fe8d90dc4495a49b18974c9464a9b975e48e119677861ce1
7a52817b72ccf8e47cfc7b71fcecdc51052c0d15066a369815ad8ef8b494ad9a
de40079811f1c4d6ba1378dc9f49f03c0321331e18b1c8ac449f75c4113d0b25
7b59c33006326f84e752a72c1db0c3e36ae633ffa7d5497be352d10c6defdb8a
438f37ab7b523ce2bdb3be0dc9f7937d2d84f907d2f3998f83049ccc64ba74f0
32b03f1ffdfaab14864a8321abaccbf3151246a75a763c16aedbb7e8b34c1032
b9e75e20110b5957f08b1aae91886dcfe3f87f7dab3511a84990a42dd01976d3
2e435c253d876c80bd2e874a4a8801f5dad6f62480ad11bc61685477bd2f4b7f
8d352080da5238644721027fb41164c742bcf5434513af79fafd076c5b7ef0e2
a8e596f4127a156779b188876fa1b5edf36abd7b91dfa8fce3d5771e1f73ce83
94e9626c0634b8d670922076397183589a1b7bff2ff863d64eb8d9ea3c7ef00b
4f57cacc009647ceebb9b1e44ceaf96cb9c74698b1232972e14df86fd6a3a025
c8d594fe95e30f5c36c91efefc2656977d978f039bfaad4a10b6ad8970a7d798
0f56a273638f8bb748b95a50e150b439af2767dc8651d929b8bcfb2bc392cd77
bc995e98c7565e58bf2f7428ebaa47849dbe90b48a44e881841e460fbe174292
bb793e04d0896f1516253e9252f8cb3daffd1dad53671eb53fd00334ba18bd24
6e79cb938f2f346a8dd0a7ba0a55382825f32a5645dd8a2ea5c50f020dc95c45
f38aa4fb
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 11 /alpha put
dup 12 /beta put
dup 13 /gamma put
dup 15 /epsilon1 put
dup 20 /kappa put
dup 21 /lambda put
dup 22 /mu put
dup 25 /pi put
dup 26 /rho put
dup 27 /sigma put
dup 28 /tau put
dup 39 /phi1 put
dup 58 /period put
dup 59 /comma put
dup 60 /less put
dup 61 /slash put
dup 62 /greater put
dup 63 /star put
dup 65 /A put
dup 66 /B put
dup 69 /E put
dup 70 /F put
dup 72 /H put
dup 73 /I put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 96 /lscript put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 120 /x put
dup 126 /vector put
readonly def
/FontBBox{-32 -250 1048 750}readonly def
/UniqueXX 5087385 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
bdd7da12534ba078ad3d780414930da4f8d58abefd45db119b10eb409dd89792
3c6e705479464a4b310b58348c4b42393988fef4925cf984423aaf65fea9f0e6
4629953bcf50b919d968d99bd185f83112b2759cc411764e9bde677f57c5ee5a
c555448d5f81a16259ded1e11bf4119d53e8ab07a802df900d3a2d5ccc1c6876
d29c5e9effb7af3ef83400b0910c07873a8c56fa7b1eb1ba426043b00cc95dbe
dc6e136cbbbcb3f67509964f9f281ebf81fe5b018122eaf66c4a838487e82e18
6e006093042848a903efb3469ab6b4049767aadb95c30408dfd58d8a10f4cb22
168decd9f3ee100f07b49aa44c92139b669cc312ba20192454eb2375be6284b0
26659d964b96ae82d4942e758027fcf23c25ed01115af27ce7f20efe2a822bb6
84004f20243a49c9e93301fc21b80815c033c3e2ba58ef53da2157d524b395f2
b37abca13bc6a2f42e824ab7e47106176b0d6db267fbb795ac7425582df2e3dc
55863468a9200742bd7b552c48f8cf58bc21343bd3b95abfa140f33f37c6f3f7
8b0d8a5154eb7c1f62ec598267f13e841a3e64172663935ac8b665d86540d316
ddece329c008049c5e74b27d59022c5515059bc3b89370b1bc6a169c888bb325
e0b74282d6f053a50da4024ed1e433271a32ab8c17d41c632b41cf9f3ecd5fe1
24daf7aea7ce8a63047b245822930d517df7baaafa69d2d17f7d93cebd47deb8
5405d720de0bb4dcae731a8e27bdbb6e6be38d168b7daff815acfc32ce367374
bf9fd98c0ae5ba1bccdb84d94b5c173abc92f7d18e19a68f64a2241a0a163910
8dc46b8a04ead17662b7bbff3d3d9a95d5937698573bfac64973dc8d8b8d9f68
c52d0c133119eca4fae72f7553d276c817003234a98337d7c037c0f1bce8a804
57113bcd97515c002d20f836fa086a3277727873ec2b64a92bedb01193491134
b6692a08de4a201a3f11dbe070d797f7629ad487d2b8dbf89a0631956c93864a
4020b54dc1f3dc6de588d6b87dcc0b683e8e2d2fed82d927508451821c4bcd68
d6311acca3a198d40295c03f20200c9633799c42ca29d687c0e2753637d136bc
596670b61e7e71fd0c172fa226ea53f62f6a4ed8bdd334ca56a1b88b1633bbc5
c4dc9705c7a12b709d731dcd633fa28d892c0f81efef622d2e6c7126d970df4d
50d64b7ee897240399ce5ef0ba11018b4c8b569e20c249199949e270a6686160
ed964ae87500bf0b50fd01cf4030af4e57eb22234c2a079329ac74d31cd94d70
39c5142a1b552203aea4c2ebffbf59654f2d637812762d2f1a7afd1957b86355
e172de2c10e562bf371f1bdbe1255c1d4c619e5f70f3594b5df8535c1ac24fbd
987992bd7438bbf81704db51da36ba047c0a0ebd83fe3d6465fd373d334f97dd
2bfb346ca52fc7e867be1084924889d2e48727387375fc451330e150ca7dcf58
5c619e53aef1a24fc6b0545238c0214a1781c7703c8722d6ce34834816286372
ee66cff5a518329ef6bba78c3f2b0c297e6127ef9c90c5ca48ffc452480cd93a
b2418507ffc3f6064de40f76aeda653481bb819a30f4644c8499cde524e6bdf7
f0567ece7edfdb4e4b55c6042a0ea0831d988996f93e8ced86222e3ab4a181aa
ba7df303cb5d9afe2e55105baf96a64b36ef1837c3bcd45616b6097a797bfeca
bf806a455d888cec0ad741396fa468ec37b1d575ae34df21f209c9fb9d419e63
066c140901ecdb691459bd7777e80376bece54218ee649d70d513b7196d952f6
b6417fc883295bee7e7c2cf6a93d244e51fa3db80d167405e322f734d51fa04a
a2d06cf66562de32bec485dc26413be6fbe835703bc32fa1fca277979d10e54f
0e50338fb357c961d291c90e32d6896257dd101be6e81779077d4efd1cd6e1c3
a75fbc8f96f0c0a762dd88537d16517ed5b840f313a3ed9e0be2a0c5e4886e60
4424dddeab79a5f8058276cc70712c43d0e2430f541f7b6b77b20672780e2583
bc58fe94a9300e71f4a4b6c94c20300fc131a5d627df68f86bd1fd1f4b47f860
e5652690599e94a25d0a70d28d3162fc717ab446a10bcce2cd68032fd5f32d25
ceeb139d6c8ea9c4bc567cc2b05036f1c2f5bc97fc7d82b3f40110d19c4e042a
f3aa22b05598f6d407c1c6278e8a50bb3071abcb42acca83f12a97c9d0eb8c94
2a2224282fa355cf1e39107751af27d7a608eb46ea069adc362b1896af00c6af
6b23204466eba486d4537e652e4a6ac3c3e149a5af58e85a2be9b38919eb4d8b
9ba9518a5fee69fa075fd16736af259d41d23061e6ebe60668a12d81610eb9a0
44932d90bb4f21d67790b80d7ad9ebc01bc0d3b4e2ac6a001f214f419e2fa881
944e7fbcfbd941100bd438a8d4ad6d47849d19a39768fac2f67340333f808912
2031e3313796a7645d9fd08ced56badcd2a56e3c08e0532000bfdbdd061d0b51
435e15eba26a3f8be40d0d978c523b5c06f60c5e209ea09fae78925d3d2e1ca5
de29905f47de7bd28fbf0c66a581b3dc0d8b2d49ac0524aa7298cf2c99fc4260
36410f8a7ed27faed9eb5ca0a34bcb8d7c84c539942bf80ae35d7c1cbb150c15
c232497eeadc97a10cf3966e68f1d4bbfcb9bb00ce6a4b048ea91be3df47e424
b66d4f04603b85a33f9a4e08b47bb0da44fcf69b8b3f58967d9041485c16902e
036b755021b8f64d1aa88fd454180685ba67adf23da0682479c1b0b917fbf9ac
e3b42608aa1e4689d9d818f3b1679a2ade85bacf13d14ddda17382ae79e33827
09b21219bd8d862553311509f2ba29317c96f305c96f46385caff4f0194ea04e
58705ea2900152fd69072d47c70a9c548dac519d62c23d340e45b2541808042c
dab0ea36b55bb9e2fde3d165324dcc4ec4382ee2b7a396ac238f7b913616bc74
fd61fee1c8ca53dc770f142ab120fe52d19fa3fc017a7f52aa8388e0debf9a1c
39055534d58c2c8f0cc8407bd3aa9bb4050702cad0d00602e2a3f7dacad62949
541cb32f9ab780df0670aa1ef6e5a870786f62ac92e9d0cc1ea27cbfa32b3542
c0d71d6195cc5462a5c9ea268e4355caf02e08e8bdfb6878acfb30fd6c928d5e
adb8a5d7c93e04b5960e021668b2593b62208fecc40b96ae31ce0fe239967c64
084b075114bc4a48a8dd182877f6964675e05fee94a9c8d45ad7606a9a6b2f35
41d813698e12709ea055ee90798486e9e94611e32082b88ce4766e0f0cad9aed
0c9e9c05b8270a486e6e80476a88398eb3d036bcc21d4daed4f40c7fa464d926
8c9cd4766a71780094e1976a58465a35b34236f712c99dd70d578ff2951b63bb
56e9c83943bb5fd3cc6411e8083d5145b5c467f50eca95d95dac96ec03579701
58676cbcdd4b5c328d9e78dcebf71c918835336f39388f797c9f74276b569d84
43741d40a6a3d7a1bf3c24032143beb9e6ed90e6d12d25a51e34f184ffdda228
04b5f5d21cfbbbbe549815a3ca1f619a8a51271e6331533738407e33c8ab997c
a7ad3f40344fe624b943121de6562aebfeac2e18b81d06c45bf6cb7ad21ba5ce
c397ca205410ee510862355ce7dceb1b3dbb17a54944384bf2b5909dc901d1eb
1657496868a0bc6409fb85d2f1c22c2d612c5dc510c0d5abd2784994ffe3cbc7
0bcc0db932744bc7f7b0950d055d29529a6679be25f39dffdbd210277aa595b4
a027bea781d2cd4614e2971d988f2d479a493d4ba39b658493b943fafc3f324e
d4befc8e55ad211756963514bd20108be5e86edf6a11210767dd9cdcc315df10
33fed9c989c80af4e1bb0b608f03c3a15023bbe029a7da3130e1651200d7e826
2a6a02629ec56eab5ba34474b7dba512e6ac29ddcca812a57b2a01d5ec6a3ece
ed441d5f982ef89cf37a29e1d4ff070e0b553fa00dc27bfc8096a313d265ef90
8ad6f2bfcfcd504260b2a576a51c7c730bd0aee6db167e9616e39aa7a69baa49
0d3d149936a8e9f7f58e827718938c7ec467759974b7529cd63856f7c9dc57ac
afe5c238ae2f5d6812aa32e175aa27c91af3da82ab4da2fa35814665bdf8e3af
09b3723a18ed284d2f22d1c578601284e85f463345cf44aae27693127f0803fd
12c7ec4740aac4eed7b2c4382b8524cf5d7680933ff3c5a6799910352e6a3ece
271fc530168705883439bba7a54d7e31cfd6ce6c24b7b7652318918e06722e67
724509d4e559ec4490b5eb67027498ea2085c8ef11b5442f99c16a62df5b199c
729db573a41df616db3d4d9e64be06bf10db27fd757bd1647d38186bb1d2b7d7
75bf1515f3d0c1417f1ed15807b97beda8bab9de86b8518a277d2c24c5b012fc
aa56d20ed328ac0b94fd093f194b12b708f0c1dce21c46aabb11e5264ce88c5d
daafaf8bdd8c0fabacc3d4c9d3bbe5692324dbe3f7d23f0291ff51ff6c54b0bb
84b407559516f9067d26f9d373d0ae2f04b62ea51eef3bdd08fc50d0f26adc9b
356d87c57fc1549fc82204011675b3e781b39a05f83ac5eabcd09cf4a09f9539
5a6da819397ae4b82408dafd33ff48cd880b189a0ab4c2186262a3a09b28ec6b
bcb4daa494781f5fbd527d6a60abeee55583718f3f37a6a7edccc28da272c8ed
6e9935d1353b51bea1a200eb594bd4b95f2bed10fae511c3af84eb69d3ca3dc5
8379c6f1a300ac966092ee13a0d617fcf3dc9483fd89eb1ee4198367c7a6cc65
8a0b57ab5b31d83349d107a5b6aba98db47e4c62ed78195cad6b6c7f3b5ee09a
b3ea2100c820f216c4139bc97e96ca3183e2331fedce21140b3d470e6d1c8453
3732ccabfd1761b1e3d5446ecb8bb965a91d3fd01ba6bc0103c883ae59160db1
95d02705f7c7d972254775898c8cfc7d3455a3dd3f5765ac3f96dc867889e6c2
c2602dde78d2cfbdb04edd870ba365e6d96bc5792fc8aca08794deb9798ba948
9429791207d62564a8318fa39adf87a955f97f724f9cc7ca0beddfad48ed3748
e5fe085270e1de7580f7c9a80904778abf112cffac67a5216a98bfce37c4b63b
5d6a1bf7b8ac632cb6e84751fd2de2ff373bd6ef6dcbc6917fb06a792ec69e79
8d80eefe99f64092b0e177837705be955939a1f05dee2173c018f2bd30149623
b053ac9b57fea4890360780eb3b6b0ac56a9a523ed8505bee3f40a7849e2cdad
4632ddcf6c9c44b7b4f68144e15d7ec7031b207c5ef88b1ecb6b20ab1dca66c5
d0294283b4260676ba59d7456115ca6f2b7f48497d0628f56730928c822b9c1d
a560286e0e6dd2d19289e16bc0feeadede4ec4ee2576bcda8cb29c8bef08dec5
96a2322e47908abbc4a110af2251e20b9ef5bdabb600c472ca749afb46582e52
10860f455ede92024a2d1c702edd394087b766bf0c6d878252cc1a19eb03230f
9367f845d1ee20204956d55688ebe554fca0813b3996d239cfe62625c45a9691
36b04ec7ec275c57aa808f39244d91080c99ad64a43f65f7b90e84fefd2b46a8
13a6e7a0d559ac32fb2383ccf9dfa64120fe05391116d3600929d368e1c88c6d
2d6a03246d737e6ad4d422a636bf8121f0b47f6074dab79c4885d1144c17e3ae
14b3da9f56a5a95e2cb33984fe3d840eb0d1a18170d8d472aeb3df096094a148
d3d22b42c1c307e2b582b81d2a08caf173f22ff8061beb8c05ecab3a08d3fdc6
266c35d689852f1b13ed8d02596fcda97bc32298590694d0f1537fd044946c2a
1c8e82ec2b240ddab6a389cd366be09dcbd661e0aaa75171a28bd2bf527002de
d87c50a7455692537edb6b944647471358281b608b7d6fd5b7a5ecfd66c85b3b
9a98232ff671e8ea56044ed10a342abd8499942652572916e53bb36dfcba47f5
32557d8d8d43b40dc88aae6b14535502fd514f49f9747b15db0b0a2119603f6a
24ac0d6ad5b7ab09214603ce00060abf24a88f6d0a03cb0af994818437b5a993
31353aa925acded0110b9756b43f0bd0e8482547c55ad749bbd17198f2f2eafe
de7f380e7806b3f6ea6c6396f26593ec8fd822c48c91c7692cbf94017dc97d7c
b5f04fe4a9da83b682e00cd1657f1e928ca48e482c4d214fb1ef497f51c0fba7
a26526b45e3b40874f4ae52330b2a63ec981977f917e49f3de632ebf51aa74d6
b9fd3f641e9e6bdef9b687f5242272ed927f830992bad641159cb17136e741ec
62238a6aa10b85386d54edad4dc8fdfb6063943e35fa5455849a6f7ff12e7815
dea39e5c8ddd3623aef087cda64c2de4e5ce42f693a597cfc3b9a613536c9f76
1097f5a32fb8db06a80b52fe3ab8eb79043f544dc0ccafbebe275e8cce0e4bdd
b4a4999f6009771d49fe4226a9c6236ae65af7df8b0f104d86db3b8c09a55d69
c3c42f50f477e8db981b36fc9fe36b026be3261e7d2ef33d1b706ee0f32c086d
c9902b58d088dc6694756ec7b629df3acc9d0672097be03f9f5e19919653e9df
8cc7f836be6e44d294b731b84a6a826f09cf8f45440cf952580f7fd3857f0e24
7b0fb0ab0c3326148a98da2dbbc3e69ed2a04de273403af6fad9a3bd1d4de3b6
5f928e5bce22cf752c99972e5796df02c6503cadeabde68d509ed2424fafeb92
4f2430f2701c6caa8353ded53ab250875e6810833f97e420258cdd082a0b4156
70fab9e8ee7caa274f6c04c733a399cb0665157c80dc8a188f393c2ec0a537f8
f4c8b61f63ccf771778e8d81e1ed92858f8dad955762582594bd26ef248807e3
2ebb4a6dbd777cd844aae8e93f56919ecc550a24eb5b7a2cb1a247e7a878e253
b74faa71b12ba1a7f96fb765ee7095da36252ec790a9bb8f21d9096b6a8f72bc
38043ecb84c559f6f635d6b88e1beabadf477426f59bf7a34527217712865f5b
4931fa7c7b7262c49423455c78d6cd4de7e978cf04b12f3c3e31782a0600d60a
038d79b9bdaa69f89375a8816490210544dfe4e530b99c7d38d601fa0c4d86e7
2be2352d51fda2ff4f1b18bcab8b01c6e056852ae5eb0d37c6f15bd8ecaa0569
75ffb23e3ae9461c3987c770578e2443d960742bbdd3af93cda5ddea5932c154
be15e642c4c166ed37f9d801dca358198f988fa16b377c5c48fd4ceeb714af9f
9347d03ae4eefb7970eb7a10f024e52a0c86103ca5b8dd26603a17e8996bf3dd
b221514abb9eb1f7d1298138b5eee24b69ea45dace1a03884b153328a30f4294
578497d7728eeea20ceaafb0832a755bebb70820bf5a4501d03dbf4f5277f51f
431ba4489a5b5fbbe47f20906b21eab78079d2800bb32245d2327ae9fc1506e4
2c40754cf1bbf63bd61c400498414f22824cd46977e1bab8b57e8710b4a2e7c6
87d5ff9ec380fc127906e8198d06105f3b523955923723924192c70ff44325a1
e168cbe627095f8847d8959202e1221657588e408b2c9e42ff05569284ddd2c8
257a40f13d82da1ce750339fec0f58a839f5103deac8c03484c5956a6f6c0c4d
e9d04fcf8be74ab470e4f7748ffbd72de7a580efa772a6e1bf1f5170881289c3
155bfb896c2f88efee2b2731be8cce6dab76358c4f9ec090e4352d9c7e4e1a13
cd0906c7c00da4c626a994d8c3a66800a429ecbb02a23663cdd9d4b24d6619fb
de458522114d531e17a391909e7a4e7f5cb6c4f3e9f72708419c16b280a40829
c6a803cd3e999484730f4d1068c7df3e4dbb27177defb956b08c7f5570b6d31c
6d3b8625ecdc0e4838200ccda57a4d09cc07830d07ca1abcf83928a4a7f92f6c
dd15fc5b70bfd12769434397030390afc2468583ebb3aad60fdef062918d3714
aa14661505626bccf5edfe05f8765e7ad0bf671451ded1b6768e167eb6dc9cb0
a0d24d056b1112e44d2bd865b4752cdabe832c1e56d689b93e6be8c352c02460
4d2c1d71291f0530afa904e0a027b6154f8b3e8b953350b3f7a50bb5b2662977
61aa55e512c537df2216cff3d61b81f447796483f13058f61e1f324559dfbfec
32fff4a61efd3e69445deb484dd4359a72a3e4f9f729a54cab07903d55266cfe
a514d6b4c5bf6241ab4f3549ee9fa74d063a11df9c73b5ecf3dc799270407508
906bbedf830229cb20803ec2d390190e8708f2fa3f1163b8ca5be7c10c87fc72
0dc9854deac9bab51d6fa383320ec02743791bffc1065ceadb0d44e3a2f86eaf
b71e2f1d5005afba82ad0fcea3713ae8fe653558cd40a75f10d2cd9aaf0f84c8
1072279571e0bc18a94a638f851b7926e5eeb102642e63b9f4f46fbb4fb982c5
d680ba58612d77fcf3fc9f21c5743c82674278051f7bc38120861f7115d320de
00db7fc0f4a21598c18922dd6117ca26fb022f285be171de615d58a4acc85aca
592f24a97aa8efbe92cf817a5ec2484c2a871de982f71905736ee935bbdbd43c
23c4cffd5645a9995533fb38f9ec7ffb889cd467c352f3c52076714b1f0cd1dd
742d3537bbb4cb55b170f23720c38aece2056687283e17f1d19012f6d6d3f794
b2a22dc386d2e8ebf9bc69dbb9ae7f97753ff7390c5f43b551a7cf7b59eeefdd
d50190dd2a9509c813315dc79c4ba4c0d8af080b2ca330059f0546b596b4574f
63059464957e7268435a656e91b1244277c2535d95fbeeb2c15bf1bd47586e19
8272bf144c6e60b30eceed25b18bcb8ae0b9ebd0288f033bdd082393e4921875
fde3efc49a31fda1442ace9930bf908662eb3ac3eed8cdd8b73dd3671b38afaf
a90801a66ce337284f4985ae8fa11ca578a211b1cd55b51faaee03db9aaa1b3c
5e8943f37c5146b332625af5f9421044ef5b29e526a10011c8f48d8d242aecb8
475cafa6fa6d05dc5c4d1dc7d51a9a6f6cd78a715f19db5e0268c87f7ab2fe3f
2ece349d949ec9dd3afb884c454d538107d109e3956295c30a60c9a936c9b099
a94eb6c67db713be390a03a732bac4cbd9d6b9e23385981f29fd3630ca8866b5
9fe0cee5b73c869dba54fde60f18451ad041c62ad6a79f88c6246280b2d79c16
1e95ea12c4cb3506e10f873a13c655dc4a736b5dd1d0508205b0fcbd4c095182
2ae6674d36fd7466ed2719d3893bc7574484823a7a4803541a40950d88e807c3
6f5b6589c850b7cd1b0f6dac6046177e184b5c3d65c1ee88afef82793da00462
8db11a13e3df9c6a5cfff9dfecd89e7e237cfdf3c79ca77864abbbd842c00300
dda6b0ff79bfaf3ecc0f6f3fec124d7eb84b64b00bf0df3c90f24158a7e8fcc5
fcb34cb0084ec392ad350a14501b696d2a43b0aa5f963fb4f255c696135f87da
82d375b963180d9028b1195ba09524d14e5006b0120edc5c9ecb1446d08f931d
469ec873364141e8b85174e449ac7546fbbc71bf41bcf1bbd669c01cfc0a9682
618b4c5c5b0b77726c5f04772ebf2d97a21078171c357a76e0a5c9824357dd28
5bb2b785f47be1fd6d583e39b04de390310217909bf67ea14528d7999bbfbca0
d125d8fe117815ed8e73b366ddea994d8539952944d0ae0d1951a8d46cd1c7e8
52aeba3059c86d29bf547ebf86f2e32681c55fec08b02cb1b6b22b56e5135a65
196b7227cf00df1519fe968f6de859cd5af779a8136c8bb70693c96a785c5865
cabb4606ae32baccb982ee52998f318a1b48b8859ea0ac62e95486b0e57ffd9e
c5314be27ad8bb0467d28e53c9d07cdb415f21bd51b3efd4bdc50df592c1e6fa
2a8c79f2b4cb39dcaea2020a32a77aacc277489b0dae8b0579e5b77a4f3a9c93
15270c9d4a7818ead160889f162d51de609086d948fbd8b6acb5761151fb8e74
557f8facd8f30e605629447d0c712b4f4a8e57f8033106f3266640f378ab2686
75fe79b6bdcbb69a4fa82f4d276fa206c3b37f30a2abd0ccfc2abc12c837f85c
5061a1edfab1f63c9f1ca3eabc5b30991792b53b0f298fc25d81941b2e0da17f
6a8b407771b44a8ee4c055d75fe0cdd2dd52d3020a5f60601b32dece48075813
f4a1306dabab6743a073e1be5a2a9365e96b1edbc79fffbcd0086328a85090fa
2de6d6e49c42a9c2939b75ed0ec82bf9e9327d26aecfb9a2cbc8c32e3d3a1c92
b0786bdfc53a8a34bdf6e9582ba3e2783fbb9719724490212452a1ee21e8055b
1ff36ede23860d08b1c5aee1f69a3a6de601eb7b6975e5cb4d14ef9249ed4915
f87b20de31a40a10a8167ef517b852f4ae66ee9cc04fa851501c9300c34bf66e
ed8d4787cdb2bad3256c2142411b631b7bcec3290dbd22757cf998125925d1d8
c9638729277de06855cc86f8f802be85e64b3aefd3e7657f778f00ee00d56a6e
280df564774c0b240d8d037aea0ea595582f08ce55ec78ab815db2201e1c2b80
010b42d57cda6b82a04b88375952909e3b3f6007cfdd8a8902e8a62e8491c74c
fa51d8806bca5323b714bd95fa4b1642b0210a5bc2c722b1e98fb83c0ea3dc17
226dbac957c6b6f5a7ad9d4a9bd486140482554dae380dd266c7fe2f87390898
4a4683dacc5d3eb04f24710d6c0fa20e611600f6632040c4d2e3e75eda721a7d
89d770bf7bbbb399b00a19c3e7e469397a8470ca38f1cb142174217a0fbdb6c0
761ece7e49e74f210e9f78f070c93eacffc546cac9598da4135ac2571c49d2d3
df8d5ca6c5e1f58920ca6de00c73fb2675dff1bb67d37e1a33d53e59a1b765c4
ce1639d7deb163b6eb57b217a190d87a82ffacd97d7192f28a100c14bbdc60a8
e7a335daf9f03ff872cc7d806ad42b9c68c1e296fadd03ec340fe48923fe4173
68cf64c8408fa9dd1c9af9f21014533c902596c3e6a8e7d9cb288a8e59278107
413e4b2b7c78d8b94b77852d217293ef0ffd4b88b764d5b3e456f86c369f2ad6
866182c55d19fd1915c6438f49fe9633730d86c1f2f79810d6ae575f3fd40317
311a8cc229b7980203adb8a576229f34f2bfdad9c0714c4985dd50098b9fdf46
4ccf391fe60f4396edfea3b7ab5cfeac2ec03f7a004da65efeacf784b8274fdd
0805ebd6ce340fc6f60426206d0eb93acb343eb027852d907d7cf07b404ac9f6
81e1397389ce955e8019b02838cbd1efda71b523a7fabe41eaf08e3b8d22628d
1d84d6e5b8fe211073ce805214ad81855157afc787e41071c6ef204b6024d5ce
fa280febab0454d0e8d0ebf37d5bde138ce9f07bbf658a5f9c8f26d4aac04b0e
63e51291ccdbcfade371f5a3881393eaaac1b9403cfd473514befc7ec12fc5a9
b9c8e2a8d48b3aeef264416be0713985fb895189c4fcf999a83bab2a1d003211
caa278ca6045573527e9ec26d40c791b5a607030bec7af8c28314f7e9a96687c
806b3bcfc0e9899cb2d6adc5e8ca3651af850cf7abf127fdf4559c2d12eb7300
3fb8cd6ab2c2abea3d049ed7f10f8a7bc02cb32ce3a188bebf60ea62893648cc
73fc14ef759ea13236a0a53fc721dc04472eaabdeeb40ca81f18df6b7ccec24b
62d6ce7552886b8d78685415a62cf032a3b098e9cad52b815b3df0767c88086e
b37c07ae11390acb1c732e933bb740d44b39d819895776079c9f748ccf477118
490a05f74e474fd1b999a034c6d7cecfbcc3d0824059cbdd8c8b3b4a4951a1a4
77baab87f8ea926254d912202805717fbbe3306fcbe681051bdcf40c5c6cc818
3d572f4e2dbecb3dd025865ef923062624afde517fd02cd0fe320375c9979edb
b9e7e5e3c34396cdeb6dd1d0a60a47997848b6a6ae2caf0d830161e923cd3658
d9f04f2770ae5f893295984ab24d44350a3357004316749fcc7d68912cca6bd8
5862fb89bd2793fe2e73d597ee6372be9ba3d07b6939d25b25bd31857bb9c7a7
d13020a16e79b271eaea1cee474f6797c51f2bbc79b50b786ffd9d1be9659cd6
4b1cf3245481cff6fda7fd00f910dfdc3411fc4657a18ac6d8e3b9dd3a645ce4
7ebf2aac3179388beab247bdc9e1dcc3da6b97de5278dc83c941ba75cc4c12d1
20d56b5fc60b4ab18df3ddd3fe9547548df2b2c97b1eb7350a662dd7001845f8
b89e8f8defe9b239f318a58c66dea1331b3db594efefc71c10e612ab7b8550f3
4e5e32e3df1f8ee94ddc338c730b34606b4bb0b5574a4935e69903dbf93bae25
ffac42c261be135f2b66330f061040c225da79a9885d6596de946197fd9e701f
6546aadece3a26c981d0959347ac6f92b29d4f8da441a7531749e7c19e87a213
7a52667421678a3b00bc05e6c3c8a634d0f911f37e8d56871b5f74d98c1aa4b5
17cbc0fbdabc038a2c5623738295b6e650a533184d8a7ca4ac93ecdc220fc19d
868f26a1b23d18012ac127b07a8b0897e4d8e47bf6945e33e864fa0a2e083b92
bc07873e21db41d516fcfb2e09d981f49eb077ffab9570632ec56af1ab150aca
790b448f3b3dbbc3414ee44358164d3d136a4be78d4f7b3028adde610978b5f7
c59868939eded61cf0744c84d1294059ab3df82016e14d5e61fa5e74950352a3
289f787dd7593552b9823b50dfb024ede5a57c72c8b740b80248f8f0ef18b805
e50dcda2d0beb797a5ad53c905e2dd8bb27f86a297c8a43a1c4446acdb5d6655
4e6316a84ea3af00679b2480ce3eb32a1a0ca1e994b81f0ad3dcd51e95997994
edcedb9b09b1da65fedc4d5405f669d56e0810dd05708b809acc0360b889c707
59bb80f5232e6b3a9da1cfff9165150583f9a829b5b9a0915be8e610eec93b8a
53f0c0da844faa03032ca62ff919a78249d2b2037848229262028d6b76b04424
1ce11a9e07ab3c62e561665b90b57058a0e6dc10afd6b446492ceb0761ed58f5
aa43fe826921f6e5b6620e414b12d87af8f6e8ea8f66d878a3ada2d630d1e080
bb3c34ac97a5ccf88477a40229db6950fb6abf2da24cd049a2818c12402511ec
e07787f3b65d9377eb6a9051bc29407b537eb73ac3e6901f3d1a8ef6bef5abbc
19e89b649c1ae81cfacdef563400cb8eb9ef497c9c6676084bdacd19e622b06a
911a402763e2af95d8bda005f5dcc71fc7daac3c771d17f8b51001fb9c9cc5c0
8be10ef39fae93d51ed9f3c6eaee9d4a2a020288d2e638fb1ff899a7f1064e7c
0b3def2996d4065393af964b17a9c792c99503d1ec4c19c4db55f08c4e70438a
320d87565d01f782aa434b1a9cd42f47ae790a4fe7016c063cc9aa4b0db28d43
445beba5ce158377407a53ac5182eccb5a3497dc2eaa921e92e0cfac25d10309
fce94cb8be510b3a9327ca5ad668b69b06d2434e2e99d60cda2be2f165cce06c
a9da1517a338d21a8b861c0e1d2d401a1c4c38494a4e85345393140eda95879c
33e9850e7531d62710eba20f8245c42b4ddf1aa1fd478912cd86527510db024e
6aca844e2799d52ac2df91708b8a339a0f5aaf3cf73d8308dd57d83a5a399ba7
ad13eb60a23ab5dee40f2e88bc4650ea68d5a5d8cd00fa2ff3d3fffb3e74e916
cfdeb447e5e2b8c3dd29b6a5fd5b90141c49617871b434d43086d03dcb306bde
ce9b0ec87507402deb86c478313d2e0b50042f7cc4ab2706e97eb2525351b4c5
6c2f5a5793c87863c9e6b7869409e86fa0cab81105f868942055375df7b1f967
31bdd038d96666d1ef3154f09a3986a686675e1fef4a54b7386572643b9e4a64
495b59006d997f4a64e29dae60c0cdd93572362bce83cefe7c3a51273bcb496a
2d76174a27c26000bbf719bb72eb5eaebbe064e46d23678bfa012105cebd43e0
34d9ed4ed89ffca2f89cbfc14c19102cba7cd5af7d81eaa02f2a94d95ddc2e08
e33e8577c76b9d7fc9e1280973bd6502b38fb736f994517b578fab7cc8b751e5
5c5ff50247975ea481881294c8022970f39c701d92c4f6b60fe44b5be826e1d5
7be4b98e5e71b3b20267da1a0cdc30cdb18ac7aa58e7212d0c1e18d1830e1605
6918a868287e444e71623ad867d06ed3d3dfff1e996ac193646cdd2e35c3305d
3dce079099ebd22150bc7323b5dea2600b8c08a3fd24dde8a1df1d311f5f35c4
a11128f19299a91759e2eb5c2805aa094bf706d8961d7b898983948eaad33fa2
623908dc34f14a5f68b48a18c8582655acbd4f30fcbac72a105e0036e3faf355
7e81bb912ec2f1b7d3889aa4de899029dd03533c33a71ec85775eb4b01a62d8d
fad5b151358cd08748806e28012c9c327517fada4fc5b698b7c0706cdc7eac62
cb6692705afc79d56c1aa78ee02f113bebb3621cedc5a0496d18189c54f6c708
180b1228739adee7569d9ef2c16549ee28de1982df2c47cf130993bdbe3c02b8
d5c039126b7909c244c05980de2220df739d9ac18d6cee348e63f551e18b9aba
fadee1dd182771f69c4a6a421713f02a7212e1b17689719d77deadd8684a8c30
e3d920c423ab0660d8d41c79a11228c0c9f641f0499b6684946469efe44680c4
c999414cc366889bdd5d6797c5f6d709c109c8b4f559ace8a18613250ebe4361
f5d289dbb1afd9e7a5debd1b076c9dab92f102d2b058c0c325fb8106c829e1d2
4ae858ef58c6ca14d9ea161b0596811bfa8b36fa26899030304e5d010aec0de8
ca2290896a1fd3b35e3245c2a7787bc5583e099cc92730d9620c97e75785bc18
baea55b4555e93fc14abdba455bfaf1406f2867401c303ffabb8481594e536d1
db77a9da60b9aeebaa56f6547b9722ffe2d879f71aaee269f9b4f638efc9e6e8
5e55b97a2c5bdaee2d3b7f93112da6b97342cb5c49b58601d49156e70095a708
11d3d994fa49b6168b98f2103f2ef9a8df8800977771ea827d1e87db9a86ee43
508fc4832afdb2bfa415878b65c8538306822a0d63a52dff7025dbbf09b2e08b
924600907549757d0140cee4a151603754ee55ea3e57a2e0cc2caa53c403ec27
d708f95e1cd7d96016325b337cbb67e968dfad393165886412014cad93acabd4
c8f3d273836b9dbd6cbf03ea51b88c2aa4ac78451ef67136932bd993f3dae4af
90c3885d1552c2315487c1e041b978d0548eba43e472403533917e6d8bb66809
e209c497f657c8ac2eceba0e31ada2cd72afbbd0ecb37f6296f10cb114dfe58e
f7f8917af52a12d9d8a72451528f0c906fdfcb2ae36e0cf261b6abc98eab13a9
b578a765aab93dbeb0a8c1663ca0602191c9e9781a786e8e8aaecae72fd0aa75
047bb1b74f5d5208656c70ace55b4322d61ab0637927002927c5f440af5f5f4e
152b49db100bb4229bfdd8302280b77d4e29864ae5b9b51245663b8ae6c92f16
68719a7827b0d9dc8f54c39dd75cd1544e45565341056c3f2283f82280b763fc
ba78dfdde9f8c25fb5d08ab3e8598988010c839abf663f0ff8bc154ae73e220c
2dc6fc7ef48b5432bf082ec4e3d07edced1189fecdda8732614771b52ec8ac5a
0af211147b800c560c943daff584ed7d9c3f66e0099e55371dfaa9276b603748
ee504eb5506d715d26045158b6f6042f8842377df366a83d463f8524f6b89976
e28caf20822a8cf52492a11de8d2bb64fd79802605562e6a559a63f6358212b3
d72d6bd5660bcf84f43f026fdebfcc9aec85d64bbce0cb8e56320bc0dcc37af1
24fab403a134b34b8e7e5d5f7cdb2ac6c276ea3bdd832e46f5aa1e6072dc56e1
54574016793db53abaf10c4dfd124375731bd742263f0d1e4615fa8c1d3f3458
9080bf6b3ece68de34323b4bb9fb78ae06d91b6c08afd0a94966aacdfac1b90f
4ff3b27b813c15a5cad5de0197c5f03358cdf60dba87a0ed5e9129c366d27653
142d73564de9be052a000de1c18a9740288ddd486020617c4250809197179192
27083dd8bc163a468b405f9a508683faf94519a367a8c2d6b8640bf5bbbf7411
9742f12f177cd2c684ab446a1d0dc0c21cb833ec6aff232adcb68e1e546bd6a4
276372a70acaa74bb548cd8ceefc1185f5be2de7eeddb898049abfb4ede1a820
2f27735d92e1e915ccaa37dd0ea8f020712b48c5610db4c59f831dc475e63922
20811b80e75f6043fd5980c76c42f8f1c697f243faeaf03e826584119ce9e495
0367a2dabc4b1fdb5a730cb373c1995150decbc7323f0da081ca4bd8c4273494
97be9af34818c356ac76060688fa4b25715980455ffce103f0e99d27f934b956
b27c225119803ce37d945ba6283f3b17fc64cd10c7c23c7bb96a3b2c6181faf3
548e861b6c3dbc40acc374416d3f9694100a588dd071d821edc16682ebe3543e
81d3f8e88c5199efcb36af6b245b7b9807f2f54ffedf930f3208a9e91c74b411
6ebd4053b7df639af806dfdfc525e999e50b4c97805e8ffef95d072720fa4288
0f1a79dd87bf10a5e29763d9dce840b8ee6b5607921a96631b04fc4998d82ed5
8834ccdcabbb2905143ac65add2cd5ffa80567303e4aef82146ea32ddb373cf6
46e2421938d89c1628786872c72f254dcaa1bae6a40878c99ae9bb7c8b634a82
4e61cb168b631294fd4d2cfc42267e8c9b21d6fab8de63d96ac1341041b2332f
2ef5e0ea520c59f056abab2c080fba602e08156bfd762581bddcf6eba76a4acc
51a553f3d7c95b3a4aef8fd14e48e333f507ea74f56927528ab8fcb310c9f88e
c9834428e499b6d5e6cf530eddc561e7797d261988077e09e573419e377fa3e0
82d595b062fd442a0f6818a7fd2c7db53dfcc45d6bbdec8a1e9f170bca99b6e5
128c7f43cfe9ef8f2572807e5fdae5ece9dacb90163a1de90048a788c7af5270
970a7b1884668b36b8ce59aa38b2b4b6aa06294355ee1ea4d22658f58a97b641
10b3d7ed46bbf35072f2100daf6e76b5cc53856457a56ded5f7196960cd55589
503f7e8b2522bd110620f981dc8f1cb8f088b4f6a7274936484b72a3c549dfa3
1a3f412970ed8a2afc1e189b98670dc3e542c57981e555a84c1ec6047d2a2517
32a8ff941518e9654432d3d337fb0454c845c8c84ab2275eb753e3c1e22fbe11
1af180d259ea7fbda1ddd3f0d97c81817df0ba79074366847d08def8a0ace56c
83cf0ea0b192d9318084846e05b992ca762a96717c2b3645a0451d75cb1cecd2
7709091c19c6410a2e2eca4555a247e7dc869414690b70df93b8015bdc15ea17
8a9e1463504d041562e76e6325025903c3e61c2ed10b6f3c5309c8ade51e0546
97566137bd2b96e169376a8d77f892b9e4a6a2da0f2b69febbeb900b39ccc370
061ee3486a96008010cd0b8b33e16429c4100817ce46602d0deb2c5f3b2fa5d0
f2fe093d4252cfb6f4dbe69eeedca0b05a7cbe4b9af1482f2704d0600ec6bba5
49764a09cde73996b19a2261eccaa22c70a5d1df21734fb6f5d6303d02e583c7
c5280276b653cc4be2748c06331f7297a42c84158d47809839a979978905f8d8
cc063f091d829a2dd0d98f9b8a21b377c198fa416cea94d1543f299dcc340edb
8755ac58191e9a247488fc31f6b4953eee41267ce6128f9d593ab15487f54f1c
0188eba71e2b8de096edbe8ed717785e34f846f000ad074d98c84d95df2bb2fd
87e485dc25fc5f4fc0bfe670dd3ae97aab52bf9d4f4727e6a0cf5c255a305d71
12e49532a3171f766f8e200c8b460a80fb78fc9abbd667559ffe30bba6414674
ae381f917b8492f219040274deba6681b10fbda29ae79cbfa35e6ed138849efa
e3cfe795912ae819e08ffca86a78ef72b85318c71e6be2dd7711c0f6e27ceafa
6e6b81c475b4f1d76be7a235f1f76a1d308e6acef1ea87b7ad371419898b96bf
b4544bd7cf1ac949d71cdab70859c0c5cc534f296fc067f758b6251e2b597979
95ffde8e33dc087fd9119d53113c0b194bbf2f93f4049363ed75bf054790af52
d0fd5a0c08098160f04616fc51463172c8df2817e261aad049421686f29065cb
e5665c8e76248da555477df9a52963643781afd9c0e86535e9db04ec3b453ad4
48b3b4f2e795e79a2f95a6af0b1272fd07c4aa4b171f6bfa75476b4ebcc7cdb6
220ff6616c17a8dc75acbc6c3c164cdb5a7789e3
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 /Gamma put
dup 1 /Delta put
dup 3 /Lambda put
dup 4 /Xi put
dup 8 /Phi put
dup 9 /Psi put
dup 11 /ff put
dup 12 /fi put
dup 13 /fl put
dup 14 /ffi put
dup 15 /ffl put
dup 16 /dotlessi put
dup 19 /acute put
dup 22 /macron put
dup 33 /exclam put
dup 34 /quotedblright put
dup 39 /quoteright put
dup 40 /parenleft put
dup 41 /parenright put
dup 43 /plus put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 56 /eight put
dup 57 /nine put
dup 58 /colon put
dup 59 /semicolon put
dup 61 /equal put
dup 64 /at put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 72 /H put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 79 /O put
dup 80 /P put
dup 81 /Q put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 85 /U put
dup 86 /V put
dup 87 /W put
dup 88 /X put
dup 89 /Y put
dup 90 /Z put
dup 91 /bracketleft put
dup 92 /quotedblleft put
dup 93 /bracketright put
dup 96 /quoteleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 113 /q put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
dup 122 /z put
dup 123 /endash put
dup 124 /emdash put
dup 127 /dieresis put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueXX 5000793 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306457c7e62c1d269f306bd3402e266de
fc3b5e7d8a8d2f5bf0fe6ddd40d07391df4fad4a6018dce29a2b8f692b29f202
3a7c0e66de8ed85c14f1f8492167357f51a7e84cc5d92e0fee4d81cf7fbc8de5
2d2e7bb57142033993f9c08c315abade8dbc4a732e84e142d3bee51557910e12
cd8aa37c459a5e6b7f5269f59078aba3be4641a11ac48d0b625c8325b38ec08e
4c9e5e7fed976a5650d99d82114f449b9ca14c4ec957702295a39a93ef93f618
99b8ea06b092c3c1e503e6e436e0a9fa22576c8930ab3dc8c20f5d82b69cddf8
ff4dacfa9c54bed5a3aa3ea5b129fe96be632843b9b6bc91b615581a985db56b
1e01ca60ee69ca92cf5c0882ece62edad3e106d835348822400f0b66af658f2a
e56ed08f8b0010571807009b73ab12a8cf14ca6c71f03c2a48c500f9d62266af
154a6375ff600d9bac3f05ce34142d6867a79581c533176bb2f3117336671e2e
44638a97167e2ea9644e31ea16c2ad2990ea33c54001e0c8156e6de8ab6a4d40
a7137ba275f39589fea2e2db8256adc103d6f9cc038037a47e8fd469c5f98a5e
3c15bd4ace40d340018b1cff7d1ed8abb0ac57b5b5a2c20a51957b96c453edb7
dae5affd91a46d938fe0a13363001d844ded4323f1ee6d30012aea19b024a552
315505535c85dc26bad31e09c50e6512802976d298c4e90d0044c362e6bf3ab3
62a454ee93de25ce54411090c29e9d75c80ce26a84404bd9de3aee0e3f921ac5
87f907572b8354a5c3165eea7e8b2ba4e333802132f760b41a900c698eb3d273
8bea0aaf7aae96a558f08b61aec7c7d65b2889bb7b99800cffee5ba19ac90fce
11437be1ddfcf0bca5670b543b9644a71c8726d0c1005abdb96f6e0cf7caaa31
95017ca81519151c2c0b04f81e717c0691b63a76e9b25329ce2625b711cb7bf9
9d23ec2bb5ec8aefb8c1a3b422ad617b3da4d49685fd44cc21a1fe5e1541163a
b3e1594601d63c7e98801d7746474377ce93f81404f3570afbd5dbfe77578605
917ab96963987e6efc2d3f99fa56ecae6422579852567f90cc90e4ef6d6f71d1
858270205477e221018a375ca83c572b3f972c5181d18643cecb04909d84cf76
7174b3c0c8ec69bf1e9fdfbc0fc7ed97ec67d878ea4ddac8caa522fdc6932df7
21b81af837ab56b547d4799241310d6692918fcf8a46189a78d6638aad7cb446
2d8774ec73d184076595c94c0b4a8233c59476dd7bcc1dcfa672d3781e768ec3
2d1b286c1b8c3c1bfa747814715419b0684c31340b184be0f3561a25f0ca3519
7032d6e46622fff5273613b664637fa0372c96ec858c8f1a2e604daec9052e90
95ee04188fb0a04fd6c31c48cc3b98e051c9ce77cd6726a73fdca64d50a1421d
043bdd18f216a5a48cd383af9a8646c60626c45a3fa8159c2c1aa6a0e8b92d46
3d1cde9eb1dca6843c411acf9956464885347ff052bdc2ea8ad2498da48f90db
c75fb1438a8b6c6c8892b98e09a24ec640216fa507badbdf43fb366c3946c13f
a59fcd3c5c8aa13af37c76d40709254eabad9226bc86374f4dfd968f07748898
2153efe2471b4cebf0e02e545070bf048d62cef53944be45f64e4037d9d21de5
6cbf528eb3b4c003c5aeb374a620a0c27ee99ab6411991246fb44e77dbbcb630
f3301148d39e2a47bc85a1ba9e6e08ca06d86104e89eff7aa366616d7c14503a
307b23ab28e069cc9a0e9011ad4c2bb4f6b0f28026725a53d1f8974afb4282ba
47e88a8a9c93f9920f2cee20e4808600e51b9cb7baf9f5f5582f33b28e0862b6
40bff18a9def4692677619e535d98373d10da36a58de78d6a0a2d8a9e84d5d3e
aadf3e1c9dd4a0de2fd5e3dddc5edb7ed2e553bde089a75d2bdb3d6a57c5f6ff
5e63d6aaba883ed601999cbc9c462c3d6405e7b384cba6b7577fc2890ef942f6
c1ebdcba12e34bdb2d1cc13595957cf80035617e63dee440900c2aa9804048e7
5eb6f67c6476c7e0f8aa0fd86d94302bfc2587b70846ed7f32f9ef2bd1e4406f
f1df9b368c95ddaf00871b720ae317f65b0a9de0bd55b5fbb69ee0e1df8691fa
6819fe5dbcfd9eac44920b9b635ea15f05eb04d8587a2b4976ba7f32d6859309
2cd6c9483823bc11d426256168314952f6f176030fffe7091ad8bf710e921226
8a2e2a069db4fcb834cfb3f5e55d629ab0743ee9fdb0573a530fead02240fcd6
115adf2d83ca2cdf008d171aa46e720b6fe4407b8f2fbfd185f6a28202fa4749
0b82ee2824e1036edcc9e07f02a6587c44f0726a67ca30889e3684f932acc104
81c4dc50b9e9257305c2f159147d80fd7851de5bcc3c27ae5933b0b8b9e5a085
274319fbbd9daf5849152a8ff6c24d1574c985871a0e60be1c2e9be7cf6b3ec0
6c285cb0b486f4dd55daa87ac251b9dd5c5a428c30ea2b5f23722f18a5b9982f
71f70c42fecba69af1ed6c4d4221ba1eb0c7413a4e2c9ebd4b09b4cc011d1bb8
9650c16eb051be2ab151aa75253eed85eaee9c8819f7f3a73b869c1f8c09aa94
3cb326f2997076488fdcec66527e0a7dad3766dc1cc3389cb3a6603d4593b964
7f9a19d2598ab86db4ff54a98c262b87b82a8cd41e66c4048901c3595901bb83
415613a112d03654a7bad4fd035bac3308a2d0aeb1b563e500e3e2ee47be4445
19c3dd35c91af90a3ea1aa11b23b5e04de4f8c7ce529c36e55ed4e9df6ddfab5
551b470e3f1e05eb8f4faef2405e724aea10a13071c70f887c6b195759f26216
c798fed8dad58ae458754551863a44ef3a034b8f829a975f8640ca8b4675990f
02f9ded11c6a22a2fbc6b963264b35e15760b93193b8a7bb73fd6932d2ca329d
d917dfaf36d5bd298ecf20c1dede028f0944a0f624de7426e015cd527be52e34
7b351c21b9adc074c58780c65c907d2728df4e900f34c6d23e9a636009a54e65
45cda85fc0c2db7e2e54243f36648238f6da9ba737cacf08130a20a14663800b
cb0ec733d1ce64aa4d6c01a1755cdfbf12e0910284f324f6a6120ce8ca83dcef
9993393d8ed8100785964b1d91468ca449579f1242bf7f523caa15fc48d3aead
8383ec69b49139c969e42c272bcd19339cb8a711d69d56a89515058ee490b981
c72b90f307459738e5114b1c7bbaaaa577365ecb873c901d1d41a3d6d5a7f2cf
fe3c1d9e6326465e52549deb8634ccb2196fdeff2a373c4ce668215aa847d8b3
1ba123f3d93b723cfec6c291ed6ebf3f00aacc92dbe42b19a3d26ff1df230aaa
8e5ed39ea7affeb45fd2b3f45d4f9f76b817b41ba6d6cb3767dd547ea7906671
873f90448d701c56cdbd02a7b9e751ae72d1c257908a577eaa6cf9cd4e46ee40
74e2c36a5d7a75f9b95e9ac210c208646e3b4229980f1427204db430b6e56ddc
9099d979eea5a95492b15efebd2e890e9359c712a14a7a69406c4992e9c3fa60
9f7f490a7079dcd32b62eef386e26d59790d857ea1e9876d47798d9f6174df72
afabf0647b043a03f667ad542907915fb0797a04f569bf9ab82756410387442e
3e39ee1d34f1b2519938304ef63d76173440cd5c589f75deb9352f480aecc433
1d06c4df335bb43f908303b602e73b45292641629f196ae1d7c5ce71cff6343c
4b7752c453c5e386063c716ecafb93f3fb077269565df3a71bcf711943c97d87
2b5b1541b040e959680424fa2be855c87a991b73a900a9e390f568d3b66649d5
13f233928fe7d1df257602e363c170665b4676c24224428fb6b22115367cd170
f9db8a7a77fb189b27554baafcd34776d91369f6392eab3f8da752ad225aa80f
de5ecb95e9faa957a2e31fb31db45ba22fd57dbbabeab52fee4a2c68634e081a
7f36c04ee510a7c7c55b3015af9f353d32da295bded9feb840770908a225c80d
78b84ce0345ca77a67a27a1e2cc699e290f3e0fdc554464b7c46a33d39bb9d4a
e66f871770471f138ff76c2fa677e27a6a1fdd25665ffd3f2f0a6df70ba497a4
0e357bafd5ef1bc768846bc11707b0d17547e088b2ffe89fcf925cd154b5d503
b9fc1326ce4a7feadb0f6faf838174d1f2b576b1b15332c45a01b7a5584a1ee3
094836b4fcc78d4bed2c0fb594260a9fdbf6ea37ac9b81d2711cd74640ee88a5
e71f9f41afa4fec19977f673d515736060798c36a530d9a859cbe6648d1daf85
92daa90baceda033fdbc0cc0dcc3658383b7660e54c7ec19c49c7d1f6c9550c2
14bcb38e136911fda16cf751d94b7dd934f6f7024cac5493bdd3695c7ec35f56
fb9a4b6e2f46cb4db0346656cb472bb1631573cabbcb7e47be6fcde133c38586
961ff6e0bf2362568f31c8c2ec1c8e71568bce42dfe40ee9e461314f7f168cd9
2fd297edd483489b7e6f256b10115c30b27b792a47b9016c401eaff1afff661b
6938628ddc3f0dd33a662a850e30430782f3aab753ed22b40b79d295a467cc2c
f16192b317fe3309d722b107f0fabd6a145ddaf30601ad228445ee0903765e01
0505d44c5d90db236ad8c6117234ff4318ae27d0e8ffdc9e09f262448f878f26
618764f423437689c6b6b2f22c6de06eb5fc7e89ed1b99722bdd364ed7faae7d
73ad93ddfa6b35f249288051bf3f226729f68e26e0a25366a3f0947d1b1cf415
12f6e862a982be5d41b5d3f790871747b0d3c7fec97f15cfca34798b55d5a4d2
339dd32f9104eaf2e20978aac5e125b696e0c20920da059bf76fac88185d4467
aa57beb508941d9d6d0029d34c36a8970a37c225ab9c346ff5305b3647ff3467
0831f8186ceea06351a3375789f36efdca6deb25039982793a95b2024c31f72d
9e3dcb6c6247657f2e6554d6a8fc1551712e5aada1fac07eab83241b9fa19b2a
0136810eb1c72c51330718777a7f5a8388bb83c693e3ade51eff12d69b0369b5
7cc9a07a50ecfb2cf1029a61a3037fd8b39c4a126b654878d65da08d4bb012a7
fad4889a6cfbe7a422d77ed7bb9c0511fbb08f1b70c7b1f8d5a0d49c11a4bb72
d065611e3b33cfaa4f89d4d493b38259a0cb8f51139cc498ec865421658c1beb
d90199aa8c345441a20b2c85461e0b591580281cc42fe800be22b3fc7bb48a54
8a6b7e23daa79d0f3786e796ad77f77c2ecadb11e765d139c6b6945e38069af5
9db4fa27bd9eaf7a8c21ed7130c63a0f6ad82b93de58cde3b0afc8cb465241ee
aabe4a45ac7b1e96657bdf2f06dbe7bebe5445e8ed3c5899bd46a6173adf5178
3ae4d4e558950fb4b2cf7bf6c0dc0ea312f1beb8199d8e3a8085b7e3a6331c31
497493775a761c88210178c0ca231f1b3057a9d7490496d94ca50072b31026b9
6a5c189f8fd3df5910e51d13a07f096d12d3ca3ee125d717ad9e87b385acc87f
1484c19ea4374448f7ec2730d6be0a7d2e7d06b291e7b5c1a8dbbfafc1983a88
8ecea132892621f69c01b114e098397bbb601eda3eb212896c87197ee826f684
775146a8fd041ea4f47fc5d4684a377b88a68297b6f35d96c0b1d47a3c0fd25d
ef5f5842f8a65c402e143bce8b156c599e7a725eedd3056f81ec36a9f454e8f0
fc72296defc30436a37337c2ae6891cd82755260b28800527ef6bddfe67bf99d
5fcaac828a65a30b6668ed6450690a0f163851df8cc3e3818aa9ac23ed64de04
67557a8e46e092c5fe5b21322503fd1eb0e0f4cc93bd47f0161f399d3cf6aedc
b7931c4d20534f354c14847efd24924d6dcb61a4feb83998e89d4d0886f8e7ac
a8e18b79e8612f506302593d4379e9cc946531c568312ad3d197b128a295d692
f1a053cc24b6eb65f1c71bd55d0f910e705490f9dff3f3c05dfb04bafcb1a7a5
f8cd9fe40f5b08811d4d59f561f95d0d1b09eed05ebf3fbee562d0101af1b6f5
9ae1cae54cb532ffdfa2e6bff92404372c3d11dd2bc44e13b9269f5588e8dd2e
55a6e233739ed4e36cbcdb1154995ebabd21a798b013f6b7564570b79903f11e
4e64d04edaebc32c4e0108391089a66964522805242807883ece31c6e44b0ed5
2d49440b9644c2bee5736c73f3bbac40779f883e0c0688a2508dc4feed1fcd70
daa86bc928d1c84d4ccd59a77bf3fb93c2a873e252479cc2efb811f9c8cd9a04
06855d2f816b7ad68705018e4a6c17c87e8787cba9b35215711dfda5e64d6c82
dc42958b9daf46a7940083bfb1df8e683cd15c54147a37e7b9d9f62be6e14ba1
25699718fc955908b0b67612f7c1253a835229241a83c923306030110c03dcd7
97edbaaa1845eca92fd8647c30e14db776403bfcb788ba7dd55ce00a1f3bdf78
4746799596dc39a229ec5224239771147baa4ea2d66a31bda858ec77dfa0894a
d26854ef734e38728124916f23365c75804158a08a776857ae2842f5b3a42a50
93aad53a636e925697306f2b408ed7de4299c65ca01bf00e737b25f5077f8292
2130a5bf99fda312c87b23ea0b0092ce96ab5a7d0b311dc6d79cb8bea31ef67a
a689bbc6caef1cf4823f4d0037142f79d0b3f919ff82eb71223164ca4e6882a2
5b3209ea2b265aff2326cabfe2ae7e43dc0e8899b5b587370b333e57e7ebff2c
3bbbfb8b7ab69c0f92e07004f5fea036a1a18b3fa27f53d86140f3012cda7033
4186b2c982734aa30ab875df65c99cee14f02bb2c026d39356b1089b1062b02c
f58ec858d490a59d9ef663f55e81d3fceed641eaa853e3d7c99e11979d2cc403
b748de7bca40bb3f0c3e287400d6964b6693a49e8a9dd3e64d7f2cb600ef14d4
01761e644d457ab27d9a2d09c37ae68836a7e4bd4a3006ce575e63d90b73f614
21d95879440d34a60ec15bd371f2c482219bcf6b06e9282a189e81e699f20753
6311c8215940b19ce1fe79fa9f8a377db840263b17049e44ca5f190f306dcd4c
75a01a1b027ee3d6d079c584a0ae2163978c81e24b06db279f03cbc4b0d3b827
d881d925ac4d160cd761cfe251ca9c6d0e23053a3ff38e28074984e33a86dd1f
595790fd82f22209748078c8d0791e8be5074b19eedefc9d73c338d32de33640
3e3ead7a7162dfba744728e07918cec3651c58fdb9a529f090fcbc5b7db4b6f3
ab9c0e5a61736f868f67ffb07575ee5a5e6abb1acce62db77566d95f870f9618
f5e0f99534b33c6502c3a290d1f4e9afbf71d6186931d34514a3da04a05ab94d
72e8a3dd0603957859d89bf3c52ad78eb27072ecdd4f88a69babb8cd41b4334d
6114c9a9c5406d96837ccdfeabf94c08e1178b6ebc0a10176da1b8b192a27dd8
27cfcdc7649eb47184b48918aac782618fb470ef74b70a52a4507e5b481507fb
29a500622e84edd01aed62d84a809a1c467c7ea9b9bb092c3c7da8a59fb0ef9c
44af2e23fb582f813d36f23db515e2c85b0baa4fa2b64c7d0f12e2338aa14e2e
6bafef6d2af4fa9c165b409f02e87a42e56ddcc3557fe21eed79d20351a52100
77bb9b10d689dacc0005b776fd28278812ac9c6daf99c5971ef7b780e30283c6
968fd5e6d8f4b652149151f403f1f69f1b7073fe459b0b9040fbe26e21a5a48d
d0210a35239110a815e5f3c593374efd5fb51cbddd8002419fb656c08f88f160
5c849b63e630072854971f45f692fff2f067d9a8374adbdc5024bfe4f1162882
bce8d10fb1eff4dd40c8a6e076947d31b19111e5174c6cf91ebf1822463f0d41
f9004e511431406e11d1b95a2e47efa556288f178729e0bb7d7180ba7f978b59
f82cbec65229dcb3fd18ae901f5dea9274595e0d89482ae5ac341e5a5b5aad45
79cdc7eafdde2ed8c783026962175155d25ef7aef3f66f7e3e18e51321d5277b
7b8f6455820a5f783575daabdf141745f3bd24727d490a1698e381700c2f2745
ba1b3b1fc590b0f50c79afd598dacdb6db809968209778ae968576932a424a71
390ce12cf4158cb7fe87298a8e1310d506c0d49b9e848cc55f41a909c49f185e
1bd05e8ecc0d48eb43055004d10dc205d27a22b125f8f3858f775ee3cd416fb7
866127ef65a17c10f9464b2c903a262402af3c4301e93907b9ad5c9f65a264fc
644a89a183f4fda37cbcc7d031d31517ec7a0ccf08bc3bdd60250c3d111c59bf
16c210942fc0c43c8196067b7c9209612ab25548e3e1defd46dafb502ec7fcff
a40d9adfd35348fe8cb2386d677cfbbe14eff16756b3c672b06f3665d7b80615
dd3d5a4699e0b561321e2f7d8bb73bd1f92a9c07c0fa60a12c0755514c7e1fc3
4852c20c7ca9f6a6a2944b5f26c5eaea9c8ec039047298044c266be7498203b4
5966a9d646b01127319cf850de1e0609837340f92c5dd2bf197fac0708b6a30f
5efdef05722847a37eca3310a805bc6235eafcd3f648dd92479ff800570b41b1
cbc9ee119882852254c32ab2e0e997542af82be857aa06ea35e2a5922bd5736b
9bddf2bd979e24e66d03840fcc25b1a3dd3ee9f9e4d0e8d1e8ca25704bcbb5bb
b42ff72f7c8188c211c45a8517e71cd67c91d40eff52c4ddfae9430487ec86e6
985f5543bdd1af166a6314c21576b2e2a9fc880f6822d0a6a8d8cca26b268d99
ca7c697f1db68a5b42de87730fee712513138ec922c31f2872d627035b5edbe3
239f48144d9d4878fb41211ab53c3a3c6ea13bddfe46f2202dc519d97f979f9a
9fafaafdae52755797128af68b2466fd3e0fcc795fb73618fe4bcca3090ffea4
90b5ada52cd5537fdefe6e708748bf1ac763d886c0ef53799765f83aa44ce217
c6f5deee2fb632cf702bc2284faf70a13da4f7af1374b873dd5696d4b46e1768
9613607ae9b2f4cf7ca20037bcce6cef6424f15642b3877b7e4b4a9b768b16fa
80892e6c143972e731c8c20b382fc0c07e7cf27831094b2170bc53127264f736
875dc44b178b02c1a2abfd5744b776ed6142002ceaf61163b5a21cdfc81fdbfd
5013fc1cdf2d15ba91fea24234add9c0495a2cbed48d3b704cfa2af83e1d2fc4
760876262776cea2048ce9a3a5218304c622b8b67f2ffbc0e5b7ff8a1ad0b34c
9b32197f27d7e8609c5389f333a388491d1d6142f931c0842123e85192712ef2
4a9c4bc78491621ec73a226687dde4418f66ccdbd1bba310427ba820efed731b
12adfd8a152c4032a498cc08fa5707d7d303c7c079444223cd6193f35885f567
b52321d125e8b95f6fd9b16a632580ae554a4d8aa8e502262403f131472ef0b1
c83012c9c3f0598952431333dbae3a61cc924475defffe726190fd30e64410d8
e0fc8a80fe890e31d8c306ab82d26f86a2456d4fca90ae8e17f72ec44e116ecd
ec8cec42e73918d0cafcc89c86b3e6b92cc9cf4d1a3ae3055dd05cba68e6c9de
bc5ec334f67bcbd9c2e0a5965d10d273bb81e3821eef92562a451ecbafac9d26
163cb8ae4a5ac8e01fa53dbe047cd21eb10af83bc84f43643b670e64b96aac8e
9b9fe295ec2b13f6c061e622ada82e10357469a01878bc11b241bd7d75af81fd
0ba7d698bdc7b11e553402076667a82d80b59245202efb9285a66612b6163275
9c4f8f2c2489c227f54df7c035e5ba1f9c0af2d0041e41511353685d42320111
9a948f7ef9a9ee899c6133a8795b6bfacc4736a01afbc63c01eb9d8316e4223e
8b32d41114d253fe38ebc3daac7a8c8ef6ec0ceb0bd150521395be8ca0b7e675
535282515b9dd79afb2dbb4b93009e48249978942611df554092aa3d7ce0b5e3
54f4c45d4e6963021836b00650408dd45fa0043c9e1ba9fd70e8d89fbaf80991
1e3e6de6d68a0f8fc1e0acefe8909df32bb64d90200375e2a5d9040875d03d39
ed5aca131f083dfd6f4588e18084aea906159d277c416c7df409d738f0038099
93035a8101ff5468f3fe46def9d98139f554d80f3edcc8c82a7782b745102ed8
8089b3790a98fc1ea5c5ee3b07f0047b19bf5f47d3f30f67d515b6f9c8e42a07
0f43a501e6eb25910706f1f85faadb0411f5bb673679acd9f6d9a0c147301b4f
f7b64de3e85f03df40a0dd59262abb4b0c5709f663b0f2080068aabd50c60b33
29930963e8a8cb29aae2f1cf4e9eb78ce7dd5dd98835f8547e798c07d1529960
5c257edfb8d009d884ad4449e0a39f13d35e4c2ce2e26f69e74a58a662764fcc
dc192e2c800e270b73538b4dc61ada09e1b4a9e82410d38c62b95bbcfe8c4b40
1f1eea4e4c4f722b88b46eb9c77c25a819de0c48565e44936beba3d1005277bd
b25299f9a36bb984b66b134952549b2841f13d8701383b5d855bb6540eed48bb
f9f236e0bdafc9142ca0ea39807518422aaafbafccbb406fa7c483c443de40c9
403147a39d01d211b28594895c5aa32af5b934fa1c751be4574cee128c76efce
851bf0dec781d23404ede62188f0af506273c01bcd79df0a4b8b7b6b815adf34
50e15f7a5f05316e88c6fe605b26c478722f174945b18721eb571889ff02922a
065ea284a403f213e9612987a95e0f114fa39d8de7235f7e741c0232767a4a10
c99e6f2322f1a4752efebf89ab9a4052b1d1f2c7ae0920a7cf656c8354caf97c
aba30de5a2f2aecaf6ec317b5069e55aa28d2631e172157670f5e502d75e2ac0
88e7afc2213838488b52153f5299cba1376f0cee36b4f3ca282fb1338cd3fee1
875fe4ea1df947b6e5320136234e2bd403ac9dbc5d3593f9e78d924ca72c42b9
9733bafbfc78b4278a5939ffffb992928245cc821e5edd8c89adb3d2353d50fc
4ccefd80903def9927c746b6bb7fce266eaecdc94d0b90cfddf8f29d6a8ab813
0d657451d52bd0b9e2819f0f85f59f04e6422e3ee08b14f1863a5d3b988d10c1
ac6f7f747826ed4075771f6186df27b1e1dc8ca2a344042c46ae1c2704e8446a
d7a0bbbbebd5478387548a896cfe09197a64617344c930d84920c05ecb1d8171
1fb2e33b89b65789fc6ee047ed82ccb31902fa0a9e75679744e3329d42ee9636
b774df9319a23cdd1876eb68b4acd6cf5c9073852aa35b469819fc067dfb4441
7ec6cfbb5aa7a997c909197c783d47efc1368c0e503f7029faa4b1bca9af361e
fe6ac51560ee9830014d07dc697c92a4a30842bf1691f65174d7d59b13a93838
7b264cd10f38d537acde1403548553cd4f20a96974c7cd17522120c580ba49bb
85b036188d8c41c7a840facdb93816db2e526f18317b7699a134bdf2a659b70e
89b3f7200c8f6d635484bfc7c66cb4c2d981cede80f9614d7be4b62b6e8a8af2
d3ab60921a36039393406ead4de51eded6953314af39634f5db8b23550ca91e8
e7437c4bca8915d1d6d9f0f1091b5d5a2d0ea73590d01406b91c152b4bbeacc3
ac10a0816fbb2c12e7ed85cbd7e9fe939f2a2926b78af0ab3e51eaa8489d2068
cf27b1333c3a8ae035393ab6e2bc7cf88f26fe400bf414230a775b7462fa1ca8
68b29b684f9efab6aa30163e15d69a7fa4b96a5b882d1df54686b405c70230b7
eef7798c218ef4dca56cc63311ac6d6ba6a7d73c8b06194d320d0854a667e896
b049725a0780c67079faa646e83c8bdf91b7f6d45d38cd603957828862ae2cd0
d82197e774b54068adc60a444e2d4ee1e8f180201a774beb4a3cca4967e7d057
92f4aca2ba922de3145374ea0b7f93e12b37d0dec0cec80e4483e725f83bd6e5
4aaaeeb1f7b5b96cd377a453fee41ece740920aea4e9421c13b3e8d9743505e0
edb24669af10d13be60ea9b9266d9027338ca7c92e077457eeed4136447ee58e
64eab046d88318d0298561a582892c5805c0f19ed2397af4561ba5bb21f23360
155f6d4fde39dc87a1f6518853e847da9f16ca994e21bf3657242558482d2c82
8e0d4131cdbd32e9d5df03c0d0d7df98cecf46832b74f0a16bc0f64a861b2baa
4a21589c4db21990762d1ce48b9cb47df04a41af0e0be96ed9f0625b447b0efc
ed1ee80bdf3bbefc1f1b6d4de04c9cd6dd3564f801c6b6bec5083e2ccd027298
c03d8e5e2331ea3ea815f5647036caac2df3d7aad045cff83eadd6e81e63f341
7d14189702f8d63d621556e9d9fb16650649df8cb0c01edf612ed251a9487ef3
0d4574ec056dd1411568b97ea5e36ca9645d34cca9a8d5cf2c05911e7c6eecf3
3d806174f67717f45f26c7624669a83d9fdad43121c09b93fe580e0938742558
0307caef0f6c80d9f0228ffbfee49f72c8445ce52a2466fac2322dc223ed0a0b
7810854c90a5fe5a3ab3b0ee8ce9dedc362c8ec939184f061dd516f689ed63e0
f6a68394ac14336d7294fe8d90827cff0b8db8a4685b6a9b5a3a89e2b66a93a5
d6db0ecdca29bc8a54f913479d6ae02552be4a100a677988f0cf218f9f64ceb5
06252036198879086f1bbfcd56cc328959f69ccc66004ff5219c124d692a6cff
d5641107ea0a84ef3da693e1a47612d02ea02822b253153c364635a6c2f216db
66bdd830998515432e5993e6c6a59a318cf7c8cebe466bcc171062baac01785f
34168413beeb54e85761bc9edbbd93b0cacbbea3a3bbfe6ed9d39411a78df209
1f0e831cd621cbbaf07ced820f1480222c30d077365f019fc2864ada87c3ef33
bd880d1195292f6c2bb95a1fe63e2759267cfddac73336cc667117b49e7dea05
e0d4a7c5265dfdc02dd80d79b3757ea2c1f3438be957fba5661f8dbbb5c3a77a
fb66d27b0a7297e9c25c3de47f337b1fcad3b7d2fd89b9ba8f7df0ebba1c0e03
327caa9799c4067ae82fbd5345adcb376d29837a077e15e437c52f9ca5892141
1b193cfb0b4d17885240925f86c78fa7c3650dd0f6b9e5d5fb9ca954034710da
a97a77941d4bb10c0e1f5f0718a3e08ee9822267b7c70bcebe86a3c77e4127e3
74a607d4e9bbc055dcdc8ac06d23c7b55cfb7b994458a7805eba23761b4671cd
edd75253d225a4173217d2f3c854ee4bf3940ecbdbd9eb17ef5fd4d63928d744
359d58381410746d27a8d270929ca3cf348591257b4c726551849d1c267a9fae
1af60d6b10aa09cdbbb33d716ace36a3e67df88aec43f955f0dfadbb07e153d8
6f0e0c4968ce5f040b1530cce6432a6cb0061ab0c53b6cae7fbe50f591219937
17c1c700e59146c7cab0f9dd1b484759a2db4f7208f593eea455477cd4b24d17
16c6425013244d2f37e6a4f44c52a627f195d3e82dcd408d02e0c1da702797e6
c65d52ce1f7013a926abf1094ce47510ead951e8f596950db4e8c2d921778466
e5e190f286831dfd13093361e8ac0b3439ba926c1f2e05f26482a47bd3a0d7de
26be550b08c9c00136945b00a07d61d098d60c97a06d97fd9a4c463ac26b84d4
a26d65556d513361a98d2353258e74b67f3ff32ff45d3e4358153bd6f1765ace
84c688524fdf1758a7e36dc4bc65e4621be7c4a6769f9d35167d89936d6a99db
5d79e4121c2a20dedf4482c6d581244cba207b4a271f80a298d8c27d4dee4ac2
3423a94e945e664da8cb4a77d3c3f3c452f089c8c96d218dd370c376fa9aee4f
2e1ac4f375a93284f495b46719777869193bc128da278d534d25037cf16babab
e25dddb499acbdada6057fbb14df81b5c207ecff94e1527592398de2a6f3e927
2eeda56bc396b6929404edc24f85ecddc267d2144398e755925b7b716ff9d8fc
4782f7a40bb4a1c52898a63d655be794374dd6d8a62eece4e2d14942ee79b96d
822590ed806d82ad06f7f8b614c54a281b3bcd9a88b23f5281dd39fac2bcfd2a
d6f0ace132236fb3e5068bc0a0122b95ec42a388579d01bba5247b6b82ab8975
e66a2524539631d99226e3fe1c76a9c216fa09036edf6f29719412348d46e488
015ef39f11a5be37d08b75dc0a7268570cda132a659dc8cde5578205477b7e6c
05c6eea402f4bc813c1aac87ade16c9bb0c861664f7558ea5a764051e86391e3
b8fa3205387f6f84290e5434fbe6dc638c16c8090942313118e5393a62c9ac5f
b4f4638ed9019ad3b2f19d017dd2c57636293cd946e8290dd1cc1ee6de542070
40a631fc1a35f9139dbb48a17ae5e85f284c25f77aaab6aacb1b4171d8775182
0b583b5fbb6cd6d5ea53825f7d573d113c24787ad947097423b70d8723c3dfe7
48435fc5cb33b8fa7c10d7215023e6200a5c03f1e434e1ae833b8b66fb9601bb
1028c23ae0e328bda9bf0b170f279391652f484683bfe267f31ce9f4e13b5c0c
bd9ffde76d6581ca94afb295efbaeac3e83677261037b49ba0f0ef4ee14e9822
5ec0ab68e4b7440deaa55651b889b1bc50d51210bfb6ad5b2b4e3a237c7fa6ce
9df9044e26055881a5576dcc438c27e2eb13a26dbe10198e54a815822c4da3af
95e6241975c8faa6609f1f115f7cda96da03a90887114d1127af73d9420e0c68
18915d99b0908ca53b17bcd04ad09fbe40467404745d78daad8bf1c3dd83e689
b4ca98b0a2a836ba7a1f29e7a2e3e6391becac33ea4a84367629b99333327dcc
e69a2550cce0717f24d88e81530f8807f914651347d0dac732d92633458dad2e
bc1ec44443e46e3c0baeba9dbbc34829e576e8d58c0fe341568f28abe9f67687
09bf133cee4c4fddb08ac85f5149d2b7498d273b34fed2eb2e0a47ae51ce8160
d1c10a41c1e824bf8202d8f810e7559571aaa0b3c5dcb842a139fd45d5118208
9840c1ddae1e6c79f936bb13c4db103e042efb390ee0b417a2010c84ade3b48d
4057adac4cf0b3639a2a24a9842fa61a2a32bf06d7a988336287ea91021fa153
568e7e5bbd147f6873e8da05da2cc0dfff123afe67fbe6aa5a2f84c45668408e
dfd43c569b78a3b280ebe363c094cac3898de54dac5ba6b7394a9a02b72aba0e
c6a0ddb649c365ec1d91fae93da7e2f9e0acd95156d503f7c8adc84891167763
0c0958bf7ae9de007adc1e603f1928b0b03653fd9b42af1a3671f8cee8167441
28972aa625dd21652a5c96b2e20e8095ba9b06396cdd0f92a5b22dec983f057c
879f07eada414ebae771250ed777fed350296445a1575157070ac2475f4e243c
aabf2334e8295fc39df1f661a5a0c86c387c6099bbc64fee05cc5c13840030c3
7f197c9f80793bd050e6a342285ed5f554cd1d2fcdf942adbd6d5408f4b34cbd
1f145da3c3b4aacdc44d10301e814cc22e159add66975ba50360bf898e92f3a6
d978586adca636eca6fe4fc725167e0fd86ae4db07026538e4bfaf541027e82a
d8f0e61e1236d4c97f23971993513f0576657156643825ef94b755c8b6b40b8f
145a391c6d9f0e81e6b20ecbe3a3dcc67d2df3d31833ba3cde178ba9b0d53764
ef6599c7bb1f44f3d53ca241824fa16928f751fff15dcc30ec5fccf3a4316b5e
8f6d683ea8a8add6aa5e82982ef1041829e252b2ea43d7d6276fb4b620d0ded6
16281df4c71f370d062ee9e29afc82b23364918dbae8d0357f706466e5ddb231
c34a97712cd85a1b6c80d60dbdd0e58728b33920a7cbc35fe5c29f408e78911a
6ed71b8df03b92557d7e0bf02357daafd097f5edc88c5175c9cea61636553226
c17936067f0039f970be7bdc4c00651a74d7676d3cc4d298145b04457ed031ed
a5e448956deb5ffde503ca0598b5dbfa84b5d95975796dc57c0ddfa225bd5c5c
2dfd186ffde3f523c5b1e07c7d2729722512f867bedb760f0f26daec3dff0631
d9d1453f14be8220caf5c9282bce97af5f843de74ebc16c65f40a476ae8e9b4a
54a804f4bda83772f4f02881e74c08fe81f37387df7f1191eee427595977534f
a895ac6077decdfaf6f924cc2d926f375ea315f335816699a22875e972333f53
9dcbab24a0a54403fd8607f06b89316f77bdf87b696aa3053ca58e5ae47041fd
217d5807bf2a6ebf9930c917184766378e6b3ae700c6c4f89ec2a5ff59070d1d
123792cf5337fd16c56b6d1476449a009da737e10b733db751aed991376fc72d
f152020e108b5ffa7fa907438c66012e88cf05fd2bd8517950ec857ecbf78319
728b91ad0c3c18b2417eee37f3c8dff700a8bfb830b104250492ac6b57db213c
b95867f8edca236d9b0ef5a9c63aece8242694631a6c533dd4309ff6f8d38432
e4e684cc3fd37831ce845fdec3b0d7d62168541d8668aaf2dc0d856fef3d50fe
3eae6e9c809e4fd3efa71fb42930eafdad1ab30db826a3f21a3b7807ee526cdc
d3721bccd444c9a4b666e7cc751ce76d918be84b96ee79f903e2d8837b337ef5
c3a892bda9698285b6a2b12758484c01640dcf4338f7354de79355a82ce25cb0
edf633ce525124cdd57088a754ee8e8e7e8e932fd43682c2949d720460c92c1c
b4c10b3b35727bdda39a7ae3348dbf106e12225663d3958365436045e2d67ae2
ce4c0a8c386cda2684cdcb457accf10d5c8c5bad5c96ce9f652000e0fea5d2b3
3a776527826cdcf91c9fdb48531f9476ef005ee03f587fd4ae3c533a64ac6da6
81938afc055e83901b89b85470efb1ea59e4d28c3f19ae3fe9ff9dc12e312acc
69e7ccad06a73f88873c0e5be276d9993a9fa3d43b303d9c2e3e164ec44b6250
9a09976b5d04d61a044ea3da748dd63d7c95d86cbb99a4dbcff62f426cd07c1b
496d5a2c4571dffe9a4304741a4b68244df41e3aad0bda99867191207bfa4261
2ca1ba84c03dbf136d6ab784f5159de2a77fcd70c3e308e1e9c40da43ecbf59e
6a8b9f55e55dcd60acd7c253056ea9625ee8915f3d7809bf0ed32cfe2e8e346b
7424b43ad5eef312e6d16d3e39710109eecc80e3501ac63057387861cdbc66f6
bc176ecdf248d29490aec95eaded0232b2e9c2fb14a6f1c1d5dc92a6b3358ca4
dfe4648bbd1e8870cecb9bc3d0ef70864f53fd45c9f6457437c341dd3abe6c98
8369963ea2e0536bb6cd93876cac54d8661be03a41a13ce7cf31c448eab3276c
bdb71116bdeb78eeafc3e043c924899e802f3dba6a45586c753257cbb932bacb
c4522e434de75610b9a18297fd60a36070cb45d9c3b7e10c65a76365471b470e
a66cc54b34ecb5d109f531a6d7a915e884566a59d331cf63dfd9b80d496776cc
11f939c9a37b68823b2621dc7f18748e6df5b10f62aef9f37caf7a5d5bba2c4b
206c78905c1372eb82defd5a18b28fe213e214cf8bb8c1227e84ca5faca88402
84b0038d644d24aa63261e827139ed85590e9863f0c8aed2aba41f059b573fc0
3680b6f22a4a1921c005eaaead56162b15553aaa81d6c6202b176fb301ba4834
2952f0c24d2aaefc328e1bb9678ebb374c16cac96f7eecc98eb90e5453786cf9
dfddcf38578c674d59b62bfb1b02e1e85dd773691374f169d216c49513c8abde
5958753f58b7a2d21eeed44dca735151fa731782086a47e5325923130683b7ac
1af8c7802b5e43e7aca26cddee19530bcd8c45bfbf070532bde91c4327bfc7f8
ac29363d094959578f73c24f8f70a2ce63a662707d473b3315469d70c564a856
a6e488429d550b19066be4bdf3d067bef91f1f9d371bca02c7b8549e9ef4be12
2737f5c5803e9be03f507eff85d02041dcf018a49f9f0e816949ef6defb74daa
d1f79121a6b512e88af36a1c587d5b629ddac63a2a28a5a43fcb130a4536b6e7
b0c00b5e23837c91b2ba9360146a774fda19103784e39ada38944fc3799a0728
1154f0cf8842c20ab19a423a0604697d0a4cf37af09e1781a30c125b266c2e4b
a2e6804b2976abf758c04683226f437ce112cb538efc12e3696d73757e386073
3ae80e01d292efb905adb682ee4ce414ca83e5b5255090a37cd959d66929aa21
ffda99770c5f5d87cb4272c2056ea5e7ae9b4a5aacee0c77766f3c202d292004
60a1df73aa232eebc9d1cfd22d3242c661e5bc2cfd168630b69c7196ee55448c
80d46406c39ca39aff55b03fd9aa12ad48687f04da8897d19877ccef3e21b915
9aa6a46b5621ae467dd931d3a6703cf6957a2c3c1a33e9e36b6729f39f7696ce
c1df8638b56b3c0110d3ed146dc0adf77fc1cbf1ce296983069a7b709623edc6
6ea0a36d5627690dad5825c3cbbac40a8e9d019a385952dfc5d5239f95e65c80
bed349e4a2c472b3f017cb64fbd318a50397344614217b87464b187dfeb783fa
3a032c661da3528bff1fdca4ff267ad93c93a292090d1249541a79ab5d06219b
4166eca77c6bc6eb32da1334000599f5c9a004367fd3c30688022547f24dfd1a
33f253fdee868147163062fdec35eaef68412872ce9be96f781357c1a59858c4
d4690c3e26ae8b7742d48194391337418afdfd73ac17cb8551c70f5466ae6822
95a5981b61780bae5b1f626d4059f0659847f178177aec866c2ae0ae59ccff04
b93b4c6ed8f586bd7d40bdf772ff4389bae41243e7d0293ded7e74018fb30926
a1526e824420eefafa01cf86c4939e8da559e858ddcccc4cdc11b7db3f80351b
127fd25f0e602013cd867b8a0bd1015d302411675c746d4e2a10ab6553450111
57f160e641a37174484474898d6e23c5f106b6e7d8c290d50e22460c46322b9e
2c9e0d36b82d68a3ae87f52a7b339e4ff9a3f74935c481db8c2257007598990d
117a39590899e65aacc11914bb27bc8d377e374d4e6a5e81f81bdcf6081a7518
31dafc586e2da47d1232cf61242c1f3ee50f36577faaddb97ae9fb162d81576c
7b0c9185723a7f0f6a5b2a0c6b6886d6367a601195dc002bc06c52ace583e65a
ace876f70680643f23d2d767bc12a71087ebe55fba40eb00995c9c2f8c199c8d
05088c3dec57a8ed9f361b9b5880a6fc3d743a3fb5f6939af5aa2a12eef6d25f
2a4fa2cfa8253dde173899e1276ce179c6cd4451bb352ebe22277341350df9ec
f4e753a7727383ab03504208120d372792cd8ed3ed0f0b6273238637d7d2db74
ab984f2b713987a8759567996996063f8d399978c328bef1165be223ea0fffaf
a7c2ec35638d6903fbb60aab73b4a437dc5f5e803ed3e2c72fee4e828b3ae28b
b7028b391b47b7d5a0ccf9e1d0c3bb51e756415faaf45cfaca298ec4caa67b9f
5bb51e68002f56c53571680a952482ea61ec433f505002495e0af6e8627bffbe
e30b8cc797c8c9c7efcc8beb7b3dcb18177a788ba78d6cd82d196426b36b9e7f
4f94793c63822094657bd5e970a6346a49d8f46e1700d4102cf9f0635833eb31
9d9d1cf871aa7a13d3f05cac4c8393c2483f67928b8e09f705cb69766a9753a5
ee1f2ce079b77586acc8817baa3b4779fcdceb88304dde4c80f4c01287169b41
999fa90081bc462bd24919bb61d18ea8eea1ddfbd51ed16a9f44cd5c4ba1896f
1cf957accccd7d98b698d2d9aa5d75808f0ec8569e48776533efc7e0672848ea
1b30f9f83fa63dee1ca51f7af5d867d5998209fc8f943696a7f7ca9fd45a87a6
41729ebb2a63c35d29e82864f8064239115b94653bb1da28118c04e40c2b3f72
5545a45ed8987caa5f8b4ebf91a18fa4731271d20349a5d2de7b0f36a59ea28f
6e1d88fc626f97531f11c69835cafba85c253b43d9c7abdc4cdfdc83ff3f8efe
0026a0ba4dd62425bbd92f0d13ac30f5194f7058006258244ff1dce3cc4a538a
9aae3bb78e15b9808e4a3047f4e09765497d008a13dc3064b074712da319807c
d97132391939791d96bbd68c3a71868d1ce3bf1af1293e86ceedbed68cf915ff
effd6f6ab0bf0379d31a9e3bb961d6e5ff30f2c97769d6e9ce76990e2f8217bd
ae88ac2b7dad391619ee7c93f2d61d11aa55e5d547c78bc8011a1dea2486e366
d5cf6a156c032d0d81930d9377a2e52d525b7ef3a89c8395a5468ec1a0029e87
9980525c5d6d49b997f379e215c3f69ddd8c0b943c23604b89a83416961049cc
6ae55bc7d6aaae6cb25226f642fa52309b410013ac151b62d43dce15d31a539a
cb4fe3c6260b66f72905ace29e9261357c4c6e7f5ad8ac21d9d2839f373be989
5542fd1fa882dd6c848a59ded9cfdc07afca9f7c2b0f89f8787575dfe104eefb
2ac6812ff6c7df414a1c47f08774b1269b0a1fbdd4ded752f5381f1b569c8912
bda3daa50fdde0dcfccc674e25377fcc2e86b4f53effc35bc50f16ee09761430
c79ea9a44926ae1d9ea12dd266281a389294720255805648e6d3e8a8d4a09086
48aa44afe7b1b29b8bd11e514f3af39b797bfc7ef76f224485cad5182a24c6a2
420edbce8c7a8273e5cc4fb79d76909627e04a0096370bdbb565268e0f4364ec
da4c6bd11bda1c9ed8bf80ee828b307518081e8ff20abd03db982605940f2aa5
2f65cbbe6c90b653fe2eba35ec2df250c73c041a79e0977dc15675f946bf68ff
f004fbf2f820ec66fe90b71105ef91c0ff4ebc3b659ba04313d93aabc4649fc4
bf91ea153e616d454797e1800ebe311ee1338e52b6eb013c4bd2fbdd36f41cce
5b7468d23ee94b18b0034debb3af9554337af00645e5ea7b768d99b7ebcba30b
8746c9c2dc6c1c26af807d4a494a781874f44ad15654460111ebded8aee814c5
d9d44a20ebdc613956d61e83d752252e30c252aec1ca4f82ef7a166a25b4ddeb
1df33081444753a3cd7bb8921596be9c7a384e84c33d800bb1ce156723cef001
c3c156f3db637907178324a30ea120085d14d85c73cfa77f87ecf1e0ac544b14
6699fa25b3d26473ef0d4b3e3aec8d63a13ee1b5b1693dc99ebca90dc4a1fea1
e8f131527576739bb68f0cc66e488dbc09b74e9b3f9cf62b7139176892fc67d5
530babe0f98d3abd34ce12e0a992cf7518c596b154b543b230159b69857787d4
a853f3fb7e73d88ae7f0e83eb08f258b8b5ef7185da24c6b9e32df9e5360770b
f0052cb0948a17af2f499d8e5e1096e7eb75c48ef39172a394822068897987e3
0febf07fa446f6db1b1549be8fac8876c6c2f09733aff733fb4376ce6566b971
f0b88b2f9ba32b095778bac0fd7cbdf11b779a02a433b4d32f6ca543e53d0877
b5f883637f7e2e08c055983b5274c7e3a4e980f3f3e967bdfe347cf5b8a83ae8
2e111fd09a541ba69ef80a4a379cb386561ab5981998240fe84e96b18ff0f36d
8ecd9b97e9670ff5bdaf05da1bbcfeb71322f3d71d08ad2c286a09c473a75d2e
791e00e0ed4c53c8038a442144e81e7610fecc3af29bc77792fd876c6d8ad2eb
d84f54a764ccd04af0aecd8c0c70df9454de0cbdbd7e06b2bd6aba9c131d11b1
f997a742e0d2b7caefec9dc89623f140754ee60a7500b86312b25d2a86d0352a
2f8ca7c2dc602059281cadfa7a5f68a7bea3d29f7532cb6f36686233900a1cc8
49bf87553722590315b2d75269d85ea8cec06d2d574bc7f6154a253109e8a7ec
745df44a00bb9d2d38bc290fa9571af75463f3fafa6914d7c2e5da03aebeb811
28b6a1582316182ad866e588432c2da07a4df89fec91c75b5adf67bf9d33dfb7
5eb51d822b811279757388c01bc52bb5e25ea25361292ff881d72c573f338159
223e3d4d9750fccd27ea16086d85ba59bc115da0fc84a1fe24472d6562cf4da9
2fd135a82825cad75fcff6681f831cd5f84732b95de3435109c3f0369da6fbb4
800055b273ecb456ae15a4292372e95c30a38708670e3e382bd83831ffa9c2c9
9ab6c8bf60b63c8424c4d41b62045a6343f11ac9246bb75d40fa0ed691aa091a
0d1bda3d6d037c80ae00b7098642cd1a2a2d47f1c17c0263d5f03a00941e072f
ed5003e0133615231ae04e087a753c93a1b79296aad6cf113ea7aa9a02774771
75510b1d03efd2e834e85673def968e86cec16c9c3896f361ea976d53b40379e
1de039a982a772785f1a72ad2d658eb110fb3709178660f0bd82aa7e96424bf5
fd699af3aa51e400d7980d6593b7b911bcf8ba7f95f4ca6c83b250ebf93957bc
a46eb7dd2f56ca25b1fb5f648fa76f04465d57cbcb0882da53bfc7ff0ae0b28f
0f2a0ee48a3cc0b0f72020c942215f1aa093135f3aafdcca13f5ee8d904dc697
f77590640b51b422955364acf70d782e310975342842c1789e1a1c4d9f99334c
48aa4cfee6b75a5f86413ea69fda5d3583e574e38e6a4addc6cf7715033070fd
42b5b0b03fd6eaa18e799727b804bf1e93d9cf2b18c52c107ef312d920684d4a
ced06075761161acf6ef574cd4c2f37ddf92a5e2cc2043dc8fd47253d904bbf2
37893576152f6462b29c1704dbc379001ae4e4965d7724dedb8eea28e149d0c2
3f375cc2da6a05fa1d579f232b5ec94ad53f2ab99ce7621853e3630b5a4430bf
86ceb60635c1c7120cbbfaffe348b00260b556892142aaa096d5c5844a34fce2
f76e33e7a246b863706391e40c22525c70f54954f8be3aca9bc42139d0a93b44
9da3328a17d6b0684dca41150d20647178c8243529f1bee45361b8076df9fd44
873db62a3563586e8d2750aa70f090514e8ee14e370da3fdb5912227512e8c5f
800632b2863210171efdbe4b658b07d586e403dbee0b88e3efb927a0fbb98af7
f36b1f74da0e36f9a2acf071adf4b0f5bd3b5e5d323cabe06472135299a90f1d
9a5ab471e7c9662a647906ab7c3a870f40291c59a75ba8afb4966bb1f6bea97c
aa8d57f34325c886ea3903be32dfeb7444092f2d693aa4897f504563a6812423
eb5b1ea80969d95f8889accc658689a8a741da90cfc6a3a46078a35ef58a2f95
9b67af14d4f2d18f1c98283101862b73f5e7e344e3226192c5f323c5f484d176
5419674b2e0becdb2110dbf3f312b5514d0d6d47a460699665e6d27ec09efa76
0ded0b87da0268280fe6da5dac33d8b8d0c116444407ed2b3f7a3df5dcbed40c
f623450e6a802d87b23d0e8d19efdc9b3ddfe7a3e102b90957d9acf5664038a4
3391a699c6207d5187a757b89bbab3560156dd6ebe9f7fa612a654b69efbbea0
76b6034a59731bb4803a87026e8e8a50abf9dd2a0c3a5d1823c0ea34131ca95b
b205092749d2a4a593a84b624ec45555b249c16100226777cd97dda0c75a89d0
2b681c8a368d9a509e33e7741299ab5aa474df308551f44df0bde7effc822901
45ece858fe1a19e6b25e2b1a485c057d94876113cabe871d82ea06181b919a7b
5f8084312db6d27a057cf176028fd790d1c384363b082896ac3e0be5c81db97b
19b81d67aad425af47908530cf2da701732710227fdbb38445b5ec7b999865ca
6f13fe5b3061853f6ed046c0fdd65455c13507122e1e3c49d0f80433415db5c3
0ae8bffb91e16a87e41b9fc25fd013a5804d3555864f9d43fa178014d11f223c
0e58602c36097d0a2d4f3c5fb36eadb50c8c5d7e0e310a24dfab254162e82311
94e420471df76371753ed1e2c905a00edb09b705da6b5e0ce7a8eb418be9873e
869e547100b590607d414ab4cf280044f5febd913079842c1f03cbc291e059d2
87a8a0cd7eecdfa9d493c53b8444a6c77c80aef448e54141442468c4041da78d
e59b1a1d25ee6583c6ebd06fcbed978b398a37b61bd24484aedb4b6723139442
0728e6acab8fd5272338126be8e563451cbedb2bdd0de109f41c46e54bf880d9
0b96e119816dcbb2b4aa434cafb31cbd021ac37c99ac060970d86ddb507397a8
a234e33fdf1b39e81406cb56bdbe2a2dadcf77e261333de8d65a41f0fbc34bc5
e1d0dfa7644d2656139ffea19cb5757baad4389144bafa51a63d371078634a0c
5bfada8228108f8401b0e037b55d9d2818f0b4f637d38ae5e4d5e0d2a683c52f
a990049fbb5cb533117b48c1d3eaf52e6962dac429414ea854c5a511af5ce508
2640fa7a6f3a40e034eafea32dc436286f98766b4e153b0d25a14fab6a83bfbe
2e744993adf324af9684b0c4575f448a1fc8597a3fe9a4de68604d63d70d1564
256428b44c0de27ea99bb63db8bade02efd3fe3f92070b63a6df7e29fa41a625
994d21d99a8245bad67f418b3e59313da79293f384699aaf3e33cadbdbe12e56
f77771f254de3098191b4f75287c258a8bb4f1aa86da99556b8fda589776f464
0866f6d0f80e82a07287b538659e7ddfa0e0c8cb3c0611dcc5ed5d0fd8f744ad
8b76da9b82b020f352e189bb4a6c9de87f2d2898962d0577c1637574dacfebc7
bb2c79815a0ebcc3d6992650c5e6bd50645c50962922a86f732cc18ddfbf566e
1d4cc37ad45fd656db7620782185eec158fb6b6b8ead44779b3259f957d501ee
236aef3b2e475db775b09f1b99aae8e268dccc5f65001c32b7364cf4af00b5d5
885d0a618afce10e45443c88a8f5cd78e5af9da0249811b48831b95068b20ea9
1ea96a8c4dfbe1baa8523c47d9e68cd47f1c7f518e354abb04bd69e5bb3ac61c
b729cee27ffc264a599df945400c848f0ceeeb50a680461df29b4756911cbd46
2501dba8f81ff7379d8624bc54f3bb9668d3d86e5f9f25b54cbf98f5bfcb1c58
dc00e864a073a9e9a1026327012daaf0fed335e5896048ededb6b1dc84cec230
5ce742184eece5f804905a075e0a4cd87ad1c61cb222392bec2180be4f0a052b
c9a403923fa95355c02a9f3814c22e67dd769021
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTI8
%!PS-AdobeFont-1.1: CMTI8 1.0
%%CreationDate: 1991 Aug 18 21:07:42
% 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 (CMTI8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI8 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 73 /I put
dup 83 /S put
dup 105 /i put
dup 108 /l put
dup 110 /n put
dup 115 /s put
dup 116 /t put
readonly def
/FontBBox{-35 -250 1190 750}readonly def
/UniqueXX 5000826 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f
a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e
fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65
66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee
ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7
695aba81f0260cd5248b9e649cd803271dc8bb1656323089e9e2bb50f2b95088
87d31dc36f6372968dbd0df8505aef5b22e57f2b9834fef2c2798f9d715aa323
3e09b183f8d92797bbd3a990980982018887612cdc5507a47581f07a1cf99a5c
587021d6b67b0524e780517e7a088a6388097ced01e5a59aa8779c6ad82af704
f6283c0a8b62d57cc5d24220e4d52a7c736389ff9d77df48c0de3d3db6482774
72a5e726bf4d83d29751b70eca9ee9d04a18fb7d011542a2b2737eff052a4eff
2800d8dbc1aeeb7273d9172927c2912b597c90faf4eb15f30201e026c5d06c94
122d69e4c81882d9f10b74f81d8a85a329a5946464c9765706a4e979e3b76913
83ea8ff66e4608e5c6fa0171e0c14bba3efb8fbcd0285e6ca408671bf068e1b9
f1c040e0417a92557f6b43a2b49c772c5d6e1e6fe0315378d71f1b762c987f29
6ada445624744ef29f727436345875bab3b78eff3a86027026983eae46ee5cb6
baefe7a95b00007094774550ad81f1b2c7e3c042a77548631e4baeacfb244b62
80922062c83c0f96d439448951a8f4e8bdf68d60245c60c8a8cf3e340644ff00
efbbcbd9abfe6018af21b3fe10b1381325d2599e22b2c5ad47bd6d5ecf1f55fc
7b382f2bf4889af9fb6beb58dc03087e9de3624e2e171c669acc08ff9a88f879
48749ad40d3c781c14e04ad93b147a89b1f29c82f756d9de7c26ded896aa4918
46e3376cb7cad2c19cd70be96eb4cc3509e812fe2aac63a59c3f5016fe6380ea
fa2042e6b070a6a0e9ea6d4fdedbd9147fcc6eedee7b48bcfb29d09c214fd2d1
6297d9220ae3467eeecbaa9efd677e0964f8b737d0db9a5fafc7ecc4ff00bb8c
c06359af9c0db731419186f985c3ab3f726a465d094c89610c370b44b90a79d1
817faa50836e36a33389fd377ec69c86b584d25893e9dc9d0a64fb39c5778f51
c62abf751fff960273cc4c863bc68bcec3a9c4520eebb8470a2b0623a350b69e
9ec0b77bb3d79341be1eee15cb19923c8c31e9a68e871976f28a122615bc61a8
8f81e88219afb9a04a720bd96670578aaf1d98f0be67c7b450e442f8d42401bb
21d15195d0a227745dd7d7ff2768c2a14c1ae748b87d7a3759b709e0e0e43890
de68982ec78a6afa86854983f6906868cf7421ae1694e5c18f3171d0bf300424
36b101435b8a8249f276da6fa8b84b172956b718efa8d4cae99555c03eba164a
076d4e9e2acaff9a093b6bae21ee3cd996ae14957a9bcf6fe29f763ea400e89e
961019b72c110b18607bb18090eee2e0a95fc65ffc21785d6ec3caba83729d22
4e9762a5d66ff5643d05726cf5b3171be6b504abf241557b37d6d5ea362b65e4
c97a90d78642e2686946d6f0a5c5df336a6870aaa5c9541aa8a85c5622f07902
45ab3e4536e1b3f5227935bcd8fc86bf4afc412c2cb3b9d38e0fcb2c7dc067cb
a02a488dec81f6ffd22c2e64ebac05317017bb82f23a5dc3b8a6c59bede53523
880fca7a3c0bd74042d4f3780543d04ac54ebcd2f7d5fb4c97310e40cba290a1
d1118975929fd6ad58c872857a61c0bbd098fa18332360765769060f665a2ed0
b327bfbd1381eade4566288f3d6ef122b934110a1980592797708f0c80c17034
8baf35eb151507bde450330cb29a8e34f11f73d01184be368832eb676a3e8275
8d1b726255f228b34ffd673a88b40ac7590242df6a4658d370d448da6ab2162c
d54102415ea81972cf010da586600db0a23fdcfad41de7f8473d70c44804d61a
d74b795a83e1d2dd57203b294ef70dafc6037c368da08e13ffac27f443aa708b
aad9abd05f546b569010beacdb72e6b214737d6b7ee86092dc38c7fd3240004f
d35fbdbef54e0b8a74fafc07fa124bd4ab7c2c5312358c2c7d40ad1f69002876
510197c3f28bcb04c567933219c368db1012829aca39e31bf5af71ea83734cc0
06dd284aba2407b2ca562e12f4bd3f7a1c232bebc59d98f41929dd72413732ce
eb4f4bfccc698e6f394eb42f7d373d5b96185b7456cd927186e966d8cb1c629b
89eef455b043ccbfc64cc7e8be70c4c6805ab5dee5d350fa99ad86c2a1e7ae43
92f7e09fc49b7581078be0d563d6cce8369f5e5e4520992f6ac8712bb6ba20d3
8f95be92bc251a397b5c9e6af9f9d13dab95c0983b4fb107d6fd5eac377f3113
290a4589a6499957762a2f60834a607b310d45523b568cad5a43c737e5d66225
26222f948c5096ef23d44040cc6873792417a69c03483dd702d6e9a26f3a057e
81f7e1daf7475c5e6484c8905177aa1eceae87c98ed08150292c8e080c0d651e
5663735bc4b0a99c901134fbc6c7c7cd3a73d2fef22e9d0b60ba605c8c183b8c
5939c0e9cc77c380b8f86cdd41c8f523f9a85b0cd443e32e7d0b6d698cc43d91
120ffe07917609229abfba23b70f6c292c95fefc60593754ccfd79ed9a6824c4
06d70e291c130a286b0ef7110303745e18eb3c8bd57ea588d57e6ee8ede60f9f
77cdd6852967f142702e39d6ad5e79b410bffba4106f4f85338f1d4a601aa0fd
5ffd4e0d364350e590ed1e17d3d7bae0fc8d83db672969a4df2d08d35506d67d
ca6630eb36fbccb0eb0e8ee135cb9973092104c79756d5797d1c923c744cdef5
a493de7b11a911f65115e1ef018e63a2aa86378d77d37d7d4535c6373319946d
fa6106d039be5302e2f6e48203f2bda2ebed690a79ee14edceb9e43f61eb2026
a87d34bd97cf95a1429c3e43f8c626ef8fead12fbab35465b7bde9a1c934ac8c
ccd2395184b91808ee8de7d1e707f3b438f9c03a525e460f25676db3cbcc4c15
721cd45a5118847a3f5332ec99b10e3b5d07790845b3796f14f269a4c5907006
6e3df8d745c92f0509628a339451c84fed9be6c380906801e9a3126ffadef4c9
994844f37b1ca08383f33336a564a946125279e43c74293b669769bdf43b9052
066c577ef99deed0aacb8a0a47
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMTT8
%!PS-AdobeFont-1.1: CMTT8 1.0
%%CreationDate: 1991 Aug 20 16:46:05
% 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 (CMTT8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT8 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 97 /a put
dup 98 /b put
dup 112 /p put
dup 120 /x put
readonly def
/FontBBox{-5 -232 545 699}readonly def
/UniqueXX 5000830 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486be533de8dbe3ccd493ef4c9656d5d5b76d531
9e704539dd76b065f45e6d6f62ec499c9ab91923a364237ef75e1d62d52df3a9
43713cbc63b16c1880feedd1633766248fed9d060ff709951f2ec84ecdc06bbd
9cc4a865e1f275455525e5ac7e2e6289615e98cf7ce3763b6914d3a4c5b75b29
b8043dbd898ccd5be448064cf1af2f80f969a44b4f9b801c42f6d6a6d0c3ff42
e0b1cff748c1fc49b598eadde0c2802dd591c54b802ffd24cb7a7639295713d5
4e639514ac78460672c9c51742ae2014e4137ba4303051c06f686395aaef86c9
9d7f9a97009436c2ff55b770de3e80cef0d53f4df46aacecc21632c0c676e2f5
ca7bb101a239a0ff67ebd37a6b8c4c8246dc2c90b759dc03fb26bde8f134f552
23ef3d6496aa0c4a2d7b6398de6e6a0474ee1b0d78b2d865614609f1db92fc56
4ab5921078b4944e11a2162902f0e04f4b29448aaa22b4ea92fac48f8dc47535
d717dc7acd08b25d391c97c6c540ae0a98be5d6a8da564ab73e8b5d3b5e1989d
6e25c3a35ea44d596b5fd6b2373b30de7d59c1831245edb76d6a67816ab91a80
a27a6597c6dfd274db8b3e45cb01aedee59ba6efa1428e41ed557f051012a389
9b195ea44a4e4d0067398d9d40ea26195efbffd2cf785540bbeb8964f6391361
904fa5e187e4af3baeb4e8cbe7558fb7049c94a1769a2ff0b44f679bf6f14d8a
974bb8bdc735d5a9798c89d7d81176ba98dc22dddf6766acd52020e3ddcbc94b
71ad8a336dbe9262f302d8e8d5ced4481b19a586e1d73d0138ab0b732226185e
8cfb8408890ecb590f032a5633352c42df62a7dd1a3cb4fb12083709edc26146
f31161bae67a54aa5b41ca7af61b515c100b38a01b77f831245a013f804584b7
bb764dab019978bf8eda8175a55e25839ea023e515e9a26411d9b429ba403d84
6850c819645156b0327cd51d1b060f3ee86bdc52171db47bb6a0d9bfbf80ae22
0fc8b245ee4137ea133a8bb3d251996ccf23dff26635a6bb57db2df6a2e3bd07
1c624c613c9b890729ca01adf8b5ceb2fd4d0bb500b39600342b56985582f6c7
398a207a33b5c376b4e8f28b4703fb38d51a78e6301be56f23ede0c693ccaff5
d77ae266c60d057da228ab6c34f045048d4cd1da4a1b3331211565527e6c17f1
0bca27c112fb80c7fc5fec512d60295d4cb7bdb6985a87f5593586eb2b603df0
c3cc2e785285ae31674512871efa33c05c9bf2f47977148f9fba8f8b39ba2276
c94c8da1666c1a92ab379144481da78bdc9da65f43e7a144dfdf1cb04f3c1e09
0952fcd15e68fae92e7f1c364692027ad5ce1f5239faae8f283996507d4fe496
b3bf8079099f927ffc976476d14a97ba8e2bebc59f2aa51f2dfd64a3543f63af
d889d4f4d25716a5af7f076ebcb04ee29b2da0bc68dfdb7933ba45ebf2dfb9a2
672794924acb292a7f81c94ba74830fde195734cce658892c656acc9c9e2cd3f
dee4b4c882917e9148f7cd7e465588c5140132120dd702f3c7da77e8f58ace7f
2b204ed728e8befe677341a9045525f44f1fcbc5e4f2cf63497acbcb2bd1be20
3b5ac4d2013290b2da64d21792b618a6ff6391e81afc269e92138d2ae1bb7682
27ef3e0b80914a087e208fa275d7bad510f4c57bbc1a8ca2eb5916bddeed92cf
ce1f6177e65f66e94ca4e2808836e609e704789105cd5a79b7fb79b6c788c92a
096b46507006dac6e859c09b50f504b72f793cd4fbee0d83d43c0601fd93fe69
67e2d84a066c0c3fe5637530ed2401541d26a9d26b120e8707b364e48b228030
61a065af39fc3adbd4948e0ea5fe9694241b7afce302303733a5fe2caea417a2
0d5073ce2a3c925c9c44199fe66b3bebc0e173d039db550e101a90fa50a842d6
faca9597d804fc53e3998632565512d06320197439c555a25999ced6a7d3794d
d51ed3f8673f80dd5e4ee71040f899672ddd2dca898d043e9b4263bb11d5974b
ebc0235a9385b7e251d877a25dfb33ea09af4bb71d9094178e16c7
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMSY8
%!PS-AdobeFont-1.1: CMSY8 1.0
%%CreationDate: 1991 Aug 15 07:22:10
% 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 (CMSY8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY8 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 48 /prime put
dup 67 /C put
readonly def
/FontBBox{-30 -955 1185 779}readonly def
/UniqueXX 5000818 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bac8ced9b09a275ab231194ecf829352
05826f4e975dcecec72b2cf3a18899ccde1fd935d09d813b096cc6b83cdf4f23
b9a60db41f9976ac333263c908dcefcdbd4c8402ed00a36e7487634d089fd45a
f4a38a56a4412c3b0baffaeb717bf0de9ffb7a8460bf475a6718b0c73c571145
d026957276530530a2fbefc6c8f059084178f5ab59e11b66566ca5ba42b1911a
5d7f1bf343015eece988b7a93bce0c7aa61344d48aed9c92c8698d4b7c9951c8
7d103f2414b39e1437f9d2e50c4ee5f218f2e6716926a79ea978f13b1f855345
191dd7d31d8f82c2e3343c7a5894d95bdc492c28226834efcb5c12fea36ac5cc
430e0aa604961e34888adf6c1f3954cbc2498e225d953cf5685852162346f474
5a2a7087d5d7ad486de16d2ca8e15cee26e012671ba3bdc7d95cc8c98bb774f5
08625e968aee27ff7d1a06e63bcfb5aa4876c3f8f13b30ccccee73c3caf4e70d
98e6ed2f422dbb4950bf789680e064150995941a9f4dd68a575949847a7d012b
b910bf03a69374e341e8036ff92c949f3dc6e86aaa7a2b7942d0642851dbfd6b
09e9a784c32d5c4e581d6dd4ac2c5c2ca2e693f549818b83f08635a46ba17e44
68471a2d0881c1175e83f095332e363db0cb6a2915263092505686471f260bd8
bc6bed6385bd4d27cdc1cdc1147c6884844d910882d3e69e747feebc4a0c7197
8771c3f4b31106994ba57b843b1a9e2df7c5f8501dfd036a620c03a4c383884c
36a1887d93535656b4526d3e37ff387d02ef5cee8e8de6e5e544f8467d78824f
6585716b66c126676a5e210b6c1ee7e7f35ebd47062ad1b370650f81857ab526
13d8bd16c51b289c6575e9e74ee1d292515644f70ed6a245d9da2ff50ddc9a3b
67cf4633c01737f2cbb26fbcfa99d8d646992fa596a6716612d9d2d2061a11d2
a3b4d22c042f416d0e66df3974403078dd746d3b2900a6bad7a75c37a3b24bf8
655d847edaf0858d7249bf5e824d68dfa159014f0e9517e39c553159c3a29187
9353db0858a4a32acb4d6c30ef71129f849059d1c5c1d64ad3a7bc3547a4156f
0a63135b78a4d907cb1b23c0521b5150e374
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR6
%!PS-AdobeFont-1.1: CMR6 1.0
%%CreationDate: 1991 Aug 20 16:39:02
% 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 (CMR6) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR6 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 49 /one put
dup 50 /two put
dup 51 /three put
readonly def
/FontBBox{-20 -250 1193 750}readonly def
/UniqueXX 5000789 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf
5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b
edad3b72ad63c2918b6e5a2017457e0d4ebc204b031f3fc6c13d7da7277a94ba
018e9998b3dd888011a5d7c4204989f30f908b95533bda845746b673ab71ea57
65a0d14f4350707e47c8276305b28513cbe1bb0dbd269a53719bda46e536685d
df78ca0146b6b93e760256b74d939d4e35b5e77238f04c92298dfdd188feea30
e053eefbcbb52f2011772b3aae39f5805597bbc1e8bb75a446ce014030f4f2f0
f49f9e962ee4a1024a746fa92a3628db5270732b54e43fe5ecfa524f127e5fcc
788e77e66098336ad67fe4cccaf0253272d5df79864bf4b734cb9a5859d557d8
bc11b8e00221ebc12e97de4b1f466ead83a4c894709363bca9040410a52d592e
34ee40cc7e5efa920546b981aa659513a24b1b85c221a1875b62d0b89e57a368
321b8043a5b094e0379760a443d632892b14ad6d19dacc8c78093243ad67e6a3
08e56e6b68412ee690b10dac6e17708754a00d51fc957b500eb80175716eef4b
2ca1ef867614659bee3f2b7319e97b6fdf1efc847bf3cee3156f72f21751da8e
5fb6898919e6799820d3de0642d756e09d6fae4ff08dd3deda3173bff4bb11f7
9109c97ddc05897af709ea199a90fcee8ce4c7a3c15b18170c41c04de2d3fba8
f34296a95b8e1e8de3739b17273f8f2c85e914615e8eac5e8bd2387ba3b1edf4
7968f06e2067d836d0f9f3e085cdfd2de06a62c81d786b304326f7002e83160a
36598589228b4dddddc43c85e1d126f8fe81b828028e26317af5894aaccf4f69
6301e1a9fc45935d8a414957f08febebbc3a72ada80f101e47447d019ade56e9
f4fab969bba2b44e47399fedf5caa1bcea216d7ba713d523d98f2e44ef37ad46
282d7a587974734c2b1e24d8418fba0841578cb551332e6f777773f1b3155cda
5c13080030cd6402a22174611509221f2b3ac19fb60920218837144746f81792
43cd14528d48c032d279f6d8a87d2eb484f1b977e07c9f343d925c4e29440e4d
7fa894f7b3aed4f35967cf0754f375a178c830bf375ed5712c0598dda2182320
99fd8a45277a5d36139c90411cdf1b382d711f4c8011df724a07333c5421040c
06c6bd0c5bfb17cc2aa404c135fece394c5e77f735945b7dee71367ddb6c0e18
57d9eff272051cf196ea6b066d9ce7babfe387d9119d18a5e39a309f31a783c3
0df3e61b5fbca7d2ec0c81e76c4bd5d8ee71005814bff982fc50a47d68cb3864
afc1374db9f708ca964ab5fbb144195867aeb5679ebc7cd179cf2930a39e1e00
b069c5bb808e8f4d6fa76809a9b3bb2a51a92550895a2a003652db9b243d8723
b9fe67a8d1a395cbc82edb2b90760601d9b1c26ce4b2d388b7d5a8bf869970c6
320d2f8234ccd2571fa9d7433e0417995c96e118c665c769d36d8b03d294abd7
3309d0a515d5fc31b1cf350d9faf137e37dfae10d57a43db97e66885d8c6908d
41488814b6dcdcdbb38918c83faf349fd40dc4e07daf673cf9d7c3fa153bd121
fcb3423df6f5d6b96d935cd21f51a6db90a69d3211bfc35ed53227587c8e1899
eb1fd43dd853f77b5b5ab84efc9b05dd1038041806725f2a1c3099ddcee61546
9c612945cf9f915039ee8aa22d37dac60edab48dc37b33952706d0e6fdc43502
64e4b82ca26b6a98b9a56c829a4eb43f4de9b78c198dcafc06e701f349102838
b104edbc1c87632a08884e8f48cf84ed92b884d3fb4ed825be625905eaccd6b3
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR8
%!PS-AdobeFont-1.1: CMR8 1.0
%%CreationDate: 1991 Aug 20 16:39:40
% 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 (CMR8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR8 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 1 /Delta put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 56 /eight put
dup 61 /equal put
dup 97 /a put
dup 101 /e put
dup 103 /g put
dup 104 /h put
dup 110 /n put
dup 114 /r put
dup 116 /t put
dup 120 /x put
readonly def
/FontBBox{-36 -250 1070 750}readonly def
/UniqueXX 5000791 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf
5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b
edad3b72ad63c2918b6e5a2017457e0d4ebc204b094541f345ec367ae85ca9bd
24568a01d3b9f8095f7420e6c423c414b3dcce6da48dd1c89a56d078e0d0e2f2
62a13640a06d17e44ee3866c3471fb58fedf5a3b77294517651c16bdd7267d39
a54e7171752dbde63ac19bb4b3021ce95eb5fe67390b09ae4d9ed4d704a67443
f55dce17acd996c1f5e023c9e5a18cbeecc3097f23763acb86cdd7cd13381ae7
4e48495ec7fa520539d87f8a8dcb3c826275469b6800876a457e7d1e5be867c7
b1ccad69742a8c9b0ad943482bf2a4ad0aed40baeb69a0233bad36b4ca2d2da7
322956c70375d152653500b2f22d2ab6990cadde2da14b4917f7515e64bc3d96
bf775258fc7dae4e42a4c9b6da8eddec4a800c8aadc8d75e48cae52137e05c03
677f5d6a82fa46d9f2fc7f56d62e5c605a1b7898b8d1401c2cac1a0122a2c8a7
aae09607f2c5f29293a09b9959399283be89051452898238b777db9830ff4318
a298b221c4a820c700ca964fc99e6b1d9eb0bafc39be9aa9dffa2fa326b2a466
1e67261bb3dbc85844e76f9313ab533ee16bcb478166de5502b68e6ec1ea6110
f53206cf1cfea419571b0243244b32ea38b828a01e62b03bcf476a32c2341cec
b8a0fa2a3f3f339315d5f3aa7704408f6617d026ffee4925aa48537a4b2e556d
225be09392546ad561cd46cf766f0ba14c6854c5af1a528c3842b0c5aeefefcf
19f19cbce5d967153c4f88e51c776cfbe10d39328466f7a3b83d85601ef4d1ce
0cc136610fa6a74d9676e4e99291d565cad27b9eb2337b0eba4148efd0eb2866
ebf0a4209ba135ad1376cf9cc2d4110f36121055caa3f2e508ab034dbadf2fa3
d6135f0b4f88a6550c846267756481db1c85de1270ba298bda4358320ec1134f
fcf6492468648b8d387ada262cfb40d7252c9bc595babaca03a14faaa3dceecc
18ba05c4180fa257310fbc2f3b8bbf7183d1198d29331e398f2db262af8549e6
f69f578e61af8c36a477257bf353f63abafa7b8d0e5f013cc2ce3f98006cbd7e
a0f514c48adb53607854fc2c8227ba3851777a0010d9b6995b5661b85da299c5
44dce38d553ebf6118e9ac7caa08ede220589b6349680470054f30e6c27c0d31
244ad06f1acebaaa9f25030a4bf78a0fc3836bbd7033d01192cb0122aecfdc2b
d1b07913af832e34d980e851fd1fa99be3586fd9196d8f813249c8c579a991b1
662df5fa78806ae553f16960eee4d52660392da32ed08bf3ab0b186afadaaa03
3fd21926fe5b4ed5494c356c3edcae8f7d117d80aa3b0dda02a8e737bce7002e
d3429b2ae910da9b06cf19aff4b95e4e52576bd070f9ca0b310b09b9c51344c9
618794546a24239ab5f6f818d15dbec08d18b67644eb523f8b247485550a4f32
358586bad6cd7c0eb502cef6b47e12d4e74d4245acb3ede87c66f83a11b73b88
0a0c611a7bb54a803f23d18c377353d91fdfd86b26bdb8ba6397484f91ef8256
29a59e9a091b87f3af54665e39dbb4d0eba467caf9806b0ec7f588a4ce54e9bb
9b63e628815769f1fbb9ea9735a38939b6a3d581584cf0c7f09a71e7714268db
7367d78fe3173c48dac92e5aa75fd5177d51be7a1a6f66f17fceff8d0270f493
245ff10bad72b9fbadf027253519a04f7aa2bf1105c59bc642f3fbde15c3dee1
73fa46c5fffcdd46f6ebe225d2f23c7ea83aeefe12bd5fd129e7de1d8ddf25a2
592c2ab6380c34ba8bdcf3e2ed1c38a475943563a2b3fc99cbb85392f3341082
a8b9cdde5406f3299d8cfd5a4a3f02fcf5c82c3c207908d4a333b8ec36678e1a
e675cc061e2c7c3fa5c1c8e79f8e7758213b2aca51c5310f4fca1ac35dabe445
b8edd061f5c3e12619062105122b6a5315d645e540765e5c2458df0e55878c9f
222349b9a1674acd29c5cb8cb930456a73493153cd7a500f2bbddfdf3935b82e
31400460c6a74a3c4ba397eb1e4e302f972ac27da4c7805e88434a0ef811d52f
27115ec9cac7523a0160aea89fc94dae18aeddedcaeb6dc878e75ed108121146
c2a1617885502dc47419f403000b939d4c1d3ee988f005051f7fdee05ae207c1
8a5e4b05bb12794cfc5ed60a9920115503cec8bb4f057d458c57d140f364b530
34406e80962c55d3ca9afd6cafd6a5a7fb1fdaddbb05609b77b739fb727da037
0507fc681628cc20106f188071c5dbf8b5e94106c757c0206a755b64e3b8dc74
2f9dfb86a871c1eddaf7057c07a78afc08d5ab12cd285ffab86acbbabb221700
a646deb37875640e364677e5bb6e7b5886c0a4d460ebaea634dbf597f68c65bd
433d825b70cea72d87548e5cd5466e065eb84b8aee8bc77652786081e1047ba5
3996afe93725a25621c3306b2f1f1c1e05e98344dddec21b607e11dd70d9a7de
c9abfab5395d3962a15925c63862ea3bebe9250ad77dcdef115919fc81a80311
68eafcb15bb27cee4f12aeeece11e077d14e1e76be2d10492037416630e8c996
316bde64c6ae6fce6f8dbd6a3f6d0c31ef40e7a1b036a255a3d15020418814a0
82fab462219446c158c2a062a104f6f7ff596725ae02b5e16dd8f591be70f9d1
d7f17e7a4a92fe0fa457aefd23ec07ea180b1bc4a4e4dcfc061eeeeb8b232849
c292002bb4291724f71c6b48b002ee116b544bf2cd7731ab16cd21e8dae8782c
b97b9c9d34fc913cdd679af1b0e3c65f1316503a7d1b7591935dab87970f95ce
7f397e45db7b54511006cb7bc35a38a9685807cbceb29539bd87099d00337541
4b4de7693f681dcccd1aa10a4aa89439236cf1921df20aca38b9fc90c3cfa901
a3e686b9b82ed9a39f2942f7fe22c25c723b2f5a0c49b7fc2138dfa86ffc1dd2
fa79dce82eb11b2487798f03df56a9ab2b22e2dfa2f9034484ddae7ec78651c2
b5a4653b4a5c1954e87720de1bbd62074d96fdd589337ec2f740c624d9dd16ab
05e9a2a42660904da7915068ea133e744e30171b58cc6e092e7e6139a369938e
22ab5f1ed016f36a9670f8d2a1c199281bfb589d32430211dda635e76c1db114
75cd5edf4294bae40d4f0affda730bd5f9e82f6fac605c3ee203df21b382c3ea
012d4420c9744756304c7e79b1a19d9dfd9d4f7a47235ae26496487dccaee313
83104ed3bea40560a68d73cd2e1926da6a466813456754d323c58b9ea48775b6
4afdf81af4d4005db424fa3736e1b9edc0fc9492c77003ab5ac6e4628a1f164a
024f70bad2e8cabc0dae46d187725f7f26b18170be7b1130abafef98606820b6
38309c357840e76c5792efb6d053310dfcfcd9000af8768f8aab9cd416b20a70
d630bd09b972fd1978f99023780eafdfb20c537da2af97bd3e7263a8f936be9d
15b91399ced76564ac6f8fa5b7e22b29be78944c6ac8a7d06dfa0f1374f3155c
4e2a76e02c51e9e1dfd25ac5c8aa27e5baedb1faa4080d43d19fdb9a82a74dd1
d6472c63184294ee3028388b405950289891e320d6291d5fc731960458e3e741
3e517c8fd6d560daeab0738acae35d79de7c10053764d194452f2f849c3c094c
b9e4ccf4354b95d19381fefcf6e1cb4426c93ad31035b9e44a03d06f2fbbbcf3
a82ae8d7f50a4dfee49975fa55eb5b7523e3c3baefdf8c7dcbc0237d8d092724
3bde9c5d995061b4badf67b470aef74f55869d67b26f06dfcc04d8ad3b27ccdc
980e905918556cace2c6c2133275c58a023d75edd95f8c0b230bee9bf30a05e9
b0ddf9cd3a7136a5e2f94acc9c88296884f6cbf39c4062ed86fe6d57b06b2126
2d683c59c5c266934e9ab4c841a6e3b73bbcf6cd3c2e94770786df78eb2f4a93
6bb10ddb02d141b097abb9afa84efa81ce1d800240fa0a137b1c84e8a155ac1e
bf429b86faa236fd49cc9c08788ab9fb43b56833758b6b9f2535b16204257ec1
2ee4af7ccd47edf9f0b80c49464835288e2d4a5cc1fbbaec9418f772e59cd3ba
afaac25730ac6b7155dc72da24aecf82b221cee5612f0838ccd8b94eeeb48e4e
129ad07e46a20faed6675b5ebbc7781da3db3a2ff4362aad153cf4fa52ddaa50
676239712875d57425a5fe2eb599839e5fb8ca840eadaad859f55b05d497b1d6
7605fa75936f520ee3d246a20005107f3074c9facec96494a8b453b7af3b40c5
8d37c41e631b4dc20a495c19d2039b37b399bb85cdbe9de93e2a8ee66f3b5601
7c6a60fc11ba08ef06f00ed44a221e7ff19ed21321d392faf4bd9047f47260d3
2bdbacb9a32a988a5dd8accf15f219951ceebcb53e1a699aecb41d87dd77345c
56afa4f917dcce5322c08ede8f952da23a30047d2984bccc812e1dfcf301c4f9
7acbef59460f957286ec6d25b8b7afed829e9fcdb7932aeb46e53b2b2e4505ef
2d5b8dab1644c285cacc153cebdb16d4e277b6e76889d80cd486a12d2bb2a5b4
16dcf57a2de3fad0cb476df70b5412a1bc09dbc80512453fc5316ec2d9205dc6
41d60571cb1760cdc0850c057cc99d133c6a3fbe6099962a9c023e3bfcf0d41f
c231b99fd4f7299e7229629b9875273d583acd37162028dfd341ad6217ef4954
b88d998d5079a7ee76a6f5c1e816d5c060601c9f53dc45b3c1009b73941a8176
f2ac41b3d4f95879187b6c389cafed2d4d5ea88c9995fba4d1
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMMI8
%!PS-AdobeFont-1.1: CMMI8 1.100
%%CreationDate: 1996 Jul 23 07:53:54
% 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 (CMMI8) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMMI8 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 11 /alpha put
dup 20 /kappa put
dup 26 /rho put
dup 28 /tau put
dup 33 /omega put
dup 59 /comma put
dup 60 /less put
dup 62 /greater put
dup 65 /A put
dup 66 /B put
dup 76 /L put
dup 78 /N put
dup 87 /W put
dup 97 /a put
dup 98 /b put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 112 /p put
dup 114 /r put
dup 117 /u put
readonly def
/FontBBox{-24 -250 1110 750}readonly def
/UniqueXX 5087383 def
currentdict end
currentfile eexec
80347982ab3942d930e069a70d0d48311d725e830d1c76fba12e12486e989c98
74c2b527f0925722787027f44470d484262c360cdfdddf3657533a57bb16f730
48bfbbfcb73a650484015441fdc837add94ac8fbd2022e3ec8f115d4b4bb7b7f
15388f22cc6198efe768bd9fceb3446ee4a8dc27d6cd152485384ef5f59381ff
da43f2d20c8fb08aa27ab2015b774db10dacfdcd33e60f178c461553146ab427
bdd7da12534ba078ad3d780414930e72218b3075925ce1192f11fc8530fcd5e3
038e3a6a6db2dcfbae3b4653e7e02730314e02b54a1e296d2bef8a79411d9225
dad7b4e6d6f9cf0688b69ba21193bf1495807e7a196cf14c95a4e02f9cd2da8c
db2546c6df52e524745992e18d9ff87aa25e4e1800bbe4ebb357c6ef55ed6d03
6d3a00c1ee8073266c21d2f0ac85d656abf61d7e5a4fa87da8ec3b5329e434d0
d2adab706b42a2e5331be5295399d803ccac03f631f01f39a022fcdf63486b68
7d15ef284a77def7fde4898543e7b5f7ec267756103e477f547cfb8d2311c4b0
09deff56085f5d419697af1846c8b88c1bbbae149f0f19ca3c8dafe19cec48fe
6b38357246d8b5cef80b53bab4cbbbe8bc8318cc462a4158258f456e697f6058
86010493f252073ee4e4c9531f23485415ad6bc901bbaea659ef701f825f4b6d
5c9bed0dce7b63810f906b33ea4955531ca1ed1fc120cc56dc1e277a33222cc6
c3a97552607b865783faf0895cbeccd0df54f57bd162a88494768435eda71a39
69718c0c5912d3167bb0971546d733e735aa9bcd89f5aa154656031ab3f6fe41
94ec225ad03ab8b67a9da43ab365c4df17c23e79f685c3b6fd5b654e4a6f2603
6cec3a8641b0b57f93eb95f9e238832aeac2061f3153e0f375513c974f1c38f7
b59edcc94716f2862cf71c9a2be8430985da1cd813b1e1c1b9310564a2eb1aff
52c190f50fc981dccb64bb2c1f7a62c216f211c162c2ed1c554ef49fbaf12b31
aa3b2a80fee259dc0a2a4242869ddec7c29e2941792b28bba7f2c6f77ef69638
12b07d6843f33b51e01c8626b26edc34e1e0fffadede5fb468e8cd5de7e5a64c
366967578f415484d122834de4a647541d66989f7d8b25d1712d8d16729bd9a6
472de8adad153b1919dd69b5cd39ba55828cb3419a1b472ac6fbff53918c2cd8
541d2712250d2847f66217f6ab9ca14d3038b6998fde9f78fddc9c217f20082d
f3de9bdd0add8c11a44b70ff0605bc61fc6ad32537f3e6b04aebca6005c985b8
93cbb6269342a40e871644fff996ee2cd3a07f6e23e2df9b51db44070a2689f9
d338c7174f147538db9e82977f7f1dfd93b96f20415cbca94383feaebb042f40
7ee94848b78efe0d0dfc168facc47b48f76a2521dd02f76542cc81ad3b8765f1
0c9a1724e6f912be2d6ab1fe12a129b1aa8ac0dc8a2210829d0929754259f0e5
bd579e5f6aa9c769803ce53f0e1768444e1625425d5706dfc3f8a8613ea34aa8
67f1aee18769a135c682a266789e1b7b64b2cbd7b819b0f6d39dfae44496fc40
7e7a366f2260ba5c41be0963ee4cf8fec09aa7fa7654ce4e391be389000acca5
892619f588d6e5593b399e604703b76cbb206fd0c40d88224cb1fcc5bf5fd74a
0d9b2596a958fa745acd06c6cfc34b2e32d91789bdfac59a7473e4f88362f639
300a9c8e70fcf4a5918dce817860fe504d9ef8412cb8a861ae835e2e38b92391
42734ed4b641fbd5909b66cebecce47b00e58ddf6677ae4fd176806645adf3c1
417ba60cef4f9a734e9aa8edc8a62a5fe9782ff669293b5fbf69d0388c26c880
96bdd995cde91e68c3748103a9dee8081f1ffb64185bac5673bf9913b1f31026
21c91bca4a12abd3f136e3c70092758b1b4b44265c747ac9a5a4ef8b33bb8b07
e91df3e74d0829fdce137fa998fd930f990340587fb2e11b1b0bc89ff738bb2d
a3650c81e6fdd618fe1323e9494bcfb39880918dd32ec7d5476fab214de39756
107673a8b9e72334f2817fb13913aaad2cf54990ed538582e66002129a71b584
ff67a021aca58039bb542ae544dc6960bc5ab58e20999cdb8fe39ad6454505d7
f1a2484c8728e42a478fcb884350ef5626e0c141badf0512b48a340fded46d1c
7aa347cfacf2500e927033507d4919010530601c7aa289d270771ec56555f895
31b2ea07eecb9a895d5b84653b573602cfc036ab40f2df2aca5f49549216540e
e3c51ea3abde151890bfc4b50311374bdb76b181e5b8eb828195eee04f9eafff
729746b645b569406ca8ee602d057c770b20d8a70e6a875f6fcea11132f7259c
fb7cec4d44ab63caed57483b560a0ec5c86a7e344b906aaf1807c893b7e0731f
66093b8089cbcd6ab6aacdb73c1a92de426ad6ed7f42c26d15879756b30d6819
f1196f76499e935a4b8eb29e4a03c110cfeb61b50d923cabbf5d46b0fe1b89fd
7d32c3868fcae969f381e940e3cb2d22ed192821456b7fcfcbc67427b364ddd8
2c4d2eb942d90f31bf8f718ce783eaf1071d0e02fae6470b66378cc6a9e96766
c1a38ab13c07845a2bdf5d5c5f94380d7958b202ae9124216cf8db78d3d9158b
69ca206b716e9b419d7146bf224d0cc11ef43b7dc10768cc8f74e4a3dbbbdf75
a72aa97397c4a821e461f902b8873cbc8b7bd42e29e5eda9b62755108e1ab1e9
7ab5fd66550b7aede6176bdb5590c7e72d7db12e55c593482dcbd24a3c7e131a
a1d58f8ebe5112f7165585a2dad4239cbeb89374f0b5eff598775d273da45b96
f1548f21e466137befbcc8046e08aa2fdab3f62611ef3bcb0b7c57ad5cdaeb64
0b5adc1cc8c78027d6dde85cabf5207ac0767e34c08a6ddcf6ecb6005408f4ab
90ed0cb5b28b5671aedfe3581df85c75a87cf6aed449af3438a8b4b0e005eb50
03f7aabfc7e6c87f02ff7c266e0eaf238475c4c4e34e9d8b2f3994301c07f6fd
d23e62800a37b68e9716211e98df50d0cd723a5fbda1517d48a0fee9a87f676d
588552338311008cf371bb1e0a22a179d82b93ae578878e560116ddf89e44b7e
bae5ec50cdef538cf83ed17115e06c4d7d051fe7dd3f44599d81809b278ec30c
24f8b4cf4b1f241d3895f80f9df569d3e60016926dbab43b899e346488eaae33
8fa990bdb6a1b599a27b3e43cdc6b9b857c763330985af7889c3f68a9adcd6b8
17ab4d1ed4c4473b68cba053da25bacf438b749becc8866072a137106a1de639
b2465a3c1801a5ae43dc019189673d32a68405affd44a8c551732fd202bbbe75
77298568c25f756fa6b1f4b6d82a15572d271b2a88fbd88bf0ffd27537edb693
ff0ccc4ba1260fb99ffca5ba48b5be06ecb9f1952a8fad9040a97042e12fdc6d
154053014acc119430254e62e13cab7ca4daa054e9c894b01855b75e0597a27f
3fc6fca2f18ac922123b8da7fcb3f356fcd4893afa748137d31451640c8cdf63
0288231eecb1e90a231c1f8a086b8cb8dc3a4c2cdc890f2731326e0de6661f68
f379de4964aa3b0bc79d2860acec0a81c4e0fa10b678b4d15a1b75d5747f0eb2
2492c91ab04a1ff3c37b8fca0d3198b8e3e17fc37c700e22c3906e440c5cf580
18a72fe757498d63c5820916127b9af5a36b11e8eaaea3ec7cebc7c28bea6376
62153071b49cbaeac510f949c10e65b9ff64296c1e16a3b879e4a82105a1e576
2cb5cb3041f7e401e7cf71463564a0c1cb3d3a9400e35e2cd57eee19025ab8e4
7d0ddd00582f198bfad86dd1762f3d17b5a36a167ff3682f5431b32470395e27
de8aad45df9115fc0d24b8201538ddfdc927e1b947326ea9958a7808a2977cd3
053a9954267bf22f37c7e018c3bf8d3063d6fae26ca0564e60291233c15ce138
b32cd87524d3131b1e9cfd484a61e03e1ca568c252d69678f71ff17660ad880a
2f19aa85063259783691d49d03509be225c15a91b98a45d00486f1df93477525
bd27a8c4520d0c826d95dc46fc44a8c98d4de27aa2f3a5a00792bd5356d9e41a
0cba09d014378be82559fa0f69f4fb9c00ac0d830a236b8354d7b8bfcf103b3a
981f670b0ac915bbfa960d1a5bc060a42884403ba60b95130e10d1292c83bc0e
9fbba9dca50938da131c24a374db4085b7a2d38b2dba1b0c8652a433c36e6143
8d56e91504640175f15c79bc4e2afb7e4da2c19fc53b7ad2b2ee917457f693d5
c8f8684ef91a423d42bf6078c41b4ad4004dc09f8c7477b5eb47209156d9f997
2f3675cb9262c4a890a2849a402d42828dbf087341292a8b20f0a8b67e74f0f0
c3e95021c6b421ff64a08447de9647cf3e79f9486fe3f49cfed585aeaaf9467c
470d3b981b926d9620ce48fb3a2ea8c351986a66ed1fe2e44b44f6a7de77ac22
5a644069e4899da71eb1bfe270ec27442ec3b6a79b2ae8ec671af7ef671a1630
513b501aed4fef31624569fb347cb5d6055a8f6566a1e3fa62ddfc43a262afeb
fdaa09963565e6cd6d8600dc420dd247af5a08a80898438f6bed0e21b83e1f46
afd9d465cad9ad89edf6b17afea845568eefcd66fcf02e43aeacd41a04ecccab
863c66935dddbb513ddc30db876372d7e2fbc3a4a9a3c11c72133290987e5b68
74ae84b33c5e269e23aa1cf0f119ab964c6fa1d656e317bb81e133ba2d185749
a9b9b6bf552b0d0aef86e39d6cdcc90cee4388860b1daa8e878a0f4b06ae6079
603d13b485116431dc2e2d1a7cba14a9a181c1f4b085a0f287b45c5d5c601d99
e793eb945532cdc5d226716e0fceb87a78b1e2ef6ce7814ab585394d7b27da51
cfd04064b6e743301a918d574cfba03c4f866e077df29356cb6749d807c9f5db
5e295376a0999c4b72cf37711cc7414c93d949100a7a05c732fe15668432f516
bb88537f1f5f7e8b127bf21d5f56cd9bf2a12c186a1e840b4dc778501bb67f16
e906909511671ba30fbcd7ae1b7028bce8e0a16ab462e19b591943bf77d244c5
e0eff058354c80f564fac758a8f72291e9660945673ff6bf6e0ef9cad4711934
5bec844f095d9f65b1c2ee43b50f3d4ab4db33d364d72abd2d6f7f63252da96a
4bc7d3bcf8cd8eb493c1deb6dc0451225d4e3d608e8a0315ea4c9bcd37df4702
f86e4e518d5de86c2964fcfd37e6187a013df1de5fe7afb9fc6dfcbe7608dc15
c0746c4eefae2649f2b77581cd552403cb8ed4bd07705751331011ae7099db34
82297837e1fdf8f82c2b5a38adef62d21c2d6648f241bc2d38c2867c56d42c67
cdc96b818ce37075883274e82ab137be647c0ab3a97498d0b5bcb55369b23b3b
22b8c3f13d1a6b5d5117b46b64a09c2e2ce9e63e1a130f1395cd0fe727219499
60b68de8466873254e842873183ac926d431c2a7c5b1623abbfbea7902874aed
f9245eb21cac835a673240d3d002864b9e59b6707214f2bc89c948927a38aaf6
32af28466be62951e93f2949988f84bdad772ce44c4cbc319cb40cb817f38167
2bc0606cf93b04ff96a49c1f32caaaff73fa812ea4e4300cf8688f86d6ddd83c
bbed92768fd510080489059109ef36c3e44c9842b4c827a69de4980e72c8720c
0b8f643a10a607848e6d18ac6c55a297ccda74e107f69bbfcc96b576e16f392b
80b007d61de7c4d2a40093334c2370162e7f692c9cbf7d71b19c73916a13cf5b
d2e9ce2c87b6aa00cd776a65ccca4b7455334c76be6c248fddf7396cb2c008a8
1a756f5a6f5bae279975d9cb6f5abeb7afb07f5f913c57e1071ad2d9707279e5
1db4bed6686e87bc942f675e459b46061eb00d562cf8539ee38bbd225c08255c
ec6fd68b331d87021931dda22018ff77c49e8a36c67bc8632338b0ad815507e3
6d8878cb250eece11380337a5aa461dc4c0d430f80cd33811895662c849080e8
f4b2d9fd78d73627e1bd207dd2b2f772636e26f22cbf7bace275ca1946a14f45
8ee9da1c04cfcd8e73fc4e2abbe0887ff3766c70f763f82d1080cdd03aba50b2
813f70c8f4ae8bd3a4594a58c31b4c0e189afbc287c519f02958dd76775d580a
0343144d7e58a20a2409a9a90ebfad36c4d02a8db684edd9b4c59dc814b1fecf
890bd14342a147e72960eb722528bd8f4fbd1e103396c252e1aaec4729cb0a7e
4761f0028c08ed3b27a19650761ec4f6ad272cfbcc927b15e8a3b1d7dacf81cf
ffa8188e758bb68aa496e6708707569225ae7fa5b47c25a3443d23def9e06a12
7e11e3c9bc3c42e4bd09b7d466fa27be06507aa1296d0171d0c0d64a297bbd3c
bd7df5c6e6eeee81e03a8ca9e54e93ea4e3b275e93035343b36d884e4b9b0ec4
d0c94970c4a83971e7b682f3b37d5df2c8b8b9edaeb82865dbad568fb5b238ec
47f2e6ff3cc04a4be9f03c1911d305ff2d7a690d59e4960d8d2dfd2a20c68aba
95a0da66c7cd3aa06e7a5da6862fe1f5c4dd32982956aa7851e502f3cca2909d
278efd342fc7ec2f6589b334afca4d9ed3af176763f9fcfcc4be2f9035fdded6
2726750eb0a5502006176b9b605399cb50965d2b84b8ce2eb8a38b6d768db939
d372498cbdc82a3948d3e3bdef300391d29bf2562a324439dd49f2251ace0395
94c94d276791e21c8c3eed808eebdf24716b35b4004a67a6982f41ccb547ba33
15d4d101b03c835ea857f11306ccefc860541b9c22d9610cab18a42f5ec59d39
d4f5b7382301d106f91a009d161f5171438505094fc6a073967483c3a168392d
7aef6d5c69676f2a992d0159be8ae13b58d1fb1e097b2b9b65dccd6f3e9f2fed
485f1e3b1ed4f6f566688d17f8cc0911f9e00dbe73762cb58125f1dc8c09cda4
f90694222dfe1305b5793f71b59ce80e45247bfb308fcf2bb6279df70f81eedd
366fb5c74fc6b0e0ea201bc656a03605901cd4ea7198e8c1135d5d1dcfa8c045
4ff67d7c93923e8f6c2592366b1161dfe576a1fd8b79175b5fa4f043ab0c0258
772b398bfa56b1f6e3baa14ae055dff5a7ea475a97196e5be95b7c32189979f3
9f7a16a2e615474799e65e06304b3cd3f93b909b145672cfd2498c7550546b87
1ba7ed8b12cf21691cedcdfe97b59f12c9c19a0149f08ecbe3c9172e1ee214be
4b7fb9575d6a424a6e3cd7e8cfdf2deeecdd701a3ec001eed645c6f07cfe70e0
3b5d4f2754e85194df632a25f501a988366e4550bf10234d3526c46abd512bd5
d8b6144b8c8d2be5cd72a4249e88c22637287f53bd4d0c208f6d14a181c4bc21
6e90da12c6732e6919420a6f7970fd6a4421a3ed232733d645221dc345dc1c7f
79b5a7629906d3b44ad9737c7df1285d7aa20c42b594e4e692380c788889f3a0
35ed42d565796ef718044a7c9a093bb8737041398d11a80c935fe14bf03e9bb9
82b7f74b865199c876f7802e8700b8bf610ba4da78bd0dbc3758a9bedf720cdc
1033e59446792083f1894f47de07bcc4f2913659f76735242d82eef17a92add3
01fcf0a3cff80485819b91885c2c20545480f7d99618b760b45969ea66ade75d
2781b1df4fc70983fe023288156fa17b70ffe26b2b8a0ea26f209e2f2565ee67
cc2c34f4ae2293ffe30dcbb3333a943b93327b184b0bd6010dbe9b018483b194
e17121ca39397f02aa148b0fcd6c22c545080deb0ae2e7e0d1daada4bb6c8411
37ab6f9b227ac4ff26585f914b2997d94d17fa8de6f5a3efffee7a6a27e00c39
5acfe8109ba32b3428487a80587ed68d02e6c2b3f2b4a074b36918c42a2d403a
ec729c1676c8d269739fd4f4d2033362b89e78131340463403824bf445ee0124
4ea13224edaab26cd17e0a71e1bca0e133085bfe16c4236c02200c7230f1bac0
d04286d63b2aff22d24f90ec8c1884b8275912b35fa4a6cec0c485a36a2f4efd
08eead4488e88cce9cde415dacaf2c228360661e815a6df8631268e64a7c9ca8
27d31844545953953459468748d87d0201bb2c47a3405649549d1711f4921387
2357aaf885d7cdbd722bd6e111d85fb97e1f15b84af77c50d24dc1f78f781e3e
2232090578609c9066db564efbe3a4bbe9cf403f392098ad87e14c2fbec76902
6d56121ed21cd8c954e71f9ad1d2c09394f53e509b4f75e9df6383d4d000efee
517f3fc0c77ca1eda2ba94e393cec6ee3bee91584c21ade2631544b1eb3baff0
285e4a1ac9da78a534def1eb3fcb0fd27cc6c8c1bf0e1855f6a42b580b33f909
e1569641d434c38771b0aa8aa1d8e7134dbd83426265f93cce38dd9e3c9ab45f
517c2c6d91968c926bd12a8ca54f6e6217b9e5c5c334a0790daa0db8c019f767
37d99b9b4e06fb0a9a98ad6ad2129285b77416b6f0588b957972800685d556d5
aa364be5010f02367bd83f0556add4f08c1753d76eaca47fb5d25ca1b4b018fa
bf5f62bba379d2e353dbf6145d5076e1d332cb5b190d7effcacac055899eff1b
887fdf809dccd1bb47bb0db7549628ebeba78bfc25631bc48823dc64be9c50ad
27f9732df66d52416c5af17853fe5a53ad0c6ceb9e486c31e8d546fc983506e5
7f6b7a2f5e67f215b5fa514d94e686b6c4002fbcd4067e062b81e4fbf18d08ab
5f6038136c902f1ce2c3a8c9192db19ea3280d9f67454c01e385b0463c41c2df
23e7d98219e580cae399e89d6c9a3cd1089cc8354624724880801dd2d21677a9
bd2dd8aa9de82e38b53e5050f21694e6cf57f3df06d12e03ab604b925690abee
75a7561dc72b4a44db66c4b1d66220bbae103390e44aef793c10d21d27428757
830f7af3229a7c72da243a1d5d22567b27db7bda0103f69c3e9c0f4e5e5753a1
433e59fdaaf588b428d1f035e17370fd849e0380d8ab49a9699d898aa931347b
d69259e072f37df6561a89bd0d5d05a72dd1306c4d4c0936330a47cd673a45b4
c4ff5bd1dad8516456ac3189bfc1eec05b216a4824305898ee6497e320f48e68
52bcb5cc63e79ff452af3d15fcf18d13dcee0d0cb4e1c22cc434fad4ca405729
5d74be91e3b89e4b6de8e5e0178f2deb8eab21e219085f3de7b25f058855169d
993ba827cf1d8e044f33ec3e6defd47acd3ef49bc1cedaace479e09af42c4af3
7b3aef555554e389e84a5adf79726e6a8f1ab985861ccdb5d53b541f2516fe12
31d72dea2011b7aa7ce32e757c86231eef37ff14e9e2b45d368447d13143ef78
1b1322910ae39784265f75a4847d23af5c18ebce3340202e2af88505032a6a7b
bf4c269bf914e5091dba86e8d7b89d608b883cb23e642d9c17fb367d58d56859
fa51b5f0e6b8c9f7505ede74569c1a3fd1eb0ff76d9bca6eb42ec304c312e6c7
37215e4b67ec4eca486a2707a8390daf1fd99387aed37931ae0d3b242b35b701
549351e8a08c63e7c3eea2
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMBX12
%!PS-AdobeFont-1.1: CMBX12 1.0
%%CreationDate: 1991 Aug 20 16:34:54
% 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 (CMBX12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX12 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 12 /fi put
dup 45 /hyphen put
dup 46 /period put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 69 /E put
dup 70 /F put
dup 73 /I put
dup 76 /L put
dup 79 /O put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 87 /W put
dup 89 /Y put
dup 97 /a put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-53 -251 1139 750}readonly def
/UniqueXX 5000769 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486be79011d1f5bfae5c1f476ee6f05eb1d2caeb
269958b194521197b312fcced4867f3c8fbd030bd715d8ffda1dcd454b174e7a
1a97b59fe770e67702519d9d9b23d61ac08424d555242a8ca08c49aef300945d
99b999a79ce74804ae6bfde623f4463371442f6523a5f6ce19c839a708c02513
2e22c696c8ccade45680e5197189d0f98e7f0d5f955e353970b392cf530a68cc
56b0035ddfbf206c3074beeb0739dcbca272a6e629fb7aea2c5ba7bae50c7b4c
a595df78200c352997ec3ee564df229fbb5473f5e8ccb1cc0153e9a7e299a8ea
a29b69d1b622b1f0cffc58291248759607d91150cb0651120970dc9f743bebef
44f6ae92facec57658999c8bf01f60611560043962c0695e1bb87d090e0fdaab
659d6557208a660be9aeef8ae55f71b8bc76394d792967e41bd8023b6e7f8c3d
9987d5e54c53bf2bbb32855b946473b44833bd78873df8e4c7e668ffff25aabb
8da4148f744b9d0524d6cb8281247b3052cc5d66f3f1bcf8a56a3fb446ea587b
d8be30257652cee035628aeddfd8283b5ad21b8b1480ad24d898970ac8a1e33e
543ce4e3c48f9ee621c5ce3e8ae930f890011b630866c988606068d9e92396eb
f51bb3db204505fc3d09d4701ac703a14d92bbfe27bd7411b363a88e33a8e9a8
025ac31f21e73dc52b333b918d0b1270c54873a490222d041a66e0192612be6d
2c88958a8f70c10390146ee5091df020ab97675e8e6acf98b28b539cd0a20d24
a42f535ae44b8f5e9290b38fc6b02e1bbbdf1aca96558c2dd5afbec53f03ab51
fbce958ed4a65b17fbc03f9defd4aea4a15229f3c320876235f2d8b69bda5f48
03a2798790d35b394c63295997dd487bc603cdd10d18f3e3fcc7f17d2a6afc77
f1d7f6cf69d2a86b104b9d3b260e4a78716927a485ad8a650d610e68378f4514
3610b087981f0a0655090163dd2dd4d0030faf6a953896a9cb2cd033ec99b6b6
7986f34ee94a6410fdafc5156b56137837b0ef2b9f69107ce9e15e3b746a04ab
fdcbeed843a0ee59ba797d7c34b16247ba2001c613cbb4df99989bdf0525d6b3
41b176bb6a9c96837a3d4a02573232fcda04db041f7dc252653e2a1a5c2fa6ed
a3185ce1879a923a0b8062e70aed18affa11a0dbcacfd4acad4f41f5faa78212
a39559887e0ded90808bf8cddd566c960b991aa828687eb2c731be1558ee2428
c80be05daaf1a6ab0d5a5df3883bbdb251798673d3d8c6478da9c9f6cdae615e
ac9048ca9ec4670f04f2cb0cd6d05ba55f913ed0631a58c2a1873b2575f41268
56573f5b9e1a38d5ff89f4d51a3e0ac95063ba99af20200d5b325aed5ce30c96
91d62cb2529cf0cf50dd30b19ace24bac7badd37cedf572c3a5a3f3d7d91c310
f5d22010ee7839bd1e1b2ba042cf11410791d5061754ad5c507c2815098b9b93
ff40fd376cb65aacce2100b67389ae81493c6dc265c53f8930150148fdde0f27
c5c53d741fa56fd010a353ead20e8c68d656897b034784d32504759bd24fee11
391d98d24224669929d755ba7f03a285a809f70143a715ed11b5bd8372149f7c
dd9dfc2a091b6bbc08aed11170a9c0caef90fed7036ca848db108402b1948012
60d965544c4cb7412364c6f0648411645cf800eed0969b4d7e4669ac2dca43dd
89ebdc84b58ccc6b163d8b3434ed870b125c0aa3536fa70c210cc483ee1b582a
c04ef019859afb2a24bc8162763b4430975bcb7412a7d6470ef45e69bc490a5c
20d75b8c8e690d24d3e0f0bfec3bce2b122d59f205579f3d61869ce018177cd1
e994479e7cd66acbdcab94398befa76a1e242808ef5ae31908e2f6fee62d167c
ec184bc5878ce146a963e8d575e33b76d28078c72c0d39cf9fbead3e98a8ccdc
688c86e2ab5039f43b2c7bd7a2b98126f3bc57466b23ef7dbb40bb0bf9b54387
337c9415ddc80c67b548c64208cc9a40c0aff114ed9178381b7e015b5e7edead
0cacfd747906ed78a0185644a86d156cef97a4f2842a1f3855c265c571be893f
adaef2272f28ca8d87339e45e0598adf48b7db072fca49b46d46be346da5b1e9
92d650306d2e02d633186e86623999a2737070ccacb98043c1f21b91adeef792
4ff8a45bbba73b73bd12bc18e291bfeb2ac1a43d585bc4adc5542440fd3ee3f6
30a025bba1798fe97d5da14323a6ef31a0a3d9b7678142bcf75e645d976304a5
df4a0970fe15f96de140f0cea2bb955f4c0fc33b37e8b4609eac561947c10de6
621cff7ef6c535e944ada4175e90ca6d281c830b3e8f5686df003ec4e696a800
c492f361e56782d265430be61f809861ae4cfbd109075c2b3d65d247df40470b
03acab221ae56f702eae5b516a38ab31a359bdac8445ce5fd08ebc8a4f98caa6
ae26a91be1ba7effb558ce84674ea311e5309e6d5d5a57754c499e9edbae8bee
169c955674e3a7c02967da057858bc4763acca4d2a46b7023a480137dce7c931
82c9b6d0d7912f981a7849f7d5b0c9e3f7ca005ddc1517e6147d5d4c08b5f152
ac7b4ae65aa00fd350f7573d625c47d3dbfe99742eb41100434b8c0e3a706ee7
c1bfe21718f881282366f2072da0ef69f25cb2ad57d936fce513b50540689309
60ad73d990f9fa9ed60ae58814ec66b8d1a859b7b75483dc74c2de889f785b89
37f2cd352932fd8c9947e61d3ca92dd3fd6b943b54cd02aa2824dd2fdaa3bc06
cd37d35f284ac66331e004b283a07f2df2ee7dc052a7f3529fa194faed7302ef
f15905b58d7859f4234f2cab2b36e4d050a33ec4c066be363d269392bdd212c0
14919035b323120da57cfd7a14b3581308817e3b57c5bfc67c67571163e7915b
915369f5689bf5419ab34c3c8d989de2742df2b7133fd03e71726bfe06bdde04
e02e32096717c3a1de23a51801091822fa33a9a807b99d18ce225079e8c045e3
fb2f98c524c044c0010ee0e5e30064b280d3b6e9a21f56bca9b29358d0b9037d
483c9919ff88825509a107726ec0c77e7a613d4ef992a5c9bd174f0e8dd2e389
a0a98fdcfb3499f0a11ad76135ab0eec060fb6c2176ff010bfaccdc46fb34db6
4bcdb7e4c01c443542ae13da599661de800c383e1689d06e63102f65b5b61982
28318b8cf2c96bf80059467938da57c0f9d5f134ed2e118323f87e5c07dd1843
1d87f3e6f9a9b6a512056af413ef8bafae0cfa53ae6c861e5b10a1d43f1ad609
a0ef0df61cfdaa2b07077cce8ccfa976b8af46c2f790539ce80d09ce6f384ad3
5bacb00fbe6ab969af7f1295f85f2ed4cd6e6eb8f510d8cfb6aeab29a513c537
6e3a4360e5c53d96e60d0fa5b879d73aad549e3cf75db918a1eeb7655264efa6
a35ff53407d4c3dc2a24ee3c3f7ee888a8092c408d7c88475a5a682b858742aa
6dea3faca4e5c79d035cfaad3e378965812cbf3252630ab65b052962b1d97d70
cbe3259fdd42fcca622c03ccae7c715e5883bef4d7253080993341835b94fbf8
6505820b28821c0c9f13c291f133fb673426fff24f7c783006401cdcdbe0ab97
e694d9353137cc0ab555d84f6501c2eb8c2be20f1ea32ced7e010df4717d30af
ea6942cedd67a085f47aeca72439a707d21e88e8c986b32e6ddabd599eb7c46c
ce2922e55c319d31e47b6461ff851a23cd0ea3bec080dd21438d924e22982f0d
e5e639ad3274062ed941c649a85b93f6a2d1176a7b91f845f5696062467873b3
dd8ea1a1dbb9b89c1fd7df742e4899847026872a2fedad7c5a693e7384ca4e83
a406ed67bad12332cb8a564c5f3a420a11e7b410992952a8bf4f5b897dcc1bf2
fe38750ec469af0cf171596479d75a7c4bc0562a90bbf8333d9ea4c22ecae528
17822763977a9d48ea129e8bd6346305f10ff27da6ef6ec5034bac99c41acfb4
7883207dffb8c63f1dd2ed4c269c76c0286d59e3f48fe693ca8c3183a140fc9d
cffb6227dd125f1684a6a5d82f47f28756403d16326e75951ec4b77362d88dde
ae96dfe2373b7e54d6276ee708c81b6effc9e23d0ac22752fc6edf92822d3f92
02643f9320eaf88d6388ef68efee6f7ae79928c5c697d17963a4d1402ce8342b
58abf23b89ebb67e7a7e52198968989a4ed774273b5562ff90dd53c20159b70f
55eee3c05f016050717fce086f1a09b77c2bf6a3211d20595669b564233cc15e
a0288b76117742837dab1146ab99d58a08549b3ee149731b70abb05ef57ec779
82ffc4d3568c95f9bfc6c2ba30e544d41ef92e7353c1f87278c83360801e9062
3109462b345f29297ea35feb8f7b1705e105578fa20a3a6ab9fa10508f56674b
71346ce90c90e1c0fffae2dd0450cbb587816561aadc86e3f0df59eef04ae751
0fe8a56162f7c187e1801bb00700f9c90bddff5ac84435f4a7493a4459477823
0059ac7232b09bd8b5c796c122ac5d7101db2c22b9f4652c822fece5179775aa
b95be85ea1e4d3aad6b47fd420ded014d7e8e86b87fd73329c4afa5695c73276
eeeae75052caa42717988541ad543d4cba7a43764a5ecda334ee0b0388ddf6d4
2b1b36c3296a7c43d6cc85ccf1baebc7471a3fe54f0677b001aa2e184c722523
18876e392c8b51b5949556165cc8a58485567a2d3e75d215de5d15f5049959a0
07a6ea1b5380660fd621bfcb54609ffb42ddb185d42df56617833193b7f85c11
0cd1293acef4aeee28f40c4a26f3b2aa35ff2a405c5246aada82f212d2a7400d
1f0f8598bb1877cc624fba1b8b8e5b273d36562711e54fc0385b2f698c2a9aa9
1eee737ef426bf15b18ddcc4b8f2bf51ce2203870f8fcd205346a58e4803e454
bb8e5f2987208a20ba728724d86e9af1d9a7d92d3be01ca6eed873055afd9cc8
304259679be635c745a463ab85c4883ecfc17820da325982058c2b8b20d4e1e8
38f06b502af5e0d1cc2390cb023b4ca6b3abbb7b0bb7bb7ec3e03410eb14bc74
1773832db29812063be8290e5a8f6790f6bd98c1c2d140d3e4d05c354254fe7e
c12bcdfe89b0e7734dc73176d38cfd994db87fe6e9d1714f94368d14153e577e
90f267683d0b6f3a359976ddb5a53b5b9b4b7ecab3a5cc927fe2b8c157a28383
8612d58d819f2442baa2eb66dfd26f19d4036324f8df369a64e9e4a547a5c2f5
e67721d6c4b5826f9a65dbda4006d1d70a807ca3f3db2d808b6a827ae82724f2
5c7e5f4f1e2484c65dbd14a3c24e9972cdd97d3ac9d5faf9f3fe7d3d38c3e10f
d0f0cb2bd701b478e9eccefb513b0a3cf186dc5dbf5d4d6a4e33f97c5997b520
a12d41708617541c16ca04f65a081257ac23c0e872367e04f2927738c41b411c
534939b583783d5e0402a23ce7a01c6d9a9cdc05113289659f0428a22bd9ff4e
811ad6173eb22a9ed5b18b062bfdedb2f8cce49ef015605e4c2ab8ee67d572d5
4a18697766feef7cfc219e0a9f80c82429b68f6ee810f4b14c81089f6ca6f909
1e4314619e0cb1d14968f6c3629fcefefa132381cb32d0355eb4e2cba3e6fd57
8236b29018cb1860601064893a55543d531f483d98d1122617025cbdbcee922e
74293f9b0461bb463cfd879fbdf9fa751ac0cebb9ca6ae5696b14c23882b1f91
35c3a5b212858e3e0026225741ba0c9c023b7f10b62ad3b2b3850d502e1da10a
a58ecdf3138e6c24fe31d569bb13f1a5875058aeace988b169db2972fb36fa15
c0f2823e07de3edb4d38e7adcb9b4fb8bf1a5cadc6c539b056f0d4ccc0cda855
680e3517471988c52b54a749ff3d1bb44bab5e328ec05e42ad1d9ab45042a325
a78809cc097dd296807f22cdfb3125e309650e9cad5722dddef1efabbdb87391
164f404c57cabed255fbee2e72400c3f87cae0e49f7f1ae6101ab26030d226af
a759485a9beb9152b03877e051ae106fb60e5590fd0521ebfb05520797d74ba1
cac508d99295ba1f464a565d84a4a0c3270ab385193444a2387c887eed929a22
dfab47f8f3ef9e4d67e0dfecdc7c2208d106ba3a7f2389284f1e3b2e9db2485b
e9f4e20bad8afae43c18e53749b5ace3abcbc8351bfa73e223918d36f862e452
30dc752ae2e3b421688341cc44ece6aaaa4837d025552a48e677766ad9681bfe
acede13b068af8d726c9e12cc3df539a3b002cd80e31344286cc0c04549b1881
d10594e305e3d5b975baff2a5b33466452dd6b65a78e0fa9d32177f77e73e1c0
e427e8f59f49f6397d653d664e9e1759d75bb23378012ff9a4680b905d1634e7
89e72d3fa5c870452f01d100f9e31d4b364512caa3228c5350331dfe2c69e1d7
d1300971af84998df085073bc08bd7b05d4d9532ff1a415edd26dd7ab20e0ff4
f5bf4ccf8fbfb12e2cc2b8e324aa4ad1e8c8050065333200f3e0502e835c6428
1050c3bebfe91a9286c0fc2c436bea7c5aba2358027b95b60fb714839f4080bd
5765abb6025e746c5f425947151e91b841a016975297e80f20ea58057fe1b7e7
32a5f19a9554dc1f061024157388be774e6bc9501d458e3b5140479e142ffcef
9e614a4d78e090b2205d39cc3cdf76a76ad2cf7d46414c27794ef5d13004c115
8d15c92cc8a0d8b9f622bea3995424150910fc409700dcc2a17bcf8c3dc8bfe9
43e681ec5ab85e12f860bc1ccd406c3a8186adcc9774e977a49bee516d063928
3f62f8faf6d27652edfa342955344990ec977b9ffbffdf7be4b621f9e60367c2
ec00d7be71688d752a6b1f8136d67414eea8e64d1e6dbe7b1d6780b380ffe735
e4e470651d01a776a66d4801a887091a4bbf0d781953c649290c28a0a4b0a505
36e07d99da2ee7e0d95eb22b4cbfb0dbb78d4206716760098faa1bd5030e22c9
5ab8e7e130e654970ddbebc0a905ab0bce42822ad5cfb22b1ac1e9bb108789e0
669b6622df9eaa071114776dfa391dc8e63cb18e8a6bc2e4a8c4ae5de5a7ba08
534bb05ac322ef73523a1d0d87dc9da281fe68f1a5ba569701e600c412bd39da
1198f0b3237b84533ca7ea63f37fb3f8b8a066d53e8f31cc3078f5331d96483f
6ac4dbcdb3ab2598d7e147b6a7683c0f8555923377046c5104d58cfcc9d16da3
fd082cef00032dc3d62909a026d8843cb92cb68d15a73eca8ae878b6220d1316
343f87249f42e5cee60207b127739a5c48ba2f21786a0479bfd80b648aaaa271
67d36221a700bb8976402577e91412599b071f0cca999a2e81a562536cdc7309
1fa59638e420e0518819f742523a0b0d059ace977b7380e907fd4c03f2f7437c
45298d784887e1f6534e3fa7ace59976fb31ef256a44f85b1b037673548d5444
031a5df0c9aa5a22599774e356c0cd6c457b32d4cd9f3142f65872e39970e0ea
5f5c1c8149d89636ab252ffb01105fd331a0f8544f51067173031c15b674f171
baaba6215efc8673b67ccd8a63df94c4b9c79f024c20cfc66707b59c57f0486b
13f63f7d5cd611e828b2cd54eac26cfc81d21190071ec318d65849af9a0c46d7
f5f625878104ee522f1c3211599a253b1ed0a7f018d8897d355084fd449e442e
f03e761cfadea827c84b6cb00c540360db45121634a2f5d322f6d483addf6008
ba25817cfd546eb1506ee24857d17b29287ca4a5c64503a3361639e1cff3ac62
8506e7cd4c83be67b76beeaa1135c2e2c53cfaa2dd77d926d8805a1bedd31dc8
3abfaf7e0572c85718c65be77020bfb38cbaf7e6d12f33ea028ceebd33f4228a
fb620cd256c0a31dd3a3cd2cc37f3d9dfce3f5906439b4fc48a111aa3fd89b49
c46d826fd3150259a09f9333425cc5cf3093ab76193d1a521b3ca1b4beb64e35
1739b5fa7ac47d7e3848445ee3dd512c8a6bbbb3a07be40aaf91d1ac6571cf4f
0223f8de3beca6bdf39534e41a4edef2896316b598b41b88626b284a53b186c3
82516452d17baeb5031f334bf520343ec1d1bffe2b3ae9b9ef118f3fd921d85b
d15cda5aa705e2b32020196705a25291f13361a6eaffe7764b557f13105e70b1
caba977bb10167dfa6fb7cf16a10fa6b51accd6326fc33835719f1208832b08b
b0bd81aa4c1c56ead7ec4c6e62683dbd792afd2232ab1935b38271112e6c156e
ff362dacadb71b04baf692cfa636f6e5e5ebeafdd12ed1e386c601bd2ce39178
d9a76d066d3c07a5967ec36dcaed2d724b85cd37b907a7861dc072d6158aaf83
c80593d621363ba41491aa60636de6e36f1073dd82e3cebce2bafb6262c6e2b3
e89c3f8db7846593aabb0d3ef047ecf3b25a4e5289f08f7f66e4f2acbcd794a4
b107a1c930e3462015ade77271fc90561a7edafeee5cd4a2de22d41f3580367d
d41a2f2faffca0f60f77e1cca1602214b6ad062f922b179ecdb69a93181fbfa0
8cb9850245211953c83893b76708beb2964ec679a5b0417ac090b8beaa2bbf9f
69529c05d9827fce49abc0138b30253c7f6101f575ae3e14bde39b60aa3c64fc
dd0f74f213381f16f72569100db65fa50bc1b3b6e0614baaf5751ad5db3ab142
f13b04dfa53629559fd91dc735c0d4145407b3e5859879233bd3b9ec217ecef3
ede3848881369428be51dd80bb042d9bda79c2444d6bab132f6b1d2d767f67ff
8c0c746fda4340568a1d3e7bf2673b1de15a2c2a03c41b199ada7779502a064b
19b3310509bfba54ce16ac5c9d8db15ef201e787002b1b6c40e072037ee1bb43
501a4acf9897bb61cd4921ad270b1320484a235e24e1a52e69ae27fbda7140b9
71cb00d100a52982ba5b9f878df76982f969f84c74aca16c816075aa94ea4025
0ebc7cad7f857a6319dbd90c94b31676404b13cadde89f285682a4cf23e60848
498c6458fd335f8301cf58aa7a627c0e4e9b8e30fc232726ecc0ab4eb2342ea3
f35c4ce83521205d0d3e78854e4f8092f9205168509dabd2eee35f93aafc276f
ebc4faa4ec2f579b42f42879f22d369501ca8fb67034a663117e33a5bf709372
6be7cd94d4897fba9e3078cad44bc1d06200d9eac428ea75cedfdd6090900310
9fec6872b0ab859817997b375997118ecded827aed43ac4200570611a807a4d5
2a437003cfd069a89e14cc82ace6def3ec3e8f3c1c510fcc6fd72e3ce21807c2
8d18c403bb8d2c0cd4e08b219263f469a2654838f6b9932c650cdc8b99439e0e
0acb07295de9fc7d97ac2957a2e800e86bc5acc3f41f1feda224ca853a7c45bd
fc3ece3c3336c522ca668403bee1589167c8daa40652b8269ac00225a93d2f90
c3f4e0644e46a8f4b2f8b5f7c2e65dd8f43d10f099c9bcd3a6f35538a1aedb50
f3633df853dd00dd46558fdc5b9cbcba5e1086430e9d7404e3bee2d8c72daa39
4ca7a434299c6287ed1de4e477aad2c81a81e6bc35a98a7e7660e9a995e3e53e
4c81a24e7293ce82d4e013ed6d96089eb9a879f79346e63f30d802bae5e8e824
2290d02fb419f41e51a1d927dd5c80daf04d7a04b0b083e95adc065e76eb603a
671e4447e1b7dd5c3ba968d9e7828691d0f5a0bdb8805fdff830c39566979c35
92a9d84c53869025d840cd39ee87999ae503c6467e90b900e0b421c8f8684a4f
bf1b0991491d775e768a6eb44d86c91e7f2988ca4da670d20a4f49c4508f3e6a
83dd41cd13bab6ac4d78b8b67b1fd69a6c9eb75a013948f3f1fe1e5aba308869
aa78299977a3c6a48ede9ff31d8b8f7a8e1180eb93241c7e4e63c772c2e318a2
f1c7aa47e1512c7643edb4449281d42661ea8b2da9c860ba650a4dcf509c4616
4897a4dca72c745f2a6def3090f27bb818a1a2e221fda791f3d3248202aecdea
ceed387adaaa1cced945b4c84edbf666eef2312529196bff1c00c2c33f3ea58c
78fb47aeee048f346a3cff2a058fc4445776fcb15618bdbda73d3a6330ead277
95a8aa9bd1c84f7dd0a42638a843cbbea869a5f64217f27a6f5ec5b9135d3263
03720a4ddde9683e02873ec8498aa96cdd8b495b25bf9b6d953695d62ee8a1ad
d01ab4f41a5f79d03adba83fd54851170000e6536acfbc54af062920f39043f7
b86ea9be4c5a49e2d4f1d3dae9a7f23f4ac19953cc2f56d3103cc2b4a418d89b
6c1820ef44020374a49896a4468b703d4d62871d8dc5674b8c58cacc99dde71a
09063b2ea1cc331db9213877d3422869b5aa234d772427df385e52205c30dd0f
3c4d30c1d6a85c2d22eff4aa7449dcad322016875cccab0bc49836e518ccf377
49499e63a46b97d5ec97d422df58a28b8d71bcd47716cfada54624758fd33583
2e09d60ead9ebda017479e3604aa9ea232ba848e4b92c9bd764510a299b96ac3
1512cde0a6c75a0c9ca4c06346b48d76e20cabe10e97b6996f67e3ac2a0a35e5
2f6835f383ab54e4d3c3d26f0a96226eea747d58b8e023208d22c6909555fb2d
c94ba8dbc3993704258b437e75af372ae2888082f8abd326c7b5cfa70e671edd
d228332832b3504fbc31054bb4071af8a44c4844ff204019609a66715750fc79
f7840941fce7744bef59fede97bb7cf40d9b245426db02b7a3a4c88419cabcc7
7cf03994e2a3818a11096a4fd33adc1d6672c0915f5170f3468eaf081eb1afcc
a84998cc955e35277f6d6b23439f9d16d1
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR9
%!PS-AdobeFont-1.1: CMR9 1.0
%%CreationDate: 1991 Aug 20 16:39:59
% 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 (CMR9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR9 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 12 /fi put
dup 13 /fl put
dup 34 /quotedblright put
dup 40 /parenleft put
dup 41 /parenright put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 48 /zero put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 54 /six put
dup 56 /eight put
dup 57 /nine put
dup 65 /A put
dup 67 /C put
dup 70 /F put
dup 72 /H put
dup 73 /I put
dup 76 /L put
dup 78 /N put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 92 /quotedblleft put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 106 /j put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 118 /v put
dup 119 /w put
dup 121 /y put
dup 122 /z put
readonly def
/FontBBox{-39 -250 1036 750}readonly def
/UniqueXX 5000792 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b448685bdd20eb05d5e7c2126132e33a59a7170609
dcf4871a5d023c9ef57d3362d9f2d7a440bb69bf653364105f16f4d0f03582f9
aced3d05cc76489b16e3fa8a446094d30038b06ecceda269f2eab9d19a99c7f9
39f9548f206c5a457a19270b2b82c43b091dfc5573468eaa3e7a4a32f8042891
d85e4b180fcbcb3091d2800e54c87d84ce9cad6869b5aabbbe47f40c68799893
d22b765295e1e69e33aa048b7ed98ba480ceca91f3ebf8ef85fe9a3976909626
b95ac5940d53f9b02215d84a44837ba25ed15cce0d504f1d335065594f3bc824
5405407591cccb11cfd4645da60d960c0b93f187b0cf7b105543c0b70f89af5d
264b6c026e3ae646acf145950202ec73282111e3e601cf2bcde22ce3edf6db23
516481420f26552ff4472d749811f27768150450d0d0ebe3c79f999e99b5c0f2
2eaebb12d97782b1bd91b2a1f62a76412548ad53c0dd411d4a08c0f071c2c218
63d9adb75a4621803ecb84c2bb235b620b658984b2d8e0c4637e2811bc8f0d04
6c8935afc70141e1b2d9c23bdb251d304b3378faf8928bd09686aa0340fb0cb1
dc48c996ef91530ff078666fad227a3589f50b605267212d3a65ebc1019a8eec
9a0739a00279471a01e1505c17658c10030fae32f274fdc8c8774b0d5406c384
a1d17068dcb0c2575c562fdc5a2176609bad9a2c255e426a4325a4fc3053c7b3
2f35f7bbc9aa50135f30223360fa2fbf019294b2e1d1405e078341097090ddba
1561f22f8738fe105c0e3b84532bed145d51428c9cb1807e655408807dc69161
1109a98af82680d6dccc987cb312835dec4ea0645f47a15b6707d654ae54846b
3d3301d61150fdea8ae2da33e79976812c7764050a3e86a2a819ffd3c64c38ec
16b2d0bec3922847fde375ffdd82f8f8bcdfa39c53068da393b35277ba7af682
9e48b1607f22eeefd7d0eea93ba1e2fb9b5ecc6c6fe1075db980999f0be7a05b
9a6e1aa9ed1de0b9ce75de69bd58d73f742cadbe25b3bf14126c17dd3604a401
74a7bd465758a5d2d523d5641cbcbb0a71b710b8d8fa0d51db2e81efe740e30b
b9825f8dec3f01a3d6cf51c27c4f07afa8601b9e3ba2ac8881c537e7a7b8bcd4
fb7ca9c47eb0cc77545a2bc9fcfc3a952c3330c4f0ae0f0cf9e6a4da97f45d12
7a2a825aedb339342799a62839fe28bf70c455ae94363bb5a7db0f2f1c6199a4
0380b4aa3435088800eb841f024660c4876ea4f958f27e6e97d0c59b7dca7768
401ae953bb0753908aa7378831ce8f123a09c7375a76c13981aa12635b2327af
0cf6eb4d32ec3ef09117cbd38eb83a6ab9242e962dd5622711e3539f45192cef
b4f3a709500f3975d1a6bad5dbb53b943832dfa948648f3747e82a5749f6527a
5a1109e7bd105b4cb7612770779ccedde47f8b480725934cdc007738bcf09686
72fe87a6b29c5cb4dbe285452c2b774f479e9cb1e436366fa49969aa820e4bd1
1bb2fbf6e8a6b58f74aad011cf00e5a7931584c25e22475d59556f42701f8403
d3344ad369697c124047eefae2a174cb394f301cea7efd8b7af94e30c3059ad9
bc5bdaca96f77c57d7597c25a2124872739699336bc885b0739a0401d3303e23
6152f5bf59c0d2109fe176bd6f3ddb67b97453919b09a9b82543d7d6cd85dc2d
adca8d52b1b11ac36c1ce383cc89d7033c5f30d218b7a4bfce5f8f7a32f3d9f0
ff01f97704b16e844db5d1dd4f284b53c086b7633dc11d153cc163cc1b0eb194
36551e524055495fb7902722b3d95a70af7dfe0fb7b7347e3e61e16d1329076e
231243088474289ba5de34873e745f64a35793116c4b10bc98796abd7374ef8a
06c9879e46cc571680485846d8cb5e0996fddeadd63017728dcefac3c701d5fb
df614df3be6a010784c9575e36bf30effdcd1da74f800fa30910781b94cdfff1
c419756f366ff78949bad9f3d4e6e520df60ddba1a4606b100ed8c288cf42342
150a65f4611e97ec0ebeef6a1caaaa2d4966d0130ab6647dc4f27dd561b0c937
c8a0f63e94499ff4721a71ce4f9f840546d6c07a34c43c6c0e5b7c6862a21388
9acabacf5975efea82c2b60d40aa602e7b130ecd9e6293a477b950f4d525b766
0f96ae7e6016936440d2fc7bcff02ab7d368d7b03e28eb0d646a477395aa9ccc
25b3c2afc0785b192b8b087a69f57595bbe03be0554ccb217d3848ddc03644fa
c36c66029af02e0afe912b340400059aa51875ee21bb5e7ede2474b60d1d8c07
a635d8d54014acb5fdb640a913a11fa5adb3833cc8c5aefd80d292fa23696885
f843defda261a676c15fb8aa1904b3bf496083aa6ea1546a547441990e248c3b
4bb5c92c447fe0dc264c9b3794db11c75db22e2e36b3d64793a5f2dfacb37ff3
5b97c5e1dc19f3e10138f35ea7887d7445039fed24f895825bf2d1c4a382aa9b
113c1f719d6a998aa28da61609452adb22e76de7403205665738f5578c1b3006
82066ef317441ad5e5d667829bed086ae7345c5a02b619ad613422886aae20f3
adfd881d76a3f5653e4e6f06aa826e171ffce10c7747cbad0c074635cbe6dbf8
01605b694656042d0361da653146d255794ce8f8b7f49b09cae444eba72991b2
242517fb9fc021a00638538a94dfd26742dd67ab57e888016e10ef9f565947fe
28da33f3846868431bbc94007e3056fab7fd9432ea0111fa54d52b38c67b69d3
163b189d83e8780d3d2cf3a11382067d3d4fe48d661857df8a14d484ef19af1d
74d167688249c4d58a6887ce8b57e305fe27e294ba527645c0dfa31bad638877
1b63eb176a5d064c09c65629558a9a58c3d08353e4dba8140afa76e390a8c175
f26709949aadd3213aaf546188bb6d6b3d3a6ef62377c161f987c5cc55462ee4
840aa83a7efbe3dc82b1aa6c9f19c90868f7fbb1fd8728cf3526cb5c72901438
1326aa21dbb79f30c92b220e64a35a794be744acccd144361160cb327f5f7a08
4579bdd78950ddbd990bfe206bcd0d096fff1e4732299ef2b0c2b36c2af5fffc
f3445e404ba59d2437825ffd19fef01ef766c18dd155a6054619a26cc3d126dd
d180c482115216ec2426adaa1970c91b9b2c7d02601f6f996259d568d582d94e
51d4e09d3175035ae1f454b964a7ad37684a4fb4f7b02f3b29611573e9dcf343
57740ac72bc87d21d49a7e6e2b59802bb9a9f2526a7b3489d74cc9ec1ef91d50
b2f64c15133f163d39ca0f53b8a0cd3993e7216f49e9d85c1ab5289e8f212c98
972924829e790ae6bfc5593557b8a2b5dcbc87b8c163f3abb43dde9f3da09c74
024a90b01d38b768a5384eb20d6cbbaea13ab8397591bdd808206e61973bc374
651fe4b83b0208ceed21fef89d719361e27388e7248b672a8d4e22452ba8c55c
cfec11e35a43cc2dc7a90d43ab69d9df883a3727edd1db3b2a5200707742555b
47d877f54fcbfab8979d08b09ae7d1d699dca51608e599d904f50d08f33aa9a5
69e374728597be3cb967bae6322c3c263d59f511adda29b55306b03e056893e0
9887bc5294381217d618db20d592da4eef74993aade251ad121ae5a1e8b62a62
c2d92d609accacca3f78642ed249995dae8ac0aa411f7156c6450a6ec34b7dbd
dc4a580262672740b35d5b76c2aa9166cdcb5ec6f097b5726dd602f505ee13b4
08b4ed61622a25b4c63ea534cfe09e1aeaa488f632a38fb3de857b512f831506
cbfdc4dd43b58bc9a64da25e2396382fb0419000a5e26601eb59b084e7a00926
02be60f3b220257a06464b9432cc2672287647fd5686280ad0c6144b2df5ea70
6d992282ca2e7801ad16b20d8159b92ca3362843569f251f351436bd6c13a470
c62097a72479e2d1abfb3f6b96605145eb0e22995cdf7d45bb8744935dfd1d14
42ee945651c0d951cec8b125e33904a0eaaa248276ef77aeddce782177f44e3d
b956b6b292c02a77c44f11d709ecb03e6cfe70134aedbc360d61dd608641a9cf
ac162866a0b4021f440168d83d5741ff88285ac90f4f06e448b09952b35353e1
ab23f7b3f1bac37bc40b5113a79df22de437938d0ad9117b5d9ceb9408fac0c5
4ea041826573aba9a253e29a76bb43e0eaa7e99e3e4f62a40d7350a7d0a66369
25cb8d4da88ae89aa46d201bce3fdb7eea0ad242491e27d469e76cd7ef0f424c
d8f50f5b3561b39bd925e3c1b0966f55fef0e05ecae265b79b9894448f7c44b3
8a387779c685f5bc032298eda4186fc2b8eea8af591b9864dacd9536de4ed9f0
b1ec2c5e46063aed7df659d2dcc1a7712fc2613df3af1d8cc1c3dafd94a935ca
6d1c27cea9d991072f9bf5983ce760bec326b22492187250bf6dc60e5e726368
f6a3022d0bc3b30f04129d55e88a10343b40479cac0eb8a0e4fc5cc5cdb41e90
d1cb1e45c505c3242263f74b0804a79e0786a2fa2e4b29ef189bfb0590daaf65
b258edf57964669f3f17d581d41b8f3bda7bff26bbb2a0961058b2897261de2d
4b9195cad869d63d8cb5c1c6739355af14bbabd77eb2b3be37360119f595052a
33c559bc736d05798833d8facd7825b0d5710877f1177be5215e2ef2c21ebdaa
a8aeb586a2c472daedca7a5442ffabeb60e1281b8b66fa49f557e674779a5275
8ab990a603ead42333426bafbe88d881a0e138b124a7b6303a440a0acea06eea
9f6bf2fe21e880d962b9400fed4b54627caa7afbbe1082c444fae7dc9322d429
a5d8dc401e83a5da3bbeb379d83202a5d11f34cfb18e3469c148078718c5b9a3
e738c8f104ab47b8b472b03b9be640181d60898996f6d4ad9c68389389624ce2
6257bbafb611075514effe779872ad0e3d921ba7536c37f5f5f1ab7bcaa1b1fe
ea90341578a9a452f7a513279f0b7a055abdeb3a4b03dbfd198e185cc5075945
8d2c0fcf7b009a7198d5d284520e417ec5e8ca25a95b58f5682f6c32ce68b8bf
d8c7a2ba04ce81f76ff2b956250ff9418b7f848a46c95702fb130f502a3cb18d
2ab57c81a98cba84c139c8bb7202d021236c51e1f44088c73beaacb1f7546b13
3e1153121ad78f41f51276954aa7be08b0b2cfebd28784b1e8d059e37785d919
b2e2d16d171c966c23d6946e1ef334424480a1990bdcea4e878a5cbd276452c9
be99b09b541234ec903437d95a2509e4c23d1361bfe830019bf88e9dd30182ba
ae21fa84adfdaa7ba7e4e355961df6278b7fa120596f6254a66d26e0f78abc4f
ddb537b2a7dd192c8f2e31b6a7e65241f2ff925da28ba35573f296cc1c11fb41
c04a3febdd819c80e32c3313dde27d63b4398ad3586bf297eea9c3502ddcec79
ee6cccfc5d5f47e2b31cc6a85d5bb5d72f8bb577f91b6b77595bad816ee25f08
1fba3e5940775e103c9cdc54d59cb40e0ee8a28b07eef86f7ff4da1d79c95782
c5ff45a625381105488684fba689900c090b445e63284416969eece8e8a92859
127f8ed0d3e9fd3f445b9049e5a5b9491ca9a058f53c5a19aee62111241f3141
c8c625c07371ee1f9cd209fafe7bf1642f9732597322b1de67cef1e6f1140bd9
5cfab86087caf1644a2d767f8bda655aebd0838e8bbc68a2fa8f66798fcacf75
751bada2a16123a84a6b48ae8a4c7c458b0d0de9e2398783a443f0b5c600537d
a5e59d68b43be8d742b0bda1410e37872c1caf98e8de1926d3230390ab3a36b2
21d2b1f374ec58a655a24ece826732ba58b201a5203bfd801b65c0fb3e162e92
5d3bf1ff4cb1498eaf16ec6c34abc9be90910a44629459db2fd8f01eb6723ab9
e133c7b3e9295491a9d49cd20e47de0d0a52095a81cd53aae2c1165ab055e2de
3de78a3c41a1d2b49db43b73a9b80c048eb26171cfa87f9425b44eff77fdbc12
28464186325ac0e2eaf144bc963d1ae190687049b5cd1edfa3886723c403089d
7b54e30c94c208da9a04e65a6cdce83baf01dbfa839ca38e0584afdc49b52939
ea55bc27d7584751b3d785d865fb89e369d8e4b7ba56cb5ea930cd4111ddc427
772374b6a8da58f03fbddf7b46d208c2aef3a49f88af205f09d4598fd4127666
de909a69387c572093aa24e17b7b5afa242f11e88f34366cabc74bf14bef0991
74012aa6c1b1a44d9b132a798bcae018e94b1dc020a662debe0c3902f497a741
afe65d3069039f72cdd63b5d975fcf7fd648ad5d2df678acbeef13e4266426bd
5ff0f4a8fa11b69d6b03f62cd5a73cf90187b15ebd5634ae9b5653146b98e27a
54a5bca7c6863356f546f727eaf9d0b219e7eec175ccd2065493b4cb3d87d3db
4693c44a565e623e8e8dadfd956e11cd1c68a098408a1ce78ed7f4571e0d3340
b52d14e958d6a4b4958eb7a0142d6b2aee80eecafae763aa20b6e5486ed3062a
7598893c0a04a28b7b93f4f43f03f8cfc70edb89f4005ecc9dc6140aa751f322
01bd185e0fe23bca530946ad48470d9f97d6ea2e762162f6bdea7a6af9597c80
f2cde78a71ce7f032def274fbe5814c7220190e5d0d69d47999e8dac4ddc9391
cf2e115d47fa7591006797e7fad3215541428ff53d5cdcafe106e8333312252a
f3166b767f34ad2129a6d1b895b179c24507446aa0a7fd59e400ac830b7c4f90
c52b825c423ea43af0cda28c1b13e96e909b7619ee80ef5018ef3ba7fe730c0b
7bcf6d9872f9620eeef967bf845d18debefb43f75c1d5d1a081bfa742aba2ccd
1f6fad0cb31484c08d1aa22a7f79e2795d865c556145b9280dfa263f89325475
a01ef691430819dffa9c461c8a565a2c30561d0d550da9883be12bf6dbf17425
6c1b49bf6b2c02884accb4810d318bebed768f1a428000509ad1117aca926b06
906b13abf1b1396155c214f7fdab2d5f7f719d1a60722f2af91f9a7b478af755
f4b469aafb3be89ae6bd6ed47eb4bca89cdfd48149944d3dc505b4af9ea2a3c0
0df1bc5a861419acab205a7dad6e374e92db8d1663b7a313c0825a998ac0edee
0e42b9efdd730f7b502e4ef820b8ee98d7049732a113c89b38ab7eef7b12cb93
fff6c557388e7296712bb5be15ba07f9a5946e6e915dd250261fbf6011d41e3f
27e35a6d014a521911276b02556f94262873617463671e0617ddfb18eddd409e
9bb3b3c7c97362129764fc538bf6973ae6a7e60eae8be5b9e5ba61133a50ab1e
85005eeb84365d3a89139d0c923ca5ea8ad1dd08ae159a52aaba3af639194f1f
977f66c07d518d7444ee0787ccff08cbe147d469fdaa756b87acb9b0e4357d7e
f6ef75bc31aa6e31d22a257afc8562d0d335b626a7a6ff2c577dff9c25c4fde5
666b8f87ceb075d510449ad0918c018477bc03d422fe660c93e3fba42ff23119
c686d07b0876d35d98f4a5a4bfba8cba31e81c9f3f0bc8e80a45e0cdc9544341
63774618b4fc4b950f365bddd049460992192b77291e9e7cb72d5a87a4f7e582
05ed0f1979bcc45ff9c04f983ec491fc401063092b2d22777a0696fce2f12b40
0e894bb848bcd6bead78d2849e940a25d54d2565a4d7a4d0c1f848e4127eb6f4
17da227dcf8febd10e842e122b9ecdd963e7b024577f27edefe4ec85490a836c
aa696cc2de5fb038f7ac48bf42433ecdd6257ed6772fd950d92a9835bb9e7382
3c42f289965f596c5e7a246ca67cc01bf219b2c1c3da7370e7fed99fd181250d
a447de7d965a94c2a1a87825843bbb3141dc4bc5c30030af7ddb62336a1ed36c
1ab2ac17543809044f7ded2666f6ace7bd8279f3c011be57214666fe647c1ded
e6efd8d241a593e74a0427cba647d6032b5a00ddc405f9514dabeffd4789cb3f
ae169e869d7c57756b1eed7092775209818ea3d72d1c923c5cdf4a8bdadae5ca
8941e1218ddf06ded2a3433e11fca48e3be5fa0618f402c50b15dd0e67ee8b54
0b642c24a721d14284341abb8ce191c0d7d5c6c4eb0027e1aa3f3ddc0029e72c
0e0435b3a268e14f05d710c7128949f567036e3673a30551d45e541d86b55d62
8ce5c04c4bf476d0442391756c59dc5593feffd594b1c2c4c825e6d6aa086c0a
923f50eaf5314878cc3e633eb3dcbb56ee24700d599056ed696575d24f495eee
6af6006403537a248b0d9fc1f70a9819be35c946142c72c92853398686a4d257
4a197da4f1c2d9e3199803fe7a16aa4abcf0848b11bcf3161d8adb9f7ea84a35
a26bbaaabcc7c680778ea255143c7ecd09a1614892ae37388e060dedd7a793a2
77433073063d1458aa1fc7836c2eef96bf6ed13272fb8e2613bfb716f7acb18a
b407bae8611aecf4e11ffdadce168313d3b955dd5006e50454c4e1046ab378e6
4400c55f15453b8cf9eb7b503ebe68b0892ba0400473f3b9fb3733ffe65faece
223fc7664103e50d9f086cc77c3a0f9e784958ad88114bbd646b889fdde1b013
e2a2efb2c2129a1356a0bbd7eba87bf4140ebda8effd1edbf948f4fe7ed835e9
5c2ac9ecce30551c988cc52f88456aaa951902c1f0e7a31981d19ca199fdae9c
8392027ede80fd8a1baf657f19c0d0d20829839fa61ae800524e9a2d896e5144
a06574ce91c063dfa36b472875acc9fc5840f7fea2afe81485448970ec5be10f
48588e9e93040c2d2996bb2ee1c74108144ea49d715da7db7d8cc5aac2072d54
06c643e511523ae5c47b07651f6e193fb0444c3fc9d695e0219d278876211dca
d82c7e39ab3387884a95668f060810960c15a28b1ee4eabe8e36ed4a06a8d822
9c960d803fc04eaeafcfb516715cad7b86c915e4a0f3412a1150ec22c286b798
4aaaedabacb091033d5d149361dcc6008d5e832c3a13c1872a9bafd003337514
49563060f7b3a84c487a5550838818faa865ed64008fd1ffc14c025b779b4253
2e344f5144166eecf7c2b6ffbaaad5316bb9b6e79f7dad129a94f30e79482443
c3bcc4ad04aaf84888ccf95449c3e90f1d89f9c1d4086d6dceaaa3d0f2d9a44e
4c7a9a6a7d538adbf995cb7cb8f6fe192407bb8df48a66f6490ea5fdc2acb4bd
5b9b0c265ec23e69c609467416253ff8348f49b3cf6ed6e2948a7f45ba8c5ec3
3b797e9f87f1b9c495ce918ea784ff5b85e8264ad5dc65a5029b4d41eeb5c21c
ad04c7972fd787de6ee41354da4aa9aded02fe0011eea309d07039168a6d984f
1257ec726a4436868ac9ed2e2ac98f445124cd2daa316eccfe1fd45f53c7f89d
b87b03cda0eabac22991ba691f235f626b32073be23ce5cdc969126c4e0ce69b
1031bd27265642e25e4524f5a70e8cc025a5099272bd0c38d433345c73ac543b
1cafaca4636f7d7401816283ab18b5b1735902625b9e5b3910400bfd17cf4051
2cb8a205cdbc64dc4999be287cb389f6362d5a26ee09899be0804b4fd5a06f34
bad5486dff248f3be696721ae083df52ee8b4c2f90925e87f5d8a8be9525fc73
c320cbf6fea0c21b6491f81438bef9ccf1785f0d4e422af10adc6606bdaf0272
e4bc12375a3ff8a19b90136399398ab8cd71a60139e5f2fc1d6d0086bc2feade
06766ab2692ce4cc34b1da2d2c96071d638f3ba8c617224c48743352ce6d6afc
784c5d0d11da7444c281b35036969cd677d44c323e43c0c32013811692607514
7d87990c9ccc5cd21e8cd791adc7695416b556c357cb3050fcbb489011002de1
c5574f725ae08f072461a2f0776e8eb306a3c8888ef45712d03ec906e6b03e74
56db8f8da56e6de651c17ded8eb60dd1307c6c00935dc31f272ddf3fadf9390e
cc706a3a7f3fa36778d6dd176018b6770fef2f9fa59b8e41dd45d2962562d02b
fd536b8c3ae0d66632d2c18a55f146dcbf48a9f586cb60049904c50427f0687f
59523e7ce368e9a94edbd16a4c5fe1d87576bfab78e9504f570fc128d2c028a6
620201b8c2d65472d2a678dc79b0c815a9e8af2c8afe92609debac486ac2476d
4831c338712340bf5f5784663ab40b55e3d5afc3eab5e881ab566d69adbce59f
8d41f5ca9e382100857413bdf94241dc2a51fc7f1f41d18d0029a0307b25370d
d0c39d79ad89eccde95dc295930c2952b537198ee5c2ab9e0be2de8c4b214cdd
e3cf1720d10cf61f2f5fd441aa6d41571e6e3127ec82de3136b1c4f78a03fb8c
8372254d2d02a86e732f8df812507e2b5bc3c1352ee8fd4b28cd1d82d129952b
7ae100edfc645f84498b8e236a9df1476326b3648402d71c15cad47ffef7cf8f
38c82b961f1ad721eb4c37b38c400d12f86d8c6f6ec34316e6bb8b306ad11780
0a77018f01574568ea44e5236840568c3ae27e07e7d1b8ce00bead190f7ad66c
840ae9832e4a9b3244f8e2bcc5f79cbf55ec095055502cab023cb85fd9eea765
f01eb526e5a9424be822d8c46c729ea84470e7d6b71797d24b44279c8bc813b5
d1aa42ee7b8b6c838262ef3ce5d6bf30e863ab9c2554e926ec965ad4f957d1a5
99840ea48fe513fb427333f530addeb9299e349deb27eb307a2130a73b562c4d
a10f38a32c86d7de50498213af468e72ba1fcdce21711f9517a626a9696cfb53
c3a9700108e84966a03df55471f5c733672ad389a4795ad1b3c392d9fabfe9cb
7e420d7c6408c5c2dd089a34c6c933c7d795b5260a1115d44381e646a6cc2bd4
aebc44bd64b2680d7bbd0a030178750e6f4c01e9556f5b412835e0e0ff384327
7d8ed592799739fce924470726ad676a8e4e7c6c028e36a0505f9391067240d8
72ef1b8101d300d4eabe65a82c61b9b6e585f01e22f4181816e17e2c127eeea0
e0a37f2420edb3759ac99cec991ea446b9ca2f980da39482587e1eedb962be2c
c977f46ef7fffb498f71dd3478878269ebfa0073ba38e3ac2c31f83a75bae99e
477f0c7150f390cccbedc54c49d84d1ecb1b099b3f0ea099aa1536fafbd0fc8c
d07bab031264696f9028538896b8cb7b2dbabf9707d1b7d866dd81965ca69163
55d65665e0358ae13b2582b5a533b0e98467b37ea2fe4fc82ebeb65318eb74de
cd38827a170f06f43f4f9099e8ff5f74e923f59b9691cf365080aa1c3474251e
7d39ea585786a6897f3ec40714fc50d39335ebf3ead2e1308a74b90adafb0ac3
c292e17d4a07c466b1f20bca7f0b9b4506bbf277dd0ad0a4d78610354edadf7a
ab2dbbbc3f652dbbb62dca3012c23c81fd341f44022c6429ad98139a3961fc2f
f276c3e2a056574453341ba2f44d9cd7f3c96d65aa50522ee24c3cbb2ce26b84
6824fc3349524f49249623e6cbe230bdc164e0af6fdce88e34eccaceffca9000
d2ea88cf758d525ddb2c16e12dac001a88a5ddc380d20958b4ecd853dd0436ed
fdf1f0db002411793210f18cd2cc4b54abebc6a1a4c9f05f92aecf8d239b8c08
f946190e0d4d40ef2118dd5d6dd650d3cda0ef5b75df61cde3a6eaf41e60ce1e
927f610b033019c08f47ad9326cc176d290351dc54aa9942e494b70dc104c815
c32ac363f8cd233d78f1bac6e796912872552108ff564658e5cc9680c059e9a8
2f3571b9b7719bdb05a5ebaeb0db83ceacf352a5922102eda66958a4363d8e82
3701ec0d29afe500570fc1f957f239e6499d93a66ed52128d062a4540a725257
f03dce6d8b67260a31d2e701b6f1ab9f4abddcc6e12464927aa1fed6e4ae8716
816e6b20046725b5fbe694897cfe103618daafdd949c54a87d8a5c263394face
d055726e7415a302f284b6a00c5b8d2f9c59d6f140279935c18bd7cb798d0e49
a3a216c84b7f4409a3631b5a48fa5366d0e07fa5896f9cef1a1e25cf20c16bf2
f2f25442f5a311f37fff39c7c61ffe8d5436567d1f8cf83c976edb5f92757615
1b3dd9e413eb0500693dda8903a77ddfc22716a9f2d40435c0e62733e9a1efc1
f82a64ed73eb572651863310a8b1a659f1bb8cb665018a6df676df6d0fffb961
225a487376fef9518c5afab135505667e5a1bb42364e838e591670eca4bbe4cd
c641ebb1331817e20622a29f8e42d7e7b451d104a0d9b0491ea174d121214905
6db7b61a9acfb45332f641210f600cc56dfd1df30eb2f6721d3ab20ab9c34626
18b6244c1e89a50460330ff584a521def94d042b1779e599c7a69ba526a4f35c
8ac95a65500438932e2d20420c7919b732db36cbea7c14f6b018a66ffcfdd50d
9d89e88c02336950f915693e121da09fe3b22851095d6d926000500ef726bc7c
53f792f41efc0cfa1735314ded918f3ef2df1e965addda0c26f18618894cd2ce
be47e5129eafa174289341a1309ee02096ddea2d038ecff6c03fec8d18b526b2
ec8a2da3e6bef40504a168cae3cfd7f790111b7dacb5bdbba9397a0b6cc652fb
cb68ce38fe9179b96181fb04af5febd90c4aa225a31b097509791773fc00d993
080223dadab789aea4c18b2141083a52b59a9c7c33357a4e84c0c1eb09b65426
e22b01bf58f376f9141187d5e03b99a1085c3d36733ecf81ecf4e1fbca652bbb
62970d0d01f171dcfd21be970c34365ad98cd5f60250f0a212167c650570d71f
a87688a759109b08979dbbfd4064a637040d7a46054756d1bcfde8dcc6cabcce
e3e2a12ac96c133f1295bde9849bd383b423617e7b6a54010993076f2cdca85e
7cb3245fc034f8ebcc18a966649a083700e0278bce8619fac86fd9269fc89713
364e4b29e7fdc055490c77c281aefcdb89a98647c0ca55d9e2828d46bbf2fc0d
c713de7ad64db3a23982894d3c0e564e8e68965d11ba4f4cd71e
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMBX10
%!PS-AdobeFont-1.1: CMBX10 1.00B
%%CreationDate: 1992 Feb 19 19:54:06
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMBX10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMBX10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 12 /fi put
dup 44 /comma put
dup 45 /hyphen put
dup 46 /period put
dup 49 /one put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 53 /five put
dup 54 /six put
dup 55 /seven put
dup 58 /colon put
dup 65 /A put
dup 66 /B put
dup 67 /C put
dup 68 /D put
dup 69 /E put
dup 70 /F put
dup 71 /G put
dup 73 /I put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 77 /M put
dup 78 /N put
dup 80 /P put
dup 82 /R put
dup 83 /S put
dup 84 /T put
dup 86 /V put
dup 87 /W put
dup 89 /Y put
dup 97 /a put
dup 98 /b put
dup 99 /c put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 107 /k put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 119 /w put
dup 120 /x put
dup 121 /y put
readonly def
/FontBBox{-301 -250 1164 946}readonly def
/UniqueXX 5000768 def
currentdict end
currentfile eexec
8053514d28ec28da1630165fab262882d3fca78881823c5537fe6c3dda8ee5b8
97e17cb027f5c73fdbb56b0a7c25fc3512b55fe8f3acfbffcc7f4a382d8299cc
8fd37d3cea49dabdca92847af0560b404ef71134b0f3d99934fc9d0b4e602011
b9cfb856c23f958f3c5a2fbe0ef8587d1f5774879c324e51fcb22888b74f2415
50d7401eb990d4f3a7af635198422283cac1b6cd446ddbcbd915db9bff88844e
784c6bf7389803d9450b0c21756a017306462c563d51ece66fcc9c831843ecae
1fefc1a232e2724f7baee428ae03aadb95c3035345c15e9922fe49e1f2cfc980
237316572dbc57064edac9b0db8913a5e2d45e97e19a91435ccf8adfc835b585
48e74b291446d689c7f2f8c4325e8356e974ae30c3e2977477baeaa33d141fb7
80f59351e84bfc88c87b3a4a1d25e168b9d134554f6a581378c7d2d6eca8ac09
045cc3a5e0ed86f147133f094029e3483bebc81cfde69942cf645ea20d0a2b64
5140ccc2f9cb4a3d969f4b0a79cd3329b440dfcff5285494406f3dd08d804c86
df191e57232f6f1f83df6430f214e03fa5412b1e13d83c60c52a698bc9a38159
19a64162af7b83a9468fae9507c6cb55ea80df8c696dfbc3296c663902d77e89
a181502627281181ac8624f65be9de5fb32f056cc7dd7cbc7366a91717b5892a
34ef6b441871c6993da3a81afc9bf70ff3842a21a29c0e49da1ccba37dd6b920
2702db510b8b1109acf4c27ee8d676bdbd16abe189f34a9b61532eb777457698
cee0561838eaab2d3939c5093afbb215bac433d1918c739b62566906bb2187f3
378521fb52e70c18886e1aa15f53a1f8a169528cf2ddd54c203613ff88e619f2
6c9c50c2c3b8b8c868a88afab1dc8472e7b6f3f992a161723a3c0904865a7c42
3281601eee91f35222c4a71f343739f102eb43145a47e4fac3bd666e4c114a90
5950618ecb1bdc29f90f6ebed1d8325fe6b52e14a8870e9b4bb088e585c71b91
493c12845a101937e3473ac5e9ae24f7c358f06d590d7618e1a1d5834d87621f
e3f5432b655eebd4ca61a7b00dde0aa740796ce88a43d1c6952f8d2ca63d30b6
dcbadbb0dadf13150a442714675dbe51ff838f2e47ebe8cd44f1eac6ae5b6ceb
0b07af03f5d3896ff935a198aa635e337e367e1e128d15e31afe3ffca8245e41
a3e17011340e49d52fa1e322b435b4f7f2f49ae01f6a319f68d3d786c24be810
1e1c975a8feb5dd7e4922e00e3a08cacae5a945e1e8f8a20f1fe9534153307aa
5ac7424759743e08af90b9bcca7447375222a66934e1e47f97f8985b0c694a87
1ee7eea9e0d7928e555a83f7456ba5f235a1b5ef8bad622dea313825a43446bf
0b300d86f38133965120d1dc43eb1118d1fbb2112412711a576c4cbbe90ca05a
8865da40d9bca6bf94a9dee1596b6ce5af218492f0f13797305d5ce027a15f62
e97b1a96f52bfdb35d7fb3291fc270beede6eefa93e4979c0133bf56ae6ba3f1
5780cd62e482645875d638a9a3452665b2f8c9428faf9fa1530a7f486ddeb242
d6b88dee354fe924ab2f20bf5c8b3c5beaeee1b9229a62cf12ea59d410305ad8
e012b5a77d5a7665def45b5d883f52a159754fe99a1408fd1e8fd65beaefc7c2
8e3394ec653526390d19da5f8b6b7234a2425bff7a8cf4cd6351abf48da208d3
fed9cefc442c571b71df8dd163cf5e8c316375f344437553d32a6138b076bdd8
97b615e64a39e2afe725cd3cabb9b2a1cdfdd6e6f18d274a1b24a98b004a12e5
0d27be92891efc019108526b6835ad5165a39fed620e9e00a1782ebeb525e37c
b6628b4203b2d029b113bc314e82957b9f1fa22438b7360aeb8ae88048aac7c7
6f7e21d717be26d3aef96ed9d3941f5dc39ef7142cd02ae4ef3490fd72b8eb16
34aab87d4de2a6f0fa4e3af8e9d019b06c0e393383036cee8079eb9f0a54f088
7d0f5ed56c987b89cc4e96152e27231298267acbde9e7e846906abd144dbb41e
d57991658ddc4db9e3adf0a7e3877adc6d9143666eae3f5d9f335b563b09ffe5
cb2845dff2c1c7f1ed7d09c9033a1e9ff7b925ab5e110a9b56b86b1a4b4a8d9b
698ad16e8a004424ed0da6e9e5a3aa58148d3b6d1f0b6036e79342631174d726
afcf4346ee5ea1e803d5bce9365df37e55b10450e6027c5ca7c5cb636c5d621f
df776a189d0cfb624c298546a5fd9905c426066c739358a038854213ed5255f2
d483ede1b797094ddebf8ee1353e4a271aa14fdde972e895b2fa207756f9e07e
dffb6b93a1a2cac6bf7b883d5d0ad260f21e90ba79dbb3ec383a78098b5ce782
6862b28b5febe605ee4fd23003317c465827e8a0b3f8ff46e56c56a2cb613070
ba268dca64be0dbc31afcce10af74ba4c9b38df3f4b115a3d23d1ea4c2a10e6f
da9dfa61da3ae06fa0aeb3d5e558e2eab409b1deb5968f57d7cc972bc697e822
7dd02f460e2c2e70be53daf6c658895206b78a8858017a53c5930caf5cf6baa1
f5ccfdece08ce7bd1d3be08d3d1ba662a84329658ce20e5f8652bf6785f4e546
e9bb19ea8067eec67d2f2a431cce90fe314a60c47e51e1e4cfdb70f7445c2262
8473a1577a055e0c423bdfb77d3fe40f0a22481382ddc9342689e5819f9e14b7
cc8b4737959b456300802076af07089a0f9468cd7d3d8e2cedd0786b4f0a7023
f9beffc8c2cce4806f314a3733e80adcb2d9b2e59c6c228cd3a70e5589c64354
e0a314ff26352e0a0a5376e99639886cecdee929fb9ee32f60551500db69b674
5455872aaf8f394e165c435615233baf358d126f449a962f71eb47aab7a283e3
59733c429ffe0c68ffe1c5cda6a7094ea4f9abf2d1371188e3a7e5b791a93d19
0fb2b234356a030f79dbe4d347578f1aea6d95f51ce08493bb90353345635de0
07b0df082acf70db381ee2f0bf9fa500f011b54a98cbed1db73adfb03e4977b0
9327582dedbfa68ed37e04ba2d5f7b1466b7f9d4e70ece434b4a3643253e57fa
7a2bdb516a5436c0816d254bdd103efa079c86ee8ac8430208e37b8338df4a02
56dda84c7ce67011d4ca7c96465b581b86896e9975842a6b1de23dc91d416759
233ab308340772dc91ae6f3de33bc59253ecb471db60380fc3a54ad1cdd1cd01
b18e2490aeb161a9fa1d6990745232fe3edd17765f20e1488e74a754b54987f0
f208a01511e19339da6e9da0e89245de71afa55439253072d8e789d10dd797a1
6f950ba04179e6ce90196cd9c4673332c1c000a5f167a6a14dfaa73f835c956b
25cb7b7bacc1d74d05031cb71fe71de43329914d38344306ed05b3bc44f64c13
a43942e96ab520f1f5cac7d40f4d0e857516ab084db689acbd35e799cc6c1d17
75e909b3e22809b85316cdb63fb1a9d11df78b9ea5c3b4a79fa4a912ada42b7a
6fd8e49174abd70d8f05fc70e13b50abdf0d3a97c7891710deddf8bb779e01a3
075457b418eaaf991d2a3e39b8a9b1a2e2d9d274bb1fa290dea299154059c447
da4d7e7049cc455a46875a3632caf15e58cc8023da97629c7f9d2d611fda4ccb
2f543f32e5e750933ff298dbdbbd74db195f0660dbbdfc1a530ca5b3c6186579
daf344ee1fa8ed240978b3f8bbfdf8c70c8340d082af36fdb637dc778b9e5090
bd0055144254fb5b3d54b58c47848fe443d748b0f808481df45a6126a005f20a
9772d80ac1075f9eac540dc0f1a9e437168bc21c5161fd21ead7094c06ed4051
d725f7c98fc97def5a65fd074e7224eef042578fb98ad045bc907dfb7af41f59
533ef83b13f55cf74b2a2fe328568550d2f3a1f36fb3f8d89e84e91691a8a81f
c577348609fd9de7e324f98085f9e0e371cbf91c1df559af87c116cb1d683d46
78c5349d2ed06f5d246618fbe0a1ebfb446c003a080bb7fcc2a5812db1892cb4
535813554c92feea1418c5a998c9fa8d357ccbdf9a2149a4eac926b9e93a0baf
481d681d061486c51ef828976ca6c139d39fdd5e5d16fe325a9f29ea26bc23cb
6da51586897f6154ab06f17b899150828494453088fb12325fb88bed894b6779
668e3e98a3f4b137ece63a64acd4eaaa547a8847fb4803e91b7c82c014fcab71
a94933016dfc417ae1a208160868318913a9b11d59254d85fa4b8ee920d34cd1
3673c2e734217b5dfeebb14348a8811d18abd0d0e3561336e20489d5df6e3d21
be0cfc54cc7ef50405b902d96f0a12a4b4a45218f51a0a2c0da8f84dc1e844e9
1155a3f73d606ef96bb5165d5509749e6f33738d5e26b205d674b12359c2bd35
25d1fcecd1ddf36ef9ec74d0c86e6674260de1cb74b1c6f2339303c15860c42f
72985eb266620e500a770120775952e6112ef193e8e4f25a7cc1aa964613cf12
7138e07a187791b32efe7abb311852c07aaa806ece0483e9048fd999c81fba03
a6f95aa3ad21a3b75664fc101c58ffb0b0825315e51866c54e4336cb02d9715e
eef4e2b91a41ac85f216a87d3f01b88e466057404746eda9eadc306c03ade891
921c1092a355ab8024a17fcde4f04206369d51805270516508aa57c47d064978
f0ecd039d140a6c3a6fc1bc31829cdfff6a04fe23ca613affbfd1d09b2adaead
7777afa157c1da4f1ab97928b5ed0d4b31a3109f5eaa9fab47b34d475e8b383e
92569327364470f931923adec8f49b50dd44fe2a345361deadc07c9cf48724ed
8e698306be7c1858fce8d2798d0030b9a8346ce65fa157f0b3f4c848d01523c0
c7b697ec184d5dde5b289466bba7940884d50274f14c74eb41482940450e7998
2eab5f33384ce9255b72bcaf28b22ae92bf5a407dbd862a4129728af4c66a20a
ad2c55188ac4410bc57afbe637399a19467257850d10dd109dbed57bdb76a275
34a9265655b54d7b06355a29ab8344924c81d8809d1629689712067003437152
6cc2706ea3522b4821f4a18ef964706c1d47db47217e2f7dbeb1b49d0f9276bd
bc7366a3635e6a10e98b1841612dcf07c15016336b61e17061436efca99546cd
805f070979a57d40e8bf2297860d6904858244317c1aba8443ec064a311812ae
5b076d6d31be0e6b07456c6c8461b635817f06f407f0ce7c6537e5fb1951ec80
0530ec5698007ec50f1f8ae79d18dfc8b09c2ea64d38eadc2bc29373b73b18f7
c8bc176961c8e5527523ead9bdbda1a30b8ed14259e81a28f7a66a58956ef862
364505fa7ba20767bae358ca15f1eb20cd5ee875e9e43204940c689c85d606fe
b05f219699a00c5653984f13c0a27ad11990089da34c39ee844247b0c5004712
2dfe06aada7684e261b8d8bc1f9bf91f138c2b7e2a63fb3ac89fe30dfd579285
9b4cb6d877704c0f0925e3c04f44f047c8c8b5b569a1c81f36895507b3ed1de4
73aa657cafdd52e4e12409b668cd099644211751c026330ea7587322ae48941d
8cac109a71aa18de0af40fa2a5df491d20545f80c09974f185c477daef764d6d
e41cc372d20a23b9eaa3862e9464b3e906827141f22cb0bb42e7c86c1565fa6c
11c56c7856968a5ff685714603377ab1d77a129ad296ee212167d3758180b678
c7e9f6be7945b344f0d73911fdebbd20aefead018f40a5c8c1ed0088299a5e19
e19e1b02d12ede97677968d58226cd9fb2fdb1ec69561ce3001b36058101bb8d
ef79c31e67c16efb78fa72f22382f317bd934d5bd1ba610163301d9478c163b8
8c0fb25357df6c13b680715365dba6cc16011eca912eca201c7f24c695b55108
5157ad5516f513d3cd05c1a88a227cab4556980def0ed1d6eee89cd46c7bb9ad
7ba71b409abcbda70b0611cdff5498f04a87898f2a2b68251f21c36063bc43ad
a45be9c5f21787960dfe43181a887dc82d206b92f902fe52555ea7b1a000dd6f
2d399a989a18e14145382b9e31571baf1956454d1b65086d2e42b7a527de78fc
ccea69133181689a0c059abfd5ccd1f62fe74318723e0646596193d42b110d23
b3555f875ee2a3c48e4fa32669ee33777248c89ddc13b392e57a1043b22f860e
0c1ad6fb510b4e73b6386914228449cb62b479936a1b40100d4d7401fdee470e
185967c6f713bfbe9657d17180f6c0718cb8b5044531df13eaf05284abcc9ab0
96653a6643696eb3f6bd8525e1487f7ff26bdb62510d2be1e046b6cc9d11e539
4bf4d46022538beda2e83bb2b9d963f732b970db66ea1e740a3911b5075e9db6
dc4c2072d1e44c1e235ca9d0cd72c5820ff1590abe9ab41c3149234e6869aa00
5913ab7fe0f1cce096160d0e0ddca720e599e963fd54168a468860d56dbc5cdf
21ed88528a2b4d7cdbf56d323a04a236147fc75aa81c5159805b8a742286b30a
07dccbaaaef7986b48280c67c53a84c6b92b8d0e171ce638f138b57f53868f56
db79a767effb55c55af577355cffae87253c7909a2a7a44747b23afa562d0e21
617788a1e03fb95d4e2b527ae4078812f5fcaaefbfc40e15626494da50fdd8b6
7655e05d0fad27db7473718422edc7e586226d2a7d00a489318518e869458b89
371cd4a768c73427aa3d781b136011353fc0ab21da0d388ff8f1014ca5ac5fb3
82f184bc261b66f8bdb1a8c2529f6af824ce5aa9e9fd8b14acb2ae9e1e041a08
9cfc53b40c04610b15d03dd8563320172da874cae06d3b1ff3886e469233e5df
fa2396d3ae2a3fea724d9a306a72d1fde1fd8a92bf94bac3170afaf3cc606c32
b34016d222e9fbc9f47d8856a5a46702271fa3a9d55fe70bcb73fb1d7837789b
62ca6a0f05ca8901abccba2b22596112f12c5f8a3d9067d0c2ad2f88c8ddbde5
c8737232ada9649142f19d63fcda2afa78e555e29456221d2928ba6f839695d5
f10124c2b2046c42a97d57aff262a76b7f60589518503540b6529b6205c9d8ee
b15182479d3a84c76c1b1c60b1422c186bc01faebf31ae465c3e6581cb133cf3
75f5d6a0eeb875bad73c89d646ed833e494b1831ff119e5fa1f7e6eea9ab53b3
7f3b61e495383e76335bf0364718b22b8775e544ef55149ee702abfe1a846aeb
19af8425f70a18e9c234301888703ed02ce2a5cb4f4a4f33b571ef1959543548
1eb1eb4401931d4d301905c46bc9feaa05c8b72470c874f4d2a5eeacfa78222f
6f9ae8054bc9188647849880dcc58c29f03874d95486dd82da6b51e1f6234236
63f01552ba12ca75ecac1729acc71f58901f5eeaf3bbeb2eb9835ec3a9a998a7
0825c0e74abf3232dd7652e6d19dfd8239ae50644ff552b9181a57adcf89d4bb
f572443bc85f718f7fcff8984c2793bf9cb9b61bafd3f7d88151ed29681ab34c
d3e3459e51948c9b3792dccc9d3eee884bca8a1efb1787359ef49d4879253eee
d42f62e865e2a95ba07c573780053bafec35cc68e0e92bd8c9a3f9fc20560c53
e4ec431ca6a119b915fbd715ffda2f989df955d3de603f01ee4886fc19efc84f
0aed0b589037b672526d8adbc5aca5af8a67599fbad19bf7b3fe42d721af0d79
e708ffbcbeee99b3c781aff11ccf90aa17145b092581d7c6da10219f4072b4f9
8c40aa0dc9555591875317dda5b94ba80941fd0c8a169763197e53d783545b72
9c407e10973adea12f8a00b00150285be5492ac969c5cd355df2ad7abf2b0ae9
754730e869709ca143da13ab4f09769dd19f2e394047bd225a5301fc4dcf635a
01f404679a16b5489e164d0ddd7d653e7f116a30893281249002bdefd286c4d0
4245abc183a302c0deb2a44b885c6b3dca3f798fb8c850bc77e1434a6f6165de
7e1cad48febb8f91aee0bc1016d81002ec453651ecc99fd1310615154fb83322
f5a88de76f8aef3d2bf3957a8e5b7ba24447b3914f98e43423915263a0b7bb41
6fee9d2937a62d8c1740efc082c0def38b2c9ef4a3fce5e1aaaf109b7df91d59
a119b5ceb335b3393a2f0dd4ce6ea7d3482b447c8223574025389797a8b2dc37
a14c493d7a642a3705f1d5c39ee6c6a717cc31ea542773fc4f3835db433219f7
29c20c1b52aed0a95dab759a2035058298232b193d101e2bdbdd10dbe905c76c
38e50a262d081f171b90ea596751c21ef61671208edadf10e1861e5c652c4e0e
1dc7b0e4ffb28968d92a289b5fac30b4da86ac7caf0266c1809ebe4a340d06f8
70a6176084b9180f6c27db104b5f3a5092e26916e15352876794cc2b2ee7e754
78fed0458bf4a1d22fc73f529fa39c55e2cccf267f1827901c94e0da8b72198a
cba1708d343ff7418c22fff6c10b5d350c88549d113eebb0326ddc5312b32910
9bbbb88329b13a2e47e323b53dad86d82c21512a61ee5f683d6f69e94e344f85
66c72704b216d568a5a7d0bcd553aca32bdf9a47ab1a1597686dff289228865b
dbbad3a890810040b1e5b0a76b5b63993ee58e128dab678411781d6f67f563fa
8ae21c3607e93b6c1b54ee3f70ea7679b6c0af55bf9c7ae3cbae4a6318ade0cb
cd49413fa2ca0bfa491b298d5b51932b7f0ec3039bcb854f5fbc611b79972c50
badb02b08321075e6ca954eb6e02dc42910d1fdabb0e47eccf16cb63aa4100f0
66398d1c101090f912f4efbdfa7faff95a076622157c76d00600f07f2a1a22aa
bf747fda89dc3f46317ed3b6b19cb268788a76a1c4d8fa617f5893fffe588ba6
8ba53c907c7b2f39e1134c7691ef2fb16cf08ffa99e4b750c00f25b7aeac9ccf
d8233aea56dd2d9522d6d3b405b52c3211551533b25771e4952589b451566ced
6b4dd14bab105b4fef07a4b526538058a6ea6f9e17059c2c335371d03b3759be
4a68dbd859e37b49eb5d3b6263040b8c1773ba67d6549fee27d2b2dda89429f8
3a9688d497fb413e9183635031fac5f2b4bee35da92d7cdab210c89e0f7b15b1
8e0e6650ceb7d99f8e9f5dea34522a5e2072a38447089b67f234dec0778d919e
efad9e2bf50eeae5c2a5d0d560eb3e33fc4edec60ed6ad68a00766042f2d239c
cdb6b9628daf95bc8f670056419b9b7829b7390d4f8c866023a8472111f6436d
600f72136e646bdcb66513f429000846e93ea93127e8153bbf6224121182e0db
8a9925eff85c6b62e226ab80d5bb3c486c897ea4557e9fe87be494000b9ad77b
4a002ead86785eda62445a36ea0ac2b61598f9daf3e3819c3068a6433e8eca76
da356513677de46caa57f4aa5c8b57a6d89bcbd8183d37b4be386bb320c8d56b
8ef87701dae22b658210a0b18eb66a8b49e2a5316d97dc5e286982b9d4cfad0e
093fa82d777b98fd4211737c712b7ac4d8e9cd3645f06fb5b78044c58434b6f6
fca2eeac88a561bcd68fec2068d217d1eeb11fda15674bc358042f64ecdb2e9b
4007cd5526344db4b59985a3ade8c2b943ca0ce8d9c446e8478b38e77f924b43
a76fb9d1dbfa66dbc35ef17180c25ac401c9a90db09c4bc5adfbc33cf5031cfa
43ae581c5d2e134003cb0a52419c31ade2542049ef79bcd865300f761405a5aa
1864b71b560077e3aad89622f5c522b7a751e1f92f56a2261dcb53c7f17aea47
c49ea04e341432513c672250da4649e1cc4fac72a2ae278442502f063ed5ac3c
8d27c4eba6a078f60e2bafb2c883872a866486fcad0cf9e62f9351ede8688968
0430b67aa11a802d01e83be287098714a2dfd4dda73757d4857e38cb035b4d00
110263c03db3680969e677d166663497dff9a20e298378535fa70efb77981c40
dfda9418440175e5db8334b25d78a09a43144bafc878908ac3adb536ea470def
c62716021c69d2eda7192289922a21fc7ac30ea03fe6cfecefaa2f400429d20f
25845e75183eaac40ec04738941c7e59f6c6fcbb8a48b34ac8fd8b6ef7f4112b
735c87bb3d1043476e4da59c06d14cdc1cecf2c517505b7a9ab3b3cec3b4a75e
c9db1f755b128af36adaff5a9817f3fb24c44f1e0ee74c16ddd8676551871269
756d85b2885ff835b0b69eb29d065d4b4b055aae4c43927494c1283f18b15d2d
7c45a9daa3c85bd643f3f7048411998b1d23e9e19a5970640d4af4d18f8df582
8bd6ee697b687a08f7c4447f804ac9969eb714cca985738b233d5a33cda3f6bc
10061087b7de1d1d392f752a88a0b6f47530a8d33cc41e6fc35b0a0224cdcc2e
fc722cc69daa5fa0e845257a3dc5f82b6fc9837ba763090b378ae5c0f9503827
d684d78e54852625f6f750425a615111ccb0641ed17041495df870860c7235b7
2e79b6946422f760c787f211d98c64ff99991670510873f7fc7b2b2f7f334a50
b53d66414e763152893fcb84c8ef801a57a79dd46b34601988b1aaa27508b6c7
38c38ec273b39da7df5e1a787a548e997cf2fd606fe97d6b42083c9e24059984
417c66b067067b6e8bd2ff2b8a4d660e999c2a780e38f0531283345223869990
77fddd97a018520dc311d3729e2d417511e5ac46dc709e08ae1dbc4c8cf60420
1109f9ed9fc2378efa2ce0dfb75a9264ae3d97fd65dde068a1804bc69a832a89
954a432be36781e8b49375dce31d3f4dc0915ad8aa89c38c7d0b18393bf7346c
481372d120aa1cf96cf8aa7bcbcbb6c0603e263daadf05ca40d9e58b7c3ff69b
c16661060e729224273f4f9c3c437711e6a2f3cc99b96991ec9c6a0148527333
2e72a0100d5aeb42c94a03ca20874bc5cf3cc8e3e97d26d9a68db08509eea2a3
db2ac8b677f348eb6bd18cdbd946ddab06d565e9f7126083d666f5122d5f90ae
2d3dff8be8a458a1d75843f8697b8c0fbc9cb576413248ee3a3d44b44ad00fa4
0f4a64702ff889d0d40991e04761059e849a8c1e70656f97e10186d99ad602dc
2b7a556ebcd7f16a86ea08ecc3ecbedc46d6236696aea1a49864d38d1340b7c8
17b9bcd7ef819b8329c9af3268b45d1527b6369541f3c75dad67542af26ceaf2
43b208fc0fbca07617cac4bd6f9ef75f8accb21f7e5b0f988e17a697f0b98f88
6c36e6b3b4649f9d6179d01b4c08ee637cdcecd1e720fcbaad90f55f7d40272b
04d8b107d58ed57f8dc2082c8971e8f03228d814bee0182d457261d6d6a684bf
45453d40b45465de511b043cec2fca175f5256fbdd0bb3df2f41abc8e1887829
c83b7c971d2ccac0a68bc7001418cb6098f349ba04106a1bd324040be9f9e8a1
2ab4f18db3809b71648a5b3909aeaa0c24a91d038368ef7a8094fbf7f84e151c
fd86a0e711841b88960966ca42f885a340016a7e70a6bb9b687e415aea2931ff
1ce9b9ab6ba05dff2e1090c616ed3aeed72f97f7f1238fe733bb0f545ad6cbd7
c2b7462d0874123be92af8034c06870c13048f2ef20dda4d9b89fcfc25a2a925
fdfd440182b4c30c86a8776393fedecf0cf73ca9c6d0eb8c3e9fd4b88bc6d470
5df040a58a0fbb70219102e9ce30d12c0372c39ceadeb5f3aefd0dd1c73874fb
0a86d9fc4d0e5c8f5ee23966e14faf412e9dcbd8474564766e58520057076f9e
19726b7df29395db6014b5d5f7873e53e93bf5712aae77cd43f7833e85a54baf
0d3317ef0705c2e6c94e8e1762598f9baa5cc13593f49cf88f602bc072ac96e5
dd16baa8b55c361ccaffcbdb60e2f89a22b88487eaeb52f30980cb73ff41d876
00b48b9555731e31588c0d67d556c2b8abcd5dcf8ce3e0ca2304c7f01a30317f
f022d8079e0b8eb1c2a006f93d52b8a56018f16bbe4956856264ec7787498fb4
3f20765ae8c07f1350d071f0d7b2cd7e59164f237dc359f10fcd7d548e5806b6
23238fb03c51d091a144e66d9b38c48be0760b28eb9d919382f9911ae8c7902c
60fc923c45896ec3a870d3fe7de8366e9efbdcc50c8a6e53a86e895e1566143e
31224534583c101aa6a4d013531140eda0964039723ea56adbd498e331d77cfe
159ae53e3709fb7e0aaf82b52d84527572a1364c9ae14b4b3befe98e151f67de
4134fb9ab2ec645a28e0d8c19f04e685e92a01355546882b855c664f3fe18f89
c9a373efd5d0884a74b1121b59e832dc06f195533b0ec7465c06e9a82fd5de99
fa61c9c4ed9641c53ae7a1011a696a02875a2aa06e3139a3adff96c445a03408
ea94291c25a968148103797f5dfec83c32e594b43c186001d0a2e3878308b213
7f7600fd22d2ceaa5dde2c0fe06c4f4885312e0e286b5ba1eb5ba04375f5046d
34a18de2dea066619546f0e5560188116b6e4fb8923eb066acb53d9a18f44827
879a924cd3c07e8de5f01a8095d493f6bc678048eba7b0e8fa8c15a17b7a4abc
b67cac502906fec47695bda5127ac06da4ce883a5f0d63cf88fd2a9b3dbe10c5
3e271c4e260ca16b6763fcd4b0d65c6a2754f805356de27619c3d33c5a94bd83
e4bba58def510cb6da54c58afcc35665939dd08642beee2d3f8233c7946f4a91
6ad59d5681db3957e55d1756a52a9093fdae9ae20ed5eede2d272f544612bc3f
da1c88470332c943c9cf409e0a04703cd0710007f7c61edbc05ef1f20d2fc3e8
316c114e211959d86f9e2ae22c9475d03183e1ee72390159eacf6c0f2c1357bf
0d8a4ddf244b1d8723408d410a62723823f68ef1522a5da0ead346e45efb7793
964e359aad95d6a73fe410a2ef68a3509cba46255acf4a246ceb8b26ab62d3d1
d23d35317d088d809d0661dcb0e49e2134a589109be596006fccad253f91d851
40ec13ee6500bf718b58f42fee221dc9f113a1642c38bbaf7e6f942807019a23
fda169e79ddafdb7b1736d520253a5bc16db53b243f210a1221835be1c9fa1a4
c59214c6e11007acc6ce8c4221245cdf7d0ce9e0fd3ec3e35e19b01e01aa8aea
5cb662587f631d3ff834e3524eb66d87156959a93ae5958b0df3e1846f9aa820
a28380ac8fbc843c9e4d0c4922fb3196fa355dbe756172166130ef33821ec549
08ee5e5266f61849eb90773152e186b383a5bc9c5df8e8bd3ade182d838b2801
0fb90a2c7d57803f2234746a7019b02f5e748fa0a40a41a0c11fef42fe5a056f
bec8ca82e51e84f872fa2b9b37234ff7d7659ffb3a382bd9d52704fa52b261e4
70ed4466bb89c166a20a7db9d21bec31ec2dead19b77b26201564886f9d63c0e
bbe23379e23ad29f0b59414c050cfd4c5469abe54b9d7132d6637fd1afe9d27b
ba1b245313f20d8fb553626ceedcb4a0ca0e0eab1d119fc2823e1d385b3da875
a6c27675657014d85db05e678abeb85a5a461ebf315689cbb4a72df4b28a673d
aee7548033cbef1b37fd93bdcc3bf2df241f0c38f92a727eb0a7808a55a5f410
550a8b0faaf5ce4013090decb5b10abbe90de200833b690a1e8f954b8093c8f5
48b5df4dd2d3b9f2239c1140274272c9e4b6b16552d581ea3dab8133bdd63114
df596346a9e22ad022607ef028916d1103beb227df3ce541a24382c952cac83d
a64c818915957da6cc087227769da0263c0ce929581143f72f46e12ef4a57834
4ace2c60312bbbd7c1e913d41946fd02adf66b82a5c60a52ecdaa3d106ce18aa
2da9b433e2fbff771695b7f390cc832f51400a259a13d917aca46b2ee235404c
90fe3201162dbb5405f9576589f0b85c3de67d1d7be3b5dc9cc6317e251e05fe
84eb664d5ba2dbdb73d2fdb055661f181c1407550cb11e785840ce2e355a6db0
649fb57702691fe2d977a3fca58d7343b4a069cfa9d2bfe45da20c04adf7bda1
7224e62b5967edc4a4e988d6ebb992a55f2b59826975014f47032a0e4e12b924
15338074711d26354b93ac405307284fb714d999dcba520bf42a039c7f9d48bf
077b8a5224cf5aed44b022f296f91100e1a2f3dbeaa056a165b245d3a9d147dc
04edc66646bf525f8079a800403ccfa033b66d52a4d618e0844c821e9886964f
a666bbf6b928a9f9edb229a6ac8d6d36ea6eac0b482f2db2cfffb46c8ac5ba9f
8b64d3711041b5c8e66c9ebbb3e67c657affc8e3d3de88bf6effacf263f795be
cd213f1240f3a3a8cd65b4801c7eb8828a5c2345d89a3902e2b52f0770635306
0f96bec9eb7478211ae6d3c061d163fae535d33e5b811d7d17a0007e5daca8ba
f7d6c345f9cc7d26f3014994f79a924bfe98d194b45639f498cb13b4a410e034
04cbb132ef724c858e4c97fe1527bf18e27b78033a0ac03cfca0ce8b1ecaa384
1f387111615350dff12b16c0d0334a5c19b03d71a5dcc27e5a3017519c16f197
ce50d26b626a4cf683f6999a6697ecfc8c2914fb65b7b88602848854457f4dbe
8be4559f420e702824268c7a3f632f726c66d8e8de65d859c3d74491bfc78992
37c864c98f70af34282ffb65d4023d5f126d4577b96602b7dc9b07d9640b98db
d49ba0875cc0f4ac01efe69d2c2a79b57a96de736732904a60eccda5ecd75c1a
8877a0f32d63fb95b378ba338d772ef84c1fefc244cbf99a8e06b28588b24c02
bf68a599950003e58afc8525c5dc6e3f3ef5fe975abdd6cb221e9452f207742d
5fc41e440ac8fee76e553c98a8f5336a8695a3398436109e55b101e855763452
e40926709d675d82cff2ea3653b3948531a24a3f1f48e07dbe2f809aa4c64cb1
a0f0d8272a78e13a453f01037301b86eaf0c5183050c50ef462e048ebffdf942
7e00ad135944bece975a77d7f66e871647dea0da08a9dc06430ac063c7a5f4e0
7464f8b41be29d05c9d3cd30d1ee52bd97c0bac81ce7530755fa0eefb716f93d
90edea2e3eb488c9b83eccbdeebd86af24d4abb58689030015e36fc6101147d7
2877d09299305528c74dbaf51c8c2288f03cf9f6f963d961851050c61193e7d4
fd32e7f5c744b33384fd5e9a714552c153dd1114b5674afb4fa98b410e0dd0a0
2e3d6a7b92d2e0b2cc1437f61c88e8d9bc0ec5a190166d1d3b21366480db3843
5b290aa0e4cbd0c50857
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMCSC10
%!PS-AdobeFont-1.1: CMCSC10 1.0
%%CreationDate: 1991 Aug 18 17:46:49
% 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 (CMCSC10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMCSC10 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 45 /hyphen put
dup 48 /zero put
dup 49 /one put
dup 52 /four put
dup 67 /C put
dup 77 /M put
dup 83 /S put
dup 85 /U put
readonly def
/FontBBox{14 -250 1077 750}readonly def
/UniqueXX 5000772 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacee583a5c939393e012707b47e0c1f
a47d284a1edc9d01a497d772bca8c543388e6dc0d1e2c4944740470e0914f65e
fb0737b0851b2ba713a9a00b36d07da6bcb52920b9b59efe587734027a3c5e65
66aad332fe6fbcced1417802822a3b81d6187875263d6bbda04bbcf6e4870fee
ad60f104bb3c5a766610dd11aea64a6b107b0b04439fa2888b8cc39232bb83f7
695aba81f0260cd5248b9e649cd800bcb325468c79ffacb9cd3037a112066957
7889d67fff57549064b985d67ede2fb03272083723541051ebe936eff01a4ab3
cd845d565dfdf25d9ddd2792db17f52f894bea484480f06c832140fdd6c3af0e
fef0584c6b78b5e2bbb9a752f10581fd1c48cb498a822afb18cddebba34695b9
b418010368fdfb7bf758d50f3af03360b81c776325c33c9c81130b1e1be840cf
68c71ffd091dccc0df7b507fe8953dc3836af0da08ff9ff3e9cf7288d9eb8baf
ffac546a0fd987ae8e0bcf7b759f4408e13524f478de5896d816cb0ad2904271
cbec82a5ca50f0598502b434ecd94531b4a65181b5b3afcb650904b15157737a
a4386f1a7f1252caf2adbd5c8162bf3b065c01ca471d520c884ebbe1b29f9549
134e285dea2fe158c15a08a744cdda00bb6c62158262e24702803d9e1dc1d3a3
1383085631154b077fc20488ee3aa03f47ed2766644330b94133f2f9389b99b8
96d3707d1c5bb227fd3bbdf3a6ff572bf07164107c7a1c0710a5c7cfb67282f9
c238100fa138b75c553d7cbef17e2292a320d3d86a6210e6e3a1e590b10dac6e
177094d5dd163db623d7b344478752f6f3d7d5b3fa92e6bc72dc6fc343d2f946
9153e3d14c5a6d6b1d9ca52947b789cb4cf6196a02973aff0b097333f8d615c0
a1726ab7e31c378eab77150faa28cce535afe3ae5798402e0223ef39b44d49fe
094a5f9559023c9671b432de8ce26dea7d2df616c389b5b604ebe4b1f38e4e2b
8e6b79553f7817a000cdc8801e5cb4528888d30e36e69b3f43335222507c7025
42fc863e51f676506fbb896d091c0a67012884cd0dc5cbd9713871d4750cc1aa
409a21436b69fbd72947661b0f1c7c33109ab985b6151dfb352427aaba4e9dfa
8769446025d1a21e9fd54fcf7b8fec10b8358d7ea904871c3fcb1fc8929bce71
ef4444a8b8f0cd6f35423b3656f38da905afd93e8d13a2d87cdfa2a8a6668975
b2a3e2a0a4371d62424b61e099c06f191abc5237cf0f733bf659a7d4be9d65fa
0521c9a1828d633b02f815777488fa6b5e2c11ff6f3babd5cae870fbbc0a87c0
c3b1cfc87223c26c4f02622a56b67a56c39e6f539f023e939614074a3a1d5633
d5c712b6edc3b678de983c0155854e989310037e655e6929a26759c736e423dd
3063786459048f2e768f0d1d056bd51c41b14594624bb9038d56ae6e35978f07
9f328347a494266ba9760b19d15200456d33fd9a263b2ec58dcac7e17e1bfcb0
da3adbe1a2dd377463533a78879f65fec261ee7b88dbd5a0bdaeb79161233ec7
ad3b3137b023b409a0858ce58610a54b59f23f23c77cc58ae55e579e331e651d
6c8ef9068dd03999d5189e9a7afc6dab423c13275e194e9a5e395eeac7c1c459
fb4485773cb15409abfefa0d7d0e507c5d04fda54d49f0a20c8e023607870dff
2c6e1f5b6a39ee1c0f8b26508edece2b692fea2f4040f339e201b9b3448851de
afcfd3b507fc0691e30ece5774d3ab6c459580e2354dab6cd4e13034bf965e77
47759d2a66bf1a2a19f8274d8428a001abe9af5eef7d6235f4103030f5237da0
2a66a5cb3e7de4046bd9a5c7a597d8047499d434237a86262ee0002e7e0a5e13
2745ebd55997159a3d42bc20711f740bf99a0b02b4ad14bc57c0b693a1ed2752
6a272cc3d5498ca60e7199f3220cd2f924f02e246a5ec01fe7da108a876811a9
09151d7028bed7009b97dcf7760c4d6e8e6e8d4bcc35f4c15fd57472187cbce1
62b65d67fc59f1e7f0a7efcf771dfed261e034f68dc2b72e4c326957b6aa7f3f
f0886fc2f9674edd8741c0b317651b22bf19ed1f945dc21031308aa43ac0fb4e
1f27354314a9ed6b47a7966127059b7e21424a7be1f401483072cbfe9f4bc5a4
02feed3a0e129750d6e7ae6f37ce4e73e5beecfe8e9ada322a63a1051dc8c737
26eb056caa66abb0e47fad710552e9ccc79e4f8dde4fa49e6965af51cb394c85
c41b639bb53e54bd27ff26d7e25316cd8d441ed0c41bdf0cbbad005ee414d96d
686c2156a4ebc51e1db89ebcb9c6278394fdbd09faa687befbdaef34cf79e696
ccb5fbb072a747f28b82a9a8dfc4d1c615747590ba36609a299335c62b891064
05d9142a047f63d01d631a6f0c92d8fd1a5b610d2d9fcd6f66d41f13c80c5b0a
c887c9b7ae81fd6e9e11b5569c53be684a00bbec2a2babc9d3b620f4978e1717
1f709374874e8021485521a156cae26a311d67901ccddf3738214ab4ae8151ce
65ec9733bdd9be4a7f3e37cf33b3ee38d7f89be51ac0d5f6b4d4c8a29e5693c6
6e40ad10e21aadc811ab5bef7018c3a7eeb869fc26e9d4cc5cdfb35dbc5e2b1b
c8677d99c95f1a558ca0991af9ffa812046737fe86037fe488178db6e1abfff5
c791fd7a6da2e2aa1df0c469daa7f015aed79d26cc1ee91f73b33ef014c34380
d0600c570ff1b6f7ea07e733c5a94a51dbbb085c9be2a3a42bf6a321178c560a
cd928e75675df64ccb63094bdd37e803ee1e603d62ff1daa0ee30d7399b63c15
ee13d418ebfa564481bd9ba93e0641417d5dd3a650a2918ee0fcc41fc70db6bb
d21acc02981d7f948758a9fddd031b2caf414906d258ef714954402bcc6c7404
d97b2785c0295f976e9c539769c961ce6a8423a1a908c274320b4d01413b03d5
d6b05a0c3d596c201ddd7e17ed1e2520a4b2e300fc65fd2e4793d7a9557ca47b
bba3a8243bcdd9d1b9dd295dfb93e78eacf8046379baae86474d7f8ec6153b4b
c5f42804aae73989
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
%%BeginFont: CMR12
%!PS-AdobeFont-1.1: CMR12 1.0
%%CreationDate: 1991 Aug 20 16:38:05
% 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 (CMR12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR12 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 44 /comma put
dup 46 /period put
dup 48 /zero put
dup 50 /two put
dup 51 /three put
dup 52 /four put
dup 65 /A put
dup 67 /C put
dup 70 /F put
dup 71 /G put
dup 74 /J put
dup 75 /K put
dup 76 /L put
dup 84 /T put
dup 86 /V put
dup 97 /a put
dup 98 /b put
dup 100 /d put
dup 101 /e put
dup 102 /f put
dup 103 /g put
dup 104 /h put
dup 105 /i put
dup 108 /l put
dup 109 /m put
dup 110 /n put
dup 111 /o put
dup 112 /p put
dup 114 /r put
dup 115 /s put
dup 116 /t put
dup 117 /u put
dup 119 /w put
dup 121 /y put
readonly def
/FontBBox{-34 -251 988 750}readonly def
/UniqueXX 5000794 def
currentdict end
currentfile eexec
9b9c1569015f2c1d2bf560f4c0d52257bacdd6500abda5ed9835f6a016cfc8f0
0b6c052ed76a87856b50f4d80dfaeb508c97f8281f3f88b17e4d3b90c0f65ec3
79791aacdc162a66cbbc5be2f53aad8de72dd113b55a022fbfee658cb95f5bb3
2ba0357b5e050fddf264a07470bef1c52119b6fbd5c77ebed964ac5a2bbec9d8
b3e48ae5bb003a63d545774b922b9d5ff6b0066ece43645a131879b032137d6d
823385fe55f3402d557fd3b4486858b2a4b5a0cc2e1bf4e2a4a0e748483c3bcf
5de47cc5260a3a967cac70a7a35b88b54315191d0423b4065c7a432987938c6b
edad3b72ad63c2918b6e5a2017457e0d4ebc204a520640fd7c4d05e35ea5486f
a43d0e970787203855daccb1ed0b16325828b13b7c767a1a58c87902f0546ea5
404440fa6526975783c2d7a9572b8e5d5176bac598b8960609f49016aebf3763
89c1adfe6a1ffc0c53b3acd9d168ec3a278fd4f1d9b085dc2df701346c9d0887
3d230a161692b42a45bb5da343b4edd839dd60685a59aaa49fc65cd8e2ad2a9c
5cab953495172a1a9f40d5f38e922443a519dd96f667201a408bd1d89e35f4ab
98e2f68c3366efc14b5afe1018d9c845d808d4f8e07ea8168518a171ab4d6e21
70eeac099eb7ef46eb9781384da1fac3b3133bb718bc80082eaea88759745188
f266b31d0c7e791d633f16ed94e05517a32163e74cbd96dc5db066f2a5313d6d
7f09465608cb404613e0f058073af000e5bdfafbbf9da0c0d5c02a3447f2cdc1
f56481901e34265c26d331ac3f85bdcbc7c51ef9eddf2b9c189c5253f8e74282
d6f053d7d183ae17ea175e5ebc401e67d21a9fea139cbbf3bb1358c713a75843
b39a69aa2b1a7b975f53ff22d1dc3bdf7acd17afa1da21568310c68241b31d3d
03bf404bd30baf9cc19c75b958bce7155f03cb0cfe2cae0327aad4b603284a51
7c26de75b8c6f6aaa9debe4aec08ca4b646d787a9dfac85b2c01760e9c6c6162
fbbc67dbd0796831e00c477d8e23c375ffab46d289be9d2328aec2b7534ae4cd
d782ec2453e7787f6e6b4537b46c01545cba6f90b8e9a1bccac1937bceeaa5e7
8e9f368ce067a0a31da98bfbb545be555a7270f0031fadd4f9b186629e5d2c5f
d264f8f24cd5a1c0f68399ff4b29fd77c4a54d829652341218c7522785705c63
5058ac5362a64878052fa7ce4f9c6b28286b95ef9f21123e70b658e63914ca17
28b505238e423171c7e867d36f436186953fa19b1c437b8860872ba9d0ad4423
e667969627c01ac6c280d3e9147a1d94cf8a06251e1bd673dd30653b8f3739e0
cac34636a541f503c4bb4d1b26ba6967d14968cda94eff3c40688ede304d8ae9
fff381fe80e2ba12b13f61472b8a983130fec334cd70a9a67833ac9e87246642
4ce681334d9762910ba3edfd5e8cf6636d7ef3c382d2b6255ed42f4fbf6daa00
d277281785375ab644ddb6ff8907e0f5f83220fe5c64365a112c015a3139e534
a8b75b8a6b42c654f5504a24131655c528c5944f0f2a82643ee9b3f7065a3594
5b29c478995e9f7d81683f149892acff37bc410278e3017b5570dc4c0ab2bc73
41515c5974b159f05a7dfcdc02ebdbecf5df5ca9982874aa0aaae3e9bf3e34c9
71340cc8ec4dfe7a29bbe1f3f275043097233bbca9b9931a57014969fa554885
de7f9cfd14a5c01c4ffe3b3ae42add2bf59042ea15ca3cd6e74bc83a2f1ad0f7
a52f3ef9df1ae9d7639932a08cfefca0cba618efb81cb69c8b08c0d1a9677100
8f6b3803242c126601d3d3f519a326f5893b07ffe109e3d8a69110326649220c
986050b50632f2b7bfa6b73d6fa173b2c5ffbe0fbee1792ec6fa3df7f5076f7d
8c0686999c54c19cdc678cc07d07a07773447637c984eb3a8e02fbc983212dbf
1246fc3f3b259c51d1117e8e45f9866f9f2b945b0bb65328f5368c5d3db754a6
63be6acc495efde8cc345a3ea6bae4205bbb09625e52070d0fb26bf95489d986
2e60b817f3257ae0be89a9b30207ea3fbbb5cbaffa36d952ad2f5641a005a74c
ff542864feed5be681253858cc48b0266a5340d66e9702f5ce0d093b62593aac
15b8cfa9bc7c443143438af2a92831f405cb73e323ce40041c2b091d123227c4
c40d3ceee8acb4e5876cca703199d99040caa436d1084f1d55d6af9bb80e09ab
d6a4baba2fb916ce0741bbe9de8a65e4f4ba68e86b67cc9881a521d3541655ba
5d4eaa763433a6b7eb8b879f0050e419837e9cabacda386ee12cf628182386c3
aa15b2f67d3b795c53f728a88e09fc16077a2e3f494436f9b78c8804997d24e6
8bd9a2fdc60103fec5306dd53a3c8637edf57e8795aa245cb51c8f3a39be33ae
b5a602500ad351580847d5361c54553098520937727fef57a21e894ff94a4839
9d3a9b791d1b4d92a1b1a42c93ca441582e3158a70a75fe17a360c07fca9823a
97f6df7714f24899621d8fe7dbd989bd2955fb944bf424a0b6f8174e8cfec467
0877053b602847779f2c83d1f54292a7319e65171179c08345b93b8a642f77de
982379273627c2084fc1928cc7425d3520dfe9f33db7183e2197c1722cdfc075
d05269a65d5185d00206427b376266a90618a76a889370dd11a91ac418e86ba1
920f75e9dba2eb338eb91a339bdd006de44067f2dd12d2c2f183d24235178cf2
c4d187065d1a86eb056b76524408902dacb21929f9170d90ff2e64612f4e5b25
6a95057aba8420be4d58027a86071abb75903ca6ba10bb3dcdc5b3c6dcd6bb1b
371d66ad40c40b133329359e2a1ec5a4f1a16738b13b05c1bf9650f2d5b68263
ef66ef1d37e344db4f03a8dfae6511ef80f4fcfa20529ac3d44310eeb333d3a4
69b027c13fe0acdf005dfe16cf424f6aa711fd1d3ab8fbad973a3ca5cbb2baaf
e8bc79105e1a0860f80efc67c48a403746913ec77ce49e471e0bc8fc65649046
b9b2d4577301f60852d52984a3abe46675a7ccb260852a5ea7e77721ce6d243b
b3a2da13b44f3b6572b3dee4e840ec0639db289d579f56101e3d951eb353ea28
6286acae79b755b609a685debbd35d084177373ebdb2346692883855c1af38ec
230401cb4128e44274eadaf8aa80ac7ed0d8fe31eec073f58375aada97f1211f
7caab5f744eeb0eef2befdb371ef27131048e5f37f2645b3071b78f6b2d1892e
8a4245116a9be656771787ac2d426bc0dffd350b345ff47a6c462faa25c00377
d4e4b22f9731fd7cba4843f3bfbec124db441cd7e02cbfea86079c862b66fe30
095fe05aa34c7eac97c6834b36288bc3f953d22b043a7b607d4540849bb1d99c
014e57157c9d5a7985a4f0d2a72e4172e6bfa938b74a887bbaa67f7bf927a539
9500b91b087253ed94fb156d197948f1fcb67f6d91e14edff96bbd609b9d00be
4e8cdcd9e0a7d16eac9c48b5e075bef512044cce24e6cdadcfbd289abf86b576
b27c106bf051ab17b1186ea01af889c90a11e7045c025a62aaf1530649f9ccdd
639a4b305e601527055d3b0b11ea9353941a427f868e475b8191424a6a7969c4
6d9565a8c35bf5135c159c459d93a0063ed6b33cfea17e81ce888a18acaec4af
2852e17aac51711dc0e8183e30f891f19872aebfd78d277021d79824d1bc3996
70ed7d93239a1787219ee4e1cafd73634d70df8f9b8b343a3c8b5ae1300d7686
b17dab818ac80d16dcf47825aacf0c553fb03ed1f4a7cafc0e8d8b74425a59cd
c4e673c28444e738af5371d5a0ae0094f820ca5ff3b0eab6484dda6333f9c081
8f53959b9343a28b4ec4bfeeda6117a218c7c2551211fde812729c31e7af5aab
061cb837713e1b930b40e76165625acb6ab0bf5c3a3eb900e4bed6506741f745
ae591cdefc5b25d019070792e2d58d971d250f2b2cb9164eb8f98b5a50745e57
b5d5b9d4abfa6f8cec6253dd07717e20dd395443beba48ea57b93348509fd8c1
ad12d9271f367c3916876becbc8edea0df6ee7c25fa99ae0b3d1e623f4712a05
d6cec8befe1225f31efcdff2d88db750c4908cb6f6a06a9258f4eb5eca444ed3
1df3b15562e32532a4fc990fb8b05b23c2f8c45b98e2023dec5eb3dabbd85c23
92d5f2a6028b01689948d5857d24e68065ff46939343d8c57ccfe2e85935f093
25640cd7e0fcffec9fc8db1119d95c19738b21b8c0a6e87bf1c10bea063f376e
3c97322723c0e0dbdfbf21fe9d02bdeb25d6c439d83b3d5202d2dea8a9979d78
a32c4c57c41867cc8813c71c9d2f46d6f5a5eafa17fd4867d58ec524de5c2610
b7a6a5b5e6746b8c1693127134d65a4a37b04171b40e94c004b9c70ef8046862
87328697f78ce642e8eb9b0052190bfab15f0a917c7d35054672bb6a4bde4081
fe3afe1f604bf907b7c27baee57bbb8477aa9117ad7875a35a602f9e8999f5db
fe2e421216e0a9e9c7416f2fa562ac74743765353142d9a6835e0499c1e9b475
9cfbcdc38cc9376d37a84ed5fe590f8832ae325d71f3d5bce2b51ab82ed203a4
829f163e220b6b1db4e6ad19389a45f209ab655b914d014981086b4c8da15dc8
aecdbd3ffc3654294b08faa722b4d06497f7037c17a97a58b66eadd9b8e67ced
9eb81268f3cd9beb4ea5e2ef225606f05b1e1337f88117a23b47a7bdc3860c9a
d28c433f33a98579c9d54fb1751f44c46616243660a5d60025660c4bf1e78b50
e856e4657ede337223a323790c894629dd37b5edca1ee1ec8b2fe20b2793ae6b
e406ffd52281cba520236a9d83d7ebf93438de9c92666a432e1febed560a8bda
a25c4be86e4eae7030ed22556b0da9e37b014897551c2b5cc88597fdc80cb8cb
8ed2b23a0e7e6d3b10ae6f12b5fc6fa6ec3f88b43c1596acc79bd1890a265701
5565f6340ad4303e24bd7328fd3c3bfb36e3a6f392e3df8d337864e5f4313f16
a4fe58d96e378d2830104d040784581bfd6aa07bed4143ede073117e5c7f6b41
35f84102cd1645b7caceb190c4994e1a59ab0f9928d109af80bebf482638e863
3187a964914219ffe2fccb5ebec3d006a82894057d1e36c636addaa24d593169
b9886aae86b81e0777c503c07b3fdd04a9fadf886a7d5448141c3998ea330a44
13f690d696e5f14b8360b617c3b248359d19ca9273288099536496c98257de8f
e3c9a3acf56e2a8e4e1b99e74618ad0802a100bb820eb88a9b19460bd117ac9d
18f0b90a281cf2ee85fc086fd8a40b4fe7e1922c9c79e608ebf8feb0fc41e320
94f4a76e882d31b0f9d07ee8ac3594722acca4009e9896faa99bee8c9b66264f
d23d9c814bcfae7bf323a532e06fa006801c8134d726c71b57ee3dfceaf978e7
3216166fe55b067c8ca660e1cf9a474ad83e020c61ce251896daadccf1e15747
5626519463bee996d47934fc4a052169ace7c8cb032064698f201f153763bd9f
9dd353a95a9c17c9c352c36c5eae9ce75e2a4940ce2379f6f01f073338d80221
f125d3d276f6679515bc4e4956dbb550399bc4439218a73484aa53a93e1fde4a
03df0c1b4388713d46d63ce5e0c299ef8f9157e52134b1249317438ceef3e71e
cfaa4b25c0162cee22fb27389c3dda57d54d1c2f1235e2d506de942681ce5a3e
a8345b224dc86771764a21c4d0e54d9ad1fef84700ae9ed8731e238d7ee37f96
2653b6f17e56b2236c99ac08397ce462b30546999f302dc3509c7c608a22597b
c1240b4a41b1171aae6e9810d3aa70e422eb730310383b23814db3fdbd45b659
107d2e269836fa18b0f5174b6d864d47cf9c5adb428e1f937b0569bd40d44a9f
d438e14ad6e15ffa1b8b346477549ad59883d040d48252cf52fbeb0100c128e9
f89c244b3d8252047c1391df82670584017fe7ae240bed52bff7c000c7c00ef8
ddb187c9bad264ca54a3a9a27185879fafc582a5ece358b67d90daa40161f028
46a241c9235211eaa3f75266d8183ab81d292a7319314837e73af83a1ecefb1a
7d60041f5ae2b52a83bfa8ee507bb395b28e6da9d2a597b378f19e080a9bc664
32d54bd4610d505916548c317a8841380523931718eb49ed846ab1f2da47f3de
de1de4bcf62157fe369ff9efe5673267f96e7b3a61230b031492adb57151aef3
29887ed7669bc748f440eeef020e164748dd1e1c1b69f72722095aa2a695c628
855ed251f5173c0885d08256dd6c7b77e481e48ba3701c29d8cbb6086d27cde5
440ac313a676e1f7cb83bdacd8544a4cf6a9d2abfb696a07310c989132c188f0
86ced2a58f970666a2b533cb48da667423498b234acb385940c01d245990da0a
c7c1916df5c32f7f88cbecba5890fb25fe98c6f12e47daf644ce43d13579491b
f91e175a094712c5af640f1680e62ae833e1b7381e4c73da4fbea8d9d093c2ba
a4d04c1d212b8fa67094d4224123e7ba8fc005dc07002cabdd33ff014727d5af
a117b3cbc9c4660a89d691699dc38e5b0df0b2fcdeaf168ba5007f70a6b25282
c469835a3af0efa1fc908e7d66013f5eb1bfa6518fcd510fd38471266804c7c6
b704e4339d129b0fb9cbb368a83b915f8348f5158b221aced46c2852e9b44681
bd58435e02205c24181f16995c9bbb45f836d822aee301533556997d10b04a5d
86ae38567567648a4596b3cbeed4925aa3668f5824c5b920026174ea29927306
6aa12aa26c2cb20c032af895a001eb14e96825dc168627e6f2148fafe3718fa8
dfb8fdb828b6d13d1744082cfdbd411aeddfb6aaafc8c638139bf900919d5e92
4e87c16ece86064852cf62fd23e4c5d821145e333c9478ddf6a602b6072031b2
a27ab754eafa1fa8d4af7c0a150f86b48027d5792f96b5828b55c6ef730be8ad
ab30f0c50ed23b95b14e1a9cb90050ee27708b706da0874af75f8040f48e4740
dd8e7597115591386f6788350f414b4208d3ed55df89c5924327c518ed07ca52
1442481ff3126bc065c1c6fa5df0939b5db1caacf9e3d5a8ecb040c8e996bcab
896c76fb09561d433d71270b3266f89ef7bb8a1da205c51eb446c702c697f0e0
7978c6435fe04fb38cf852e6e7122058e218b41a53ce5afb6b3b88b810c1b0be
0eac10e5641a48c6a4d24d273cc2bae104d2963c365ebb1088709282726311c5
6ba30dc24829659edbf411a985e44e2eebe08198d38f92891929a2663beae888
955d301b11978cf02f3ae4a5364674369a34563349785eae2e4930de975c6573
14ae932dae00827e0b13e040ab0d3f8da8537f208be01f4284806a49ca09b9bc
901bca0dc31438460114c2fdd96fcc39648e957bed170689246932d5d9f3e572
8da0d1c60cc3ad5cdb3b05583c0fb97372af7cf1c5fbde12a0e2ad2c73f8d300
571ec348e4dbf6dd037e115579332ee03c6535c3133e0c761eaafddbc088f59f
c599b7655831541c3e11841d81663c8b96508e4801efa827d81d3fbe82663a10
b0ed9e4d75dd112568ba8d10a593ee855ffba23c8a97bf65c6317459fb496d0b
2bc41b201b9e125b1e6557c844d0eca06c98fc064878a549ceaa3fd8898d0d91
c0634f0e4521565ceefa486e71555129338b8baf1ea23f0f73f67a1446cb452d
289bcb35f9bf11da2544d764baf42bacc4122f4899579d47603729450bed5d46
076cac07e6e8a2a22f1a31486c99160c55d7fffbcffca9dcae4d0a380b5fb407
ecdf1065222282b63aa29ba077c2de0044ffb08fb1ffe899739d1b492df68064
710397981b0fc68ac751aadc00e7292e913cc75bb8fea7a73c047de6df46c71a
c2e7b3e1ecb9cc2e5946bf7e53a97ad3e981d9fb21759ab89e53515a95726b66
8df77a8b46192856f4bb4187b36fe0c230731333bd578b84eca7136e27d20b77
dbddaa166bf0d46107ceb359af1a0dc752dccf2658ffda4b2abbbc5ea4b37334
631d67707e29a39fb86daa6a2f4ce0a185003fb21b7f5d009dfe2ac352d209b4
5c0a089adf00b88adc26865ac1693b5042215d2551b75f69a0796762f5f96bf6
c365eec6ad60c92962ca45186b0e433ee3ee9a156f0b2000c62dd5e8dc1dd38e
bb0d70d05f42d3aece476456fee3021ac5b64827b5c066e3e3b346e9c25a6d91
6519afdf624518b16961d05942fafc9eda911d0c9012bacba8a2439ae932115c
2783b5d334308fb364e4bf2184e0ea64f02b81848fb218ade64fe3de156fe480
3046c05dea740d8c47b5813f1c8148b06505e8f70cd768d4a64ca0b3b1d6c6e0
1c66c31c4dac1f598a2d7e28688fcf6cbae52fc98382b5dccfe33fcbb3f60e4c
76edaaa18282edd466ba337e9b52e0ac77750e89f4517a3d00c46f7b5507aba7
3aa2103c5031f28b73693d4683047c34db2ae3bdb9c1e7e6859364e2203a77a4
a4186c66c1e3f4c0315bf632be9838b0a58d2514e7c7178f0b0620eb5c64818f
492f4f725757322dc0c1535282d2a65c1500e2e8cc51abbe5bb9ea6d5048738b
cdee705ace201c1cf2812f3746a4fa4f974c15dba0f4342723840064f3146a83
1ab0d98fab6978ae7b0a54b3c91fe7842890195bb73a10bad4ff26a44d5b050b
4e6bb5ae2158c3cd0cf1ed4babd936c2ecb40968f0f52fe290f202173d99ac82
b237fa84d8a4e042dc17925e52b71e6904ed4edd9adefbbfdf97afb323e13ca2
1764a5c9cdc742aa33d3b44b66562072d6fe95d0a76fd85ef7d627d09426fec4
40c059db73fc9ef630ad466fe90e32341e9ec1280233cfd34b75660dadd0f603
0d050dc19437f3acbf86b6cda4071b718d4f338fdbb4d0b8b28ad1ebc20a558c
1edb7a3fe0f110e897e208f0b787824d4d5abd2d57bedee27e83f736f8eb6ff3
2ff46dda47189adb75d24bac54c15482ca5db69f3bd00766e8502081740ecd91
f515f136b332c1fc24f362eab2ba6f52c2a769802a589dd68fd63732e7d56cea
d73d6ff111a24b7ccd29b915bf08084d10074656b4cded1c8152c875be68e980
738353c1cb9df3c1f18d5d15fd2397d7e4dbd1c2d120e49eddbc1f015d
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont
TeXDict begin 40258431 52099146 1000 600 600 (main.dvi)
@start /Fa 133[28 4[37 23 28 29 1[35 1[38 56 18 3[35
2[32 1[32 1[35 97[{}13 58.1154 /CMTI7 rf /Fb 138[43 30
32 28 2[42 43 4[20 3[37 43 37 1[40 9[78 2[57 3[53 1[59
9[60 68[{}16 83.022 /CMSS10 rf /Fc 145[47 1[21 3[42 3[42
1[38 10[83 10[52 76[{}7 83.022 /CMTI10 rf /Fd 146[51
109[{}1 41.511 /CMMI5 rf /Fe 206[28 49[{}1 41.511 /CMR5
rf /Ff 171[38 16[36 18[19 48[{}3 58.1154 /CMSY7 rf /Fg
134[44 44 44 44 44 44 44 44 1[44 44 44 44 44 44 44 44
44 44 44 44 44 44 44 44 7[44 1[44 8[44 1[44 2[44 3[44
44 1[44 16[44 44 48[{}34 83.022 /CMTT10 rf /Fh 134[35
35 5[26 3[37 8[30 3[33 35[51 9[33 33 33 33 6[26 26 38[55
41{}15 58.1154 /CMR7 rf
%DVIPSBitmapFont: Fi msam10 10 2
/Fi 2 33 df<126012F0B1B712FE16FFA216FE00F0C9FCAEB712FE16FFA216FE00F0C9FC
B11260283A7BB933>15 D<1938A285A28501E0DA01C0130F486C4A6C7F486C4A6CEB0380
486C4A6CEB01C0486C4A6C14E0261FBF80D97F7EEB00F0263F1FC0D9FE3F1478297E07E0
01F81FB512FE486C6C48486C14FF486C6C48487E296000FC0FC00114FEC7267E1F80C812
786E48C912F0DA1FFEED01E06E4816C06E48ED03806E48ED0700DA00C05D92C9120E61A2
61A2481C7CA253>32 D E
%EndDVIPSBitmapFont
/Fj 135[38 7[34 1[41 59 2[27 23 3[31 35 3[28 17[53 11[50
3[52 1[52 20 30[31 7[39 20[{}16 58.1154 /CMMI7 rf /Fk
149[23 32 32 42 42 5[51 55 55 9[45 50 15[44 9[46 46 0
0 3[55 8[83 6[42 83 11[65 65 11[65 5[65 23 65{}25 83.022
/CMSY10 rf
%DVIPSBitmapFont: Fl msam10 10.95 2
/Fl 2 33 df<126012F0B3B812F017F8A217F000F0CAFCAEB812F017F8A217F000F0CAFC
B3A212602D3F7BBE38>15 D<1AE0A21A70A2860120151001F0033C80D801FC03FE80486C
4A6C140F486C4A6DEB0780260FDF80902607EFC0EB03C0261F8FC090260FC7E0EB01E026
3F07E090261F83F0EB00F0267E03F0D93F01B612F8486C6CD97E0015FE486C6C497F0060
90267E01F8011F14F8C7263F87F090C812F091261FCFE0ED01E0912607FF80ED03C06E90
C9EA07806E48EE0F006E48160E03785E03305E92CAFC62A262A24F1E7BA55B>32
D E
%EndDVIPSBitmapFont
/Fm 207[18 48[{}1 49.8132 /CMSY6 rf /Fn 151[36 1[30 102[{}2
49.8132 /CMMI6 rf /Fo 129[42 5[47 1[40 48 30 39 37 1[42
40 50 73 1[43 34 29 2[41 39 43 36 1[44 35 6[48 69 78
2[49 51 63 3[67 1[57 71 1[36 69 1[53 61 2[63 62 2[65
42 65 23 23 18[54 10[36 2[47 2[50 1[48 8[53 11[{}46 83.022
/CMMI10 rf /Fp 135[44 60 1[46 32 33 33 1[46 42 46 69
23 1[25 23 46 42 25 37 46 37 46 42 23 2[23 1[23 29[65
1[23 23 1[42 42 1[42 42 42 42 42 42 1[23 1[23 65 1[32
32 30[65 60 3[55 58 1[69 52{}46 83.022 /CMR10 rf /Fq
139[24 29 4[40 1[18 2[22 21[40 9[27 73[{}7 66.4176 /CMTI8
rf /Fr 135[35 7[35 13[35 35 97[{}4 66.4176 /CMTT8 rf
/Fs 138[47 33 35 31 2[45 47 72 22 44 1[22 47 2[40 47
40 47 44 9[86 2[62 3[58 1[64 9[66 68[{}21 90.9091 /CMSS10
rf /Ft 188[37 18[19 48[{}2 66.4176 /CMSY8 rf /Fu 204[30
30 30 49[{}3 49.8132 /CMR6 rf /Fv 135[37 3[27 1[28 3[39
5[39 35 1[31 3[35 35[55 4[35 3[35 35 35 35 35 46[59 1[{}16
66.4176 /CMR8 rf /Fw 145[45 3[25 35 35 45 45 5[56 61
61 2[61 6[50 55 15[48 3[71 5[51 51 0 0 3[61 8[91 6[45
91 5[71 5[71 71 4[45 6[71 5[71 25 71{}30 90.9091 /CMSY10
rf /Fx 138[41 2[32 1[36 1[43 62 21 37 29 24 41 1[34 33
36 1[30 37 9[67 8[56 1[48 9[53 53 2[55 1[55 20 25[44
4[31 1[36 5[41 8[45 11[{}28 66.4176 /CMMI8 rf /Fy 129[45
5[52 1[44 52 33 43 41 41 1[44 55 80 1[47 37 31 52 1[45
42 47 39 39 48 38 6[53 1[86 2[53 56 69 1[58 1[73 88 62
77 1[40 76 1[58 67 2[69 68 1[45 1[45 71 25 25 18[59 10[40
52 47 52 2[55 53 52 4[37 1[47 51 58 11[{}55 90.9091 /CMMI10
rf /Fz 129[48 4[48 48 48 48 48 48 48 48 1[48 48 48 48
48 48 48 48 48 48 48 48 48 48 48 48 2[48 48 1[48 1[48
6[48 3[48 48 48 2[48 2[48 48 48 48 48 2[48 48 48 48 48
48 5[48 48 48 48 48 48 48 48 48 48 48 48 48 6[48 33[{}59
90.9091 /CMTT10 rf /FA 134[59 59 81 59 62 44 44 46 1[62
56 62 93 31 59 1[31 1[56 34 51 62 50 1[54 7[85 1[116
85 1[78 62 84 1[77 84 2[67 5[70 74 1[81 80 12[56 56 56
56 56 2[31 33[62 12[{}41 99.6264 /CMBX12 rf /FB 134[44
42 60 42 49 30 37 38 42 46 46 51 74 23 42 28 28 46 42
28 42 46 42 42 46 9[91 68 1[65 51 66 1[62 70 68 82 57
70 48 35 1[70 59 62 69 65 64 68 6[28 46 1[46 46 1[46
1[46 46 2[28 33 28 2[37 37 28 19[46 6[51 56 11[{}61 90.9091
/CMTI10 rf /FC 134[71 1[97 71 75 52 53 55 1[75 67 75
112 37 2[37 1[67 41 61 75 60 1[65 12[94 75 100 5[81 2[50
2[85 2[97 96 102 6[37 4[67 67 67 67 67 3[45 45[{}35 119.552
/CMBX12 rf /FD 133[34 41 1[55 41 43 30 30 30 1[43 38
43 64 21 41 23 21 43 38 23 34 43 34 43 38 4[38 7[55 43
57 3[58 1[48 2[28 58 1[50 2[55 1[58 7[38 38 1[38 1[38
38 38 38 38 1[21 26 21 2[30 30 5[38 20[43 43 12[{}51
74.7198 /CMR9 rf /FE 134[55 55 76 1[58 41 41 43 1[58
52 58 87 29 55 1[29 58 52 32 48 58 46 58 51 7[79 1[108
79 1[73 58 78 1[71 1[82 99 63 82 54 40 1[82 66 69 80
76 74 79 6[29 2[52 52 52 52 52 52 52 2[29 35 29 31[58
12[{}54 90.9091 /CMBX10 rf /FF 128[45 2[91 45 40 48 48
66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45 28
40 51 40 51 45 25 2[25 45 25 56 68 68 93 68 68 66 51
67 71 62 71 68 83 57 71 47 33 68 71 59 62 69 66 64 68
71 2[71 1[25 25 45 45 45 45 45 45 45 45 45 45 1[25 30
25 71 1[35 35 25 4[45 25 10[45 2[45 2[25 76 76 51 51
53 1[71 66 3[61 63 1[76 57{}96 90.9091 /CMR10 rf /FG
170[74 1[56 5[90 9[71 14[50 2[50 50 2[34 45[{}8 90.9091
/CMCSC10 rf /FH 134[51 1[70 1[54 38 38 38 1[54 49 54
1[27 3[54 2[43 54 1[54 49 10[73 10[76 50 3[64 2[70 14[49
49 49 1[49 1[27 1[27 44[{}26 99.6264 /CMR12 rf /FI 134[62
3[65 46 46 46 1[65 59 65 98 33 2[33 1[59 36 52 65 1[65
59 12[85 7[73 4[92 76 2[85 1[88 65[{}23 119.552 /CMR12
rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%PaperSize: Letter
%%EndSetup
%%Page: 1 1
1 0 bop 697 1067 a FI(F)-10 b(oundational)37 b(T)m(yp)s(ed)h(Assem)m
(bly)g(Language)f(for)h(Grid)1664 1217 y(Computing)1106
1483 y FH(Joseph)c(C.)f(V)-8 b(anderw)m(aart)33 b(and)g(Karl)f(Crary)
1590 1624 y(F)-8 b(ebruary)33 b(3,)g(2004)1592 1762 y
FG(CMU-CS-04-104)1396 2497 y FF(Sc)m(ho)s(ol)d(of)h(Computer)f(Science)
1407 2610 y(Carnegie)h(Mellon)g(Univ)m(ersit)m(y)1519
2723 y(Pittsburgh,)f(P)-8 b(A)31 b(15213)1750 3224 y
FE(Abstract)0 3436 y FF(This)i(rep)s(ort)g(describ)s(es)g(a)h(t)m(yp)s
(e)g(theory)g(for)f(certi\014ed)h(co)s(de,)h(called)g(T)-8
b(AL)g(T-R,)34 b(in)g(whic)m(h)f(t)m(yp)s(e)h(safet)m(y)h(guar-)0
3549 y(an)m(tees)c(co)s(op)s(eration)g(with)e(a)i(mec)m(hanism)f(to)g
(limit)h(the)f(CPU)f(usage)i(of)f(un)m(trusted)f(co)s(de.)40
b(A)m(t)31 b(its)f(core)h(is)f(the)0 3662 y(foundational)36
b(t)m(yp)s(ed)e(assem)m(bly)i(language)h(T)-8 b(AL)g(T,)35
b(extended)g(with)g(an)g(instruction-coun)m(ting)h(mec)m(hanism,)0
3775 y(or)29 b(\\virtual)h(clo)s(c)m(k",)i(in)m(tended)d(to)h(b)s(ound)
d(the)i(n)m(um)m(b)s(er)f(of)h(non-yielding)h(instructions)f(a)g
(program)g(ma)m(y)h(exe-)0 3888 y(cute)f(in)f(a)h(ro)m(w.)41
b(The)28 b(t)m(yp)s(e)g(theory)h(also)h(con)m(tains)g(a)f(form)f(of)g
(dep)s(enden)m(t)g(re\014nemen)m(t)g(that)i(allo)m(ws)g(reasoning)0
4001 y(ab)s(out)c(in)m(teger)h(v)-5 b(alues)26 b(to)g(b)s(e)g
(re\015ected)g(in)f(the)h(t)m(yping)h(of)f(a)g(program;)h(in)f
(particular,)h(the)f(re\014nemen)m(t)g(system)0 4114
y(enables)i(a)g(simple)g(but)f(e\013ectiv)m(e)j(dynamic)e(c)m(hec)m
(king)h(sc)m(heme)g(for)e(the)h(clo)s(c)m(k,)i(whic)m(h)e(w)m(e)g
(predict)f(will)h(greatly)0 4227 y(impro)m(v)m(e)40 b(the)f(p)s
(erformance)f(of)h(T)-8 b(AL)g(T-R)39 b(programs.)66
b(W)-8 b(e)40 b(exhibit)f(a)h(translation)f(from)g(a)g(clo)s(c)m
(k-ignoran)m(t)0 4339 y(source)31 b(language)h(in)m(to)g(a)f(form)g(of)
g(T)-8 b(AL)g(T-R,)31 b(demonstrating)g(that)h(the)f(t)m(yp)s(e)g
(system)g(is)g(expressiv)m(e)g(enough)0 4452 y(to)g(write)g(general)g
(programs)f(in.)159 5157 y FD(This)22 b(material)g(is)f(based)g(on)g(w)
n(ork)g(supp)r(orted)g(in)f(part)h(b)n(y)f(NSF)g(gran)n(ts)i
(CCR-9984812)h(and)e(CCR-0121633.)35 b(An)n(y)20 b(opinions,)0
5249 y(\014ndings,)j(and)e(conclusions)i(or)f(recommendations)h(in)f
(this)g(publication)g(are)h(those)f(of)g(the)g(authors)g(and)f(do)h
(not)g(re\015ect)g(the)f(views)0 5340 y(of)26 b(this)g(agency)-6
b(.)p eop
%%Page: 1 2
1 1 bop 0 5227 a FE(Keyw)m(ords:)30 b FF(Certi\014ed)c(co)s(de,)h(t)m
(yp)s(e)f(theory)-8 b(,)28 b(t)m(yp)s(ed)e(assem)m(bly)g(language,)j
(distributed)c(computing,)i(resource)0 5340 y(b)s(ound)h
(certi\014cation.)p eop
%%Page: 1 3
1 2 bop 0 91 a FC(1)135 b(In)l(tro)t(duction)0 294 y
FF(The)42 b(ubiquit)m(y)h(of)g(more)g(and)f(more)h(p)s(o)m(w)m(erful)g
(p)s(ersonal)f(computers)h(with)f(connections)i(to)g(the)f(In)m(ternet)
0 407 y(has)e(giv)m(en)i(rise)e(to)h(the)g(paradigm)f(of)h
FB(grid)h(c)-5 b(omputing)p FF(,)45 b(in)d(whic)m(h)f(the)g(idle)h
(cycles)h(of)e(large)i(n)m(um)m(b)s(ers)d(of)0 520 y(mac)m(hines)35
b(around)e(the)i(w)m(orld)f(are)g(tapp)s(ed)g(to)h(co)s(op)s(erativ)m
(ely)h(solv)m(e)g(large)f(computational)h(problems.)52
b(Ex-)0 633 y(amples)41 b(of)g(this)g(increasingly)h(p)s(opular)d
(phenomenon)h(include)h(SETI@Home)f([36)q(],)k(F)-8 b(olding@Home)42
b([15)q(],)0 746 y(and)26 b(distributed.net.)39 b(In)27
b(eac)m(h)h(of)f(these)g(pro)5 b(jects,)29 b(h)m(undreds)24
b(of)k(thousands)d(of)j(participan)m(ts)f(do)m(wnload)h(and)0
859 y(install)k(sp)s(ecialized)g(soft)m(w)m(are)h(on)e(their)g(net)m(w)
m(ork-attac)m(hed)j(computers;)d(this)g(soft)m(w)m(are)i(runs)c(when)h
(the)h(ma-)0 972 y(c)m(hine)26 b(is)g(idle)g(\(either)h(as)f(a)g
(screensa)m(v)m(er)h(or)f(as)g(a)g(lo)m(w-priorit)m(y)i(bac)m(kground)d
(pro)s(cess\),)i(do)m(wnloading)g(problem)0 1085 y(instances)k(from)f
(a)h(cen)m(tral)g(lo)s(cation,)i(solving)e(them)f(and)g(sending)f(bac)m
(k)j(the)e(results.)141 1198 y(The)e(grid)g(computing)h(paradigm)f(is)h
(though)m(t)g(of)f(as)h(pro)m(viding)f(a)h(means)f(for)h(lo)m(w-cost)h
(sup)s(ercomputing,)0 1310 y(since)g(the)f(net)m(w)m(ork)i(of)e
(participan)m(ts)h(\(\\The)g(Grid"\))g(essen)m(tially)h(functions)e(as)
h(one)f(en)m(tit)m(y)-8 b(,)32 b(a)e(parallel)h(\\com-)0
1423 y(puter")25 b(with)h(a)g(v)m(ery)g(large)h(n)m(um)m(b)s(er)d(of)i
(pro)s(cessors.)39 b(Unfortunately)-8 b(,)27 b(the)f(e\013ectiv)m(e)j
(cost)d(of)g(using)g(the)g(Grid)f(is)0 1536 y(still)30
b(high,)g(due)f(to)h(the)g(fact)g(that)g(problem-sp)s(eci\014c)f(soft)m
(w)m(are)i(m)m(ust)e(b)s(e)g(installed)h(on)g(ev)m(ery)g(no)s(de)f
(that)h(is)f(to)0 1649 y(participate)i(in)f(a)h(particular)f(task.)41
b(The)30 b(use)f(of)h(mobile)h(co)s(de)f(tec)m(hnology)i(can)f(ease)g
(this)f(problem:)40 b(instead)0 1762 y(of)f(requiring)g(the)h(o)m(wner)
f(of)g(eac)m(h)i(no)s(de)d(to)i(do)m(wnload)g(and)f(install)h(new)f
(soft)m(w)m(are)h(for)f(ev)m(ery)h(problem,)i(a)0 1875
y(framew)m(ork)30 b(can)g(b)s(e)f(set)i(up)e(in)g(whic)m(h)h(co)s(de)g
(is)g(distributed)f(to)h(participating)h(mac)m(hines)g(automatically)i
(and)0 1988 y(executed)27 b(under)d(the)j(con)m(trol)g(of)f(a)h(sup)s
(ervising)d(program)i(running)e(on)i(eac)m(h)i(host.)39
b(Ho)m(w)m(ev)m(er,)29 b(automatically)0 2101 y(executing)35
b(co)s(de)f(receiv)m(ed)h(o)m(v)m(er)g(the)f(net)m(w)m(ork)h(is)f(one)g
(of)g(the)g(most)g(ob)m(vious)g(sources)g(of)g(securit)m(y)h(problems)0
2214 y(imaginable,)d(so)e(this)g(form)f(of)i(grid)e(computing)h(m)m
(ust)g(b)s(e)g(conducted)g(with)f(great)j(care.)41 b(More)31
b(imp)s(ortan)m(tly)-8 b(,)0 2327 y(it)34 b(is)g(still)g(v)m(ery)g
(costly)g(in)g(the)f(sense)h(that)g(it)g(is)f(a)m(v)-5
b(ailable)36 b(only)e(to)g(those)g(p)s(ersons)e(and)h(organizations)i
(that)0 2440 y(are)c(in)f(a)h(p)s(osition)f(to)h(gain)g(the)g(trust)f
(of)g(the)h(required)e(n)m(um)m(b)s(er)g(of)i(participan)m(ts.)141
2552 y(The)26 b(ConCert)g(pro)5 b(ject)27 b([4)q(])f(aims)h(to)g(lo)m
(w)m(er)h(this)f(barrier)e(to)j(en)m(try)-8 b(,)28 b(and)e(realize)i
(the)f(vision)f(of)h(the)g(Grid)f(as)0 2665 y(a)f(sup)s(ercomputer)e(a)
m(v)-5 b(ailable)26 b(for)f(an)m(y)m(one's)h(use,)f(b)m(y)f(remo)m
(ving)i(the)e(need)h(for)f(established)h(trust)f(relationships)0
2778 y(b)s(et)m(w)m(een)k(the)g(programmers)e(of)i(the)f(Grid)g(and)g
(the)h(o)m(wners)f(of)h(the)f(mac)m(hines)h(of)g(whic)m(h)f(it)h(is)f
(comprised.)39 b(An)0 2891 y(imp)s(ortan)m(t)30 b(part)g(of)h(the)f
(solution)h(lies)g(in)e FB(c)-5 b(erti\014e)g(d)34 b(c)-5
b(o)g(de)7 b FF(:)42 b(an)m(y)30 b(piece)h(of)f(problem-sp)s(eci\014c)g
(co)s(de)h(receiv)m(ed)g(b)m(y)0 3004 y(a)k(host)h(for)e(execution)j
(is)e(accompanied)h(b)m(y)f(a)g(\\certi\014cate")k(whose)34
b(v)-5 b(alidit)m(y)37 b(implies,)g(with)d(the)i(force)f(of)h(a)0
3117 y(mathematical)28 b(pro)s(of,)d(that)h(the)g(co)s(de)f(will)h(not)
g(compromise)f(the)h(securit)m(y)g(of)f(the)h(host.)39
b(More)26 b(precisely)-8 b(,)28 b(the)0 3230 y(host)k(o)m(wner)f(sp)s
(eci\014es)g(a)h FB(safety)i(p)-5 b(olicy)41 b FF(that)32
b(all)h(incoming)f(co)s(de)f(m)m(ust)h(satisfy)-8 b(.)45
b(The)31 b(grid)g(no)s(de)g(implemen-)0 3343 y(tation)38
b(\(called)g(the)e FB(c)-5 b(onductor)48 b FF(in)37 b(ConCert)f
(terminology\))i(then)e(rejects)h(all)h(un)m(trusted)d(programs)h
(whose)0 3456 y(certi\014cates)g(do)e(not)h(pro)m(v)m(e)g(they)g
(satisfy)f(the)h(safet)m(y)g(p)s(olicy)-8 b(.)53 b(The)34
b(most)h(w)m(ell-kno)m(wn)g(v)-5 b(arian)m(ts)35 b(of)g(certi\014ed)0
3569 y(co)s(de)29 b(are)g(the)h(Ja)m(v)-5 b(a)29 b(Virtual)h(Mac)m
(hine)g([22)q(],)g(Pro)s(of-Carrying)e(Co)s(de)h(\(PCC\))f([29)q(,)i
(30])g(and)e(T)m(yp)s(ed)g(Assem)m(bly)0 3682 y(Language)j(\(T)-8
b(AL\))31 b([26)r(,)f(24)q(].)141 3794 y(ConCert)37 b(is)h(w)m(ork)g
(in)f(progress,)j(and)d(there)h(is)f(a)i(great)f(deal)h(remaining.)63
b(This)36 b(rep)s(ort)h(describ)s(es)g(our)0 3907 y(plans)23
b(for)g(addressing)f(three)i(particular)f(observ)-5 b(ations)24
b(ab)s(out)f(the)g(use)g(of)h(certi\014ed)f(co)s(de)h(for)f(grid)g
(computing.)0 4020 y(First,)g(the)f(safet)m(y)g(p)s(olicy)f(should)f
(not)i(b)s(e)e(o)m(v)m(erly)j(tailored)f(to)g(a)f(particular)g(source)g
(programming)g(language)i(or,)0 4133 y(w)m(orse,)h(a)e(particular)g
(compiler.)39 b(Second,)23 b(the)f(more)g(direct)g(the)g(logical)i
(connection)f(b)s(et)m(w)m(een)g(the)f(certi\014cate's)0
4246 y(v)-5 b(alidit)m(y)27 b(and)d(the)i(satisfaction)h(of)e(the)h
(host)f(o)m(wner's)h(in)m(tended)f(safet)m(y)h(p)s(olicy)-8
b(,)28 b(the)d(b)s(etter.)39 b(Third,)25 b(the)h(safet)m(y)0
4359 y(p)s(olicy)33 b(that)h(grid)f(programs)f(are)i(certi\014ed)f(to)h
(satisfy)f(m)m(ust)g(go)h(b)s(ey)m(ond)e(the)i(traditional)g(territory)
g(of)f(t)m(yp)s(e)0 4472 y(safet)m(y)-8 b(,)36 b(memory)d(safet)m(y)-8
b(,)36 b(and)d(resp)s(ect)g(for)g(OS)f(abstractions.)51
b(Among)33 b(other)h(things,)g(it)g(m)m(ust)f(ensure)f(that)0
4585 y(the)f(consumption)e(of)i(host)f(resources)h(b)m(y)f(un)m
(trusted)f(programs)h(is)h(limited.)141 4698 y(The)36
b(\014rst)f(t)m(w)m(o)j(of)e(these)g(observ)-5 b(ations)37
b(ha)m(v)m(e)g(already)g(led)f(to)h(the)g(in)m(v)m(en)m(tion)g(of)g
FB(foundational)j(c)-5 b(erti\014e)g(d)0 4811 y(c)g(o)g(de)p
FF(.)60 b(Roughly)37 b(sp)s(eaking,)h(foundational)f(certi\014ed)f(co)s
(de)h(systems)g(are)f(c)m(haracterized)j(b)m(y)d(op)s(erating)h(at)h(a)
0 4924 y(v)m(ery)g(lo)m(w)h(lev)m(el)h(of)e(abstraction.)65
b(Since)39 b(a)f(concrete)i(pro)s(cessor)d(represen)m(ts)h(programs)g
(as)g(b)m(ytes)h(enco)s(ding)0 5036 y(sequences)e(of)h(instructions,)h
(the)e(safet)m(y)i(p)s(olicy)e(in)g(a)h(foundational)f(system)h(sp)s
(eci\014es)f(those)g(sequences)h(of)0 5149 y(b)m(ytes)24
b(that)g(result)f(in)g(safe)h(b)s(eha)m(vior)g(when)e(loaded)i(and)f
(executed)h(on)g(the)f(particular)h(pro)s(cessor)f(arc)m(hitecture)0
5262 y(b)s(eing)31 b(used.)42 b(This)30 b(safet)m(y)i(p)s(olicy)g(is)f
(generally)h(expressed)e(in)h(a)h(formal)f(logic,)i(so)e(that)h(pro)s
(ofs)e(of)h(the)h(safet)m(y)1927 5589 y(1)p eop
%%Page: 2 4
2 3 bop 0 91 a FF(of)33 b(programs)g(can)g(b)s(e)g(mec)m(hanically)i(c)
m(hec)m(k)m(ed;)h(these)e(pro)s(ofs)e(pla)m(y)h(an)g(imp)s(ortan)m(t)g
(role)h(in)f(the)g(certi\014cation)0 204 y(pro)s(cess,)c(though)f(the)h
(details)h(v)-5 b(ary)29 b(from)f(one)h(v)-5 b(arian)m(t)30
b(of)f(foundational)g(certi\014ed)g(co)s(de)g(to)g(the)g(next.)41
b(In)28 b(the)0 317 y(foundational)g(PCC)f(systems)h(of)g(App)s(el)f
FB(et)j(al.)e FF([2)q(,)g(1])g(and)f(Hamid)h FB(et)i(al.)f
FF([18)q(],)g(the)f(certi\014cate)h(for)f(a)g(program)0
430 y(is)d(just)f(suc)m(h)g(a)h(pro)s(of)f(of)h(the)g(safet)m(y)g(p)s
(olicy)-8 b(,)27 b(enco)s(ded)d(in)h(a)g(c)m(hec)m(k)-5
b(able)27 b(logic.)40 b(In)24 b(the)h(foundational)g(framew)m(ork)0
543 y(describ)s(ed)h(b)m(y)g(Crary)g(and)g(Sark)-5 b(ar)27
b([7],)h(the)f(form)f(of)h(a)g(certi\014cate)i(is)e(less)g
(constrained,)h(but)e(there)h(is)g(required)0 656 y(to)k(b)s(e)f(a)h
(mac)m(hine-c)m(hec)m(k)-5 b(able)33 b(pro)s(of)d(that)h(certi\014cate)
h(v)-5 b(alidit)m(y)32 b(implies)f(safet)m(y)-8 b(.)141
769 y(The)30 b(third)f(observ)-5 b(ation,)31 b(that)g(a)g(safet)m(y)g
(p)s(olicy)g(m)m(ust)f(include)g(b)s(ounded)e(resource)i(consumption,)g
(moti-)0 882 y(v)-5 b(ates)25 b(the)e(need)h(for)f(what)h(has)f(come)i
(to)f(b)s(e)f(called)i FB(r)-5 b(esour)g(c)g(e)28 b(b)-5
b(ound)27 b(c)-5 b(erti\014c)g(ation)p FF(.)41 b(This)22
b(rep)s(ort)i(describ)s(es)e(our)0 995 y(plans)29 b(for)g(adding)f
(supp)s(ort)g(for)h(resource)g(b)s(ound)e(certi\014cation)k(to)f(the)f
(T)-8 b(AL)g(T)30 b(assem)m(bly)f(language)i([6],)f(with)0
1108 y(the)i(goal)h(of)f(pro)s(ducing)f(a)h(complete)h(foundational)f
(certi\014ed)h(co)s(de)f(system|certifying)h(compiler,)g(v)m
(eri\014er,)0 1220 y(and)d(run)m(time)g(system|that)h(is)f(capable)h
(of)f(guaran)m(teeing)i(b)s(ounds)c(on)i(CPU)g(usage)h(of)f
(certi\014ed)h(programs,)0 1333 y(and)36 b(that)i(is)f(suitable)h(for)f
(creating)h(applications)g(to)g(run)e(on)h(the)g(ConCert)g(grid)f
(computing)i(framew)m(ork.)0 1446 y(T)-8 b(o)35 b(do)f(this,)i(w)m(e)f
(will)g(assume)f(that)h(the)g(\(trusted\))g(run)m(time)f(system)g(pro)m
(vides)h(a)g(\\yield")h(op)s(eration)e(to)i(re-)0 1559
y(linquish)31 b(the)h(CPU,)g(and)g(incorp)s(orate)h(in)m(to)g(the)f
(safet)m(y)h(p)s(olicy)g(a)f(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h
(instructions)g(that)0 1672 y(ma)m(y)g(b)s(e)e(p)s(erformed)f(in)i(a)g
(ro)m(w)g(without)g(yielding.)43 b(Ev)m(en)31 b(though)g(w)m(e)g(only)g
(in)m(tend)g(to)g(directly)h(address)e(this)0 1785 y(small)f
(subproblem)e(of)i(resource)g(b)s(ound)e(certi\014cation,)k(ho)m(w)m
(ev)m(er,)g(elemen)m(ts)f(of)f(the)g(t)m(yp)s(e)g(theory)g(w)m(e)g(dev)
m(elop)0 1898 y(ma)m(y)g(b)s(e)e(useful)g(for)h(guaran)m(teeing)i(b)s
(ounds)25 b(on)j(other)h(resources)f(as)g(w)m(ell;)i(stac)m(k)f(space)g
(b)s(ounds)d(and)h(net)m(w)m(ork)0 2011 y(bandwith)i(limiting)i(seem)g
(particularly)g(promising)f(extensions.)141 2124 y(The)25
b(starting)g(p)s(oin)m(t)g(of)h(the)f(w)m(ork)g(outlined)g(in)g(this)g
(rep)s(ort)f(is)h(the)g(framew)m(ork)g(for)g(foundational)h
(certi\014ed)0 2237 y(co)s(de)h(describ)s(ed)e(and)h(\(partially\))i
(implemen)m(ted)f(b)m(y)f(Crary)g(and)g(Sark)-5 b(ar.)38
b(Our)26 b(t)m(yp)s(e)g(theory)h(is)f(form)m(ulated)h(in)0
2350 y(this)32 b(rep)s(ort)g(as)g(an)g(extension)h(of)f(T)-8
b(AL)g(T,)33 b(and)e(w)m(e)i(in)m(tend)f(to)h(construct)f(our)g
(certi\014cation)i(and)d(v)m(eri\014cation)0 2462 y(to)s(ols)f(and)f
(safet)m(y)i(pro)s(ofs)e(b)m(y)g(mo)s(difying)g(and)g(extending)h
(those)g(already)g(done)g(for)f(T)-8 b(AL)g(T.)30 b(This)f(implemen-)0
2575 y(tation)j(w)m(ork,)e(as)h(w)m(ell)g(as)g(a)g(P)m(op)s(corn)f
(compiler)h(targeting)h(the)e(new)g(assem)m(bly)h(language,)h(is)f
(ongoing.)0 2819 y FA(1.1)112 b(Ov)m(erview)0 2990 y
FF(The)25 b(main)g(tec)m(hnical)j(con)m(ten)m(t)f(of)f(this)f(rep)s
(ort)g(consists)h(of)f(a)h(t)m(yp)s(e)g(theory)f(\(based)h(on)f(T)-8
b(AL)g(T\))26 b(for)f(CPU)g(usage)0 3103 y(b)s(ounds)32
b(as)i(hin)m(ted)g(ab)s(o)m(v)m(e,)i(an)e(informal)g(discussion)g(of)g
(some)g(tec)m(hniques)h(for)f(writing)g(certi\014ed)g(programs)0
3216 y(in)c(this)h(language,)h(and)e(a)h(formal)g(translation)g(from)f
(a)h(fairly)g(general)h(lo)m(w-lev)m(el)h(language)f(that)f(is)g
(ignoran)m(t)0 3329 y(of)36 b(resource)g(b)s(ounds)e(in)m(to)j(our)e(b)
s(ounded)f(assem)m(bly)j(language.)59 b(The)35 b(remainder)h(of)g(this)
g(section)h(giv)m(es)g(an)0 3442 y(o)m(v)m(erview)h(of)e(these)g(comp)s
(onen)m(ts,)i(whic)m(h)e(comprise)g(Sections)g(2)h(through)e(4.)58
b(Section)36 b(5)h(describ)s(es)e(related)0 3555 y(w)m(ork)30
b(and)g(concludes.)0 3795 y FE(A)k(T)m(yp)s(e)f(Theory)h(for)f
(Resource)i(Bounds)92 b FF(In)29 b(Section)h(2)f(of)h(this)f(rep)s
(ort,)g(w)m(e)g(describ)s(e)g(a)g(t)m(yp)s(e)h(system)0
3908 y(for)e(certi\014ed)h(co)s(de)g(with)f(resource)h(b)s(ounds)d
(based)i(on)h(the)g(foundational)f(t)m(yp)s(ed)h(assem)m(bly)g
(language)h(T)-8 b(AL)g(T.)0 4021 y(Our)27 b(new)h(t)m(yp)s(ed)g(assem)
m(bly)h(language,)i(whic)m(h)d(w)m(e)h(call)h(T)-8 b(AL)g(T-R,)29
b(con)m(tains)h(a)e Fz(yield)f FF(instruction)i(that)g(m)m(ust)0
4134 y(b)s(e)e(p)s(erformed)g(at)i(least)g(once)f(ev)m(ery)h
Fy(Y)48 b FF(instructions)28 b(in)g(order)f(for)h(a)g(program)g(to)h(b)
s(e)e(considered)h(safe.)40 b(\(The)0 4247 y(n)m(um)m(b)s(er)31
b Fy(Y)53 b FF(is)33 b(a)g(parameter)g(of)g(the)g(t)m(yp)s(e)g(theory)g
(and)g(is)f(determined)h(b)m(y)g(the)g(safet)m(y)h(p)s(olicy\).)48
b(Concretely)-8 b(,)0 4360 y(w)m(e)42 b(will)g(mo)s(dify)f(the)g(safet)
m(y)i(p)s(olicy)f(to)g(include)f(an)h(imaginary)g(clo)s(c)m(k)h(that)f
(is)g(decremen)m(ted)g(b)m(y)f(one)h(for)0 4473 y(ev)m(ery)27
b(instruction)g(executed;)i(if)d(the)h(clo)s(c)m(k)h(reac)m(hes)g(zero)
f(and)f(the)h(next)f(instruction)h(is)g(not)f Fz(yield)o
FF(,)h(then)g(the)0 4585 y(mac)m(hine)g(is)g(stuc)m(k.)40
b(So)27 b(that)g(w)m(ell-t)m(yp)s(ed)h(programs)e(can)h(nev)m(er)g(get)
h(stuc)m(k,)h(the)e(T)-8 b(AL)g(T-R)27 b(t)m(yp)s(e)f(system)h(k)m
(eeps)0 4698 y(trac)m(k)32 b(of)e(\(a)h(conserv)-5 b(ativ)m(e)33
b(appro)m(ximation)e(of)7 b(\))31 b(the)f(v)-5 b(alue)31
b(of)g(the)f(clo)s(c)m(k)i(at)f(ev)m(ery)g(p)s(oin)m(t)g(in)f(the)g
(program.)141 4811 y(In)41 b(addition)h(to)h(simple)e(instruction)h
(coun)m(ting,)k(our)41 b(t)m(yp)s(e)h(theory)g(for)f(resource)h(b)s
(ound)e(certi\014cation)0 4924 y(incorp)s(orates)c(what)g(is)f(essen)m
(tially)j(a)e(dep)s(enden)m(t)f(re\014nemen)m(t)g(system)h(in)g(the)g
(st)m(yle)h(of)e(DML)i([42)q(,)f(44)q(])g(and)0 5037
y(DT)-8 b(AL)39 b([43)q(].)65 b(A)39 b(ma)5 b(jor)38
b(di\013erence)h(b)s(et)m(w)m(een)g(our)f(system)h(and)f(those)h(of)f
(Xi)h FB(et)h(al.,)h FF(ho)m(w)m(ev)m(er,)h(is)c(that)h(w)m(e)0
5150 y(will)g(explicitly)i(sp)s(ecify)e(a)g(set)h(of)f(inference)g
(rules)g(for)g(the)g(constrain)m(t)h(domain.)67 b(This)38
b(is)h(for)g(the)h(sak)m(e)g(of)0 5263 y(the)29 b(foundational)g(safet)
m(y)h(pro)s(of:)40 b(in)28 b(the)h(metatheorem)i(language)f(of)f(Tw)m
(elf)g(\(the)g(meta-pro)s(of)h(c)m(hec)m(k)m(er)h(used)1927
5589 y(2)p eop
%%Page: 3 5
3 4 bop 0 91 a FF(b)m(y)37 b(the)g(T)-8 b(AL)g(T)37 b(framew)m(ork\))g
(it)g(is)g(imp)s(ossible)g(to)g(state)h(a)g(theorem)f(of)g(the)g(form)f
(\\if)h(the)g(in)m(teger)i(form)m(ula)0 204 y Fy(')f
FF(is)f(v)-5 b(alid.)16 b(.)f(.)h(")37 b(but)g(v)m(ery)h(con)m(v)m
(enien)m(t)h(to)f(state)h(one)e(of)h(the)f(form)g(\\giv)m(en)i(a)f(pro)
s(of)e(of)i(the)f(form)m(ula)h Fy(')p FF(.)16 b(.)f(.)h(")0
317 y(Consequen)m(tly)-8 b(,)30 b(the)f(safet)m(y)g(of)g(a)g(w)m
(ell-certi\014ed)h(program)f(m)m(ust)f(dep)s(end)f(not)i(on)f(the)h
FB(truth)37 b FF(of)28 b(form)m(ulas,)i(but)0 430 y(on)g(their)g
FB(pr)-5 b(ovability)p FF(,)32 b(and)d(the)h(set)g(of)g(rules)g(for)f
(constructing)i(these)f(pro)s(ofs)f(m)m(ust)h(b)s(e)f(\014xed)g(ahead)h
(of)g(time.)141 543 y(Another)36 b(\(less)h(imp)s(ortan)m(t\))f(asp)s
(ect)g(of)g(foundationalit)m(y)i(is)e(that)g(w)m(e)g(do)g(not)g(w)m(an)
m(t)h(the)f(success)g(of)g(our)0 656 y(system)31 b(to)h(dep)s(end)e(on)
h(the)g(inclusion)g(of)h(a)f(constrain)m(t)i(solv)m(er)f(in)f(the)g
(trusted)g(computing)g(base;)h(w)m(e)g(rather)0 769 y(view)40
b(the)g(use)f(of)h(a)g(trusted)f(constrain)m(t)i(solv)m(er)g(as)f(an)f
(optimization)j(that)e(ma)m(y)g(b)s(e)f(used)g(to)i(trade)f(some)0
882 y(v)m(eri\014cation)k(complexit)m(y)g(for)e(a)h(reduction)g(in)f
(certi\014cate)i(size.)78 b(F)-8 b(or)43 b(the)g(implemen)m(tation)h(w)
m(e)f(en)m(vision,)0 995 y(pro)s(ofs)32 b(of)g(an)m(y)h(constrain)m(ts)
h(required)d(for)i(a)g(program)f(will)h(b)s(e)f(included)g(in)g(the)h
(certi\014cate,)i(and)d(there)h(will)0 1108 y(b)s(e)39
b(no)g(need)h(for)f(an)m(y)h(sp)s(ecial)g(supp)s(ort)e(from)h(the)h(v)m
(eri\014er.)69 b(Of)39 b(course,)j(this)e(means)f(that)h(the)g
(certifying)0 1220 y(compiler)31 b(m)m(ust)f(come)i(up)d(with)h(the)g
(necessary)h(pro)s(ofs.)0 1461 y FE(A)e(Generic)h(In)m(termediate)f
(Language)91 b FF(In)24 b(order)h(to)i(sho)m(w)e(that)h(T)-8
b(AL)g(T-R's)26 b(t)m(yp)s(e)g(system)g(is)f(expressiv)m(e)0
1573 y(enough)31 b(for)g(it)h(to)g(serv)m(e)g(as)g(a)f(general-purp)s
(ose)g(t)m(yp)s(ed)g(assem)m(bly)h(language,)h(w)m(e)f(will)g(exhibit)f
(a)h(translation)0 1686 y(from)37 b(a)g(resource-b)s(ound-ignoran)m(t)h
(language)g(in)m(to)g(T)-8 b(AL)g(T-R.)38 b(The)f(source)g(language)i
(of)f(this)f(translation,)0 1799 y(whic)m(h)e(w)m(e)h(call)g(Lilt,)i
(is)d(a)h(rather)f(lo)m(w-lev)m(el)j(programming)d(language)h(based)f
(lo)s(osely)i(on)e(the)g(higher-order)0 1912 y(p)s(olymorphic)26
b(lam)m(b)s(da)h(calculus)h(\(F)1277 1926 y Fx(!)1328
1912 y FF(\).)40 b(Lilt)28 b(is)f(in)m(tended)g(to)h(b)s(e)e(generic)i
(in)f(the)g(sense)g(that)h(it)g(could)f(serv)m(e)h(as)0
2025 y(an)23 b(in)m(termediate)h(language)h(in)d(a)i(compiler)f(for)g
(a)g(n)m(um)m(b)s(er)f(of)h(di\013eren)m(t)g(source)g(languages.)40
b(In)22 b(particular,)j(the)0 2138 y(P)m(op)s(corn-to-T)-8
b(AL)g(T-R)22 b(compiler)f(w)m(e)g(plan)g(to)g(implemen)m(t)g(will)g(b)
s(e)f(based)h(on)f(the)h(Lilt-to-T)-8 b(AL)g(T-R)23 b(translation)0
2251 y(giv)m(en)41 b(in)f(this)g(rep)s(ort.)69 b(Because)41
b(of)f(its)g(imp)s(ortance)h(to)f(our)g(implemen)m(tation,)k(Section)d
(3)f(of)g(the)h(rep)s(ort)0 2364 y(describ)s(es)30 b(the)g(Lilt)h
(language)h(in)e(some)h(detail.)0 2604 y FE(Resource-Bounded)25
b(Compilation)91 b FF(As)20 b(far)g(as)h(safet)m(y)g(is)g(concerned,)h
(the)f(problem)f(of)g(ensuring)f(b)s(ounded)0 2717 y(yield)28
b(latency)h(during)e(compilation)i(to)g(T)-8 b(AL)g(T-R)28
b(is)g(essen)m(tially)h(that)g(of)f(placing)g Fz(yield)f
FF(instructions)g(in)h(the)0 2830 y(generated)g(program)f(suc)m(h)g
(that)h(the)g(requiremen)m(ts)f(of)h(the)f(T)-8 b(AL)g(T-R)28
b(t)m(yp)s(e)f(system)h(\(and)f(hence)g(those)h(of)g(the)0
2943 y(safet)m(y)g(p)s(olicy\))f(are)g(satis\014ed.)40
b(The)26 b(inheren)m(t)h(di\016cult)m(y)g(of)g(this)g(task)g(is)g(lo)m
(w:)39 b(it)28 b(could)e(b)s(e)h(accomplished)g(eas-)0
3056 y(ily)k(\(but)f(pathologically\))j(b)m(y)e(placing)g(a)g
Fz(yield)d FF(b)s(efore)i(ev)m(ery)i(instruction)e(in)g(the)g(program,)
h(or)f(\(somewhat)0 3168 y(more)j(realistically\))i(at)e(the)g(b)s
(eginning)f(of)g(ev)m(ery)h(basic)g(blo)s(c)m(k)g(and)f(ev)m(ery)h
Fy(Y)52 b FF(instructions)33 b(thereafter.)47 b(The)0
3281 y(real)31 b(problem,)f(then,)g(is)g(devising)h(a)f(strategy)i(for)
e(placing)h(yields)f(so)h(that)g(as)f(few)g(as)h(p)s(ossible)e(are)i
(executed)0 3394 y(b)m(y)f(the)h(program,)f(minimizing)h(the)f
(execution)i(cost)f(they)g(in)m(tro)s(duce.)141 3507
y(In)h(the)g(setting)i(of)e(the)h(ConCert)f(grid)g(computing)g(framew)m
(ork,)h(the)g Fz(yield)e FF(instruction)h(is)h(lik)m(ely)g(to)h(b)s(e)0
3620 y(v)m(ery)27 b(exp)s(ensiv)m(e)g(indeed.)39 b(In)26
b(particular,)i(it)g(will)f(in)m(v)m(olv)m(e)i(a)e(function)f(call)j
(to)e(the)g(run)m(time)g(system)g(and,)g(in)f(at)0 3733
y(least)31 b(some)g(cases,)h(in)m(terpro)s(cess)e(comm)m(unication)i
(with)d(the)i(sup)s(ervising)e(ConCert)h(no)s(de)f(implemen)m(tation.)0
3846 y(In)h(recognition)i(of)f(the)g(large)g(cost,)h(the)f(yield)g
(frequency)f(required)g(b)m(y)g(the)h(safet)m(y)h(p)s(olicy)f(will)g(b)
s(e)f(lo)m(w)h(\(that)0 3959 y(is,)42 b Fy(Y)60 b FF(will)40
b(b)s(e)f(large\).)70 b(In)39 b(Section)h(4)g(w)m(e)g(describ)s(e)f(a)h
(n)m(um)m(b)s(er)f(of)h(heuristics)f(and)g(strategies)j(for)d(placing)0
4072 y Fz(yield)29 b FF(instructions)i(in)f(T)-8 b(AL)g(T-R)31
b(programs)f(that)i(w)m(e)f(exp)s(ect)g(will)g(yield)g(go)s(o)s(d)g(p)s
(erformance.)41 b(In)29 b(addition,)0 4185 y(w)m(e)35
b(giv)m(e)i(a)e(complete)i(t)m(yp)s(e-preserving)e(translation)g(from)g
(Lilt)g(in)m(to)h(T)-8 b(AL)g(T-R)36 b(that)f(incorp)s(orates)g(some)h
(of)0 4298 y(these)31 b(ideas.)1927 5589 y(3)p eop
%%Page: 4 6
4 5 bop 0 91 a FC(2)135 b(T)-11 b(AL)g(T-R:)43 b(Resource-Bounded)i(F)
-11 b(oundational)45 b(T)-11 b(AL)0 294 y FF(In)22 b(this)g(section)i
(w)m(e)f(giv)m(e)h(the)f(syn)m(tax)g(of)g(our)f(resource-b)s(ounded)f
(t)m(yp)s(ed)h(assem)m(bly)h(language)h(and)e(an)h(o)m(v)m(eriv)m(ew)0
407 y(of)f(its)h(static)h(seman)m(tics,)i(and)21 b(discuss)h(its)h(un)m
(usual)e(features.)38 b(This)22 b(assem)m(bly)h(language)g(is)g(based)f
(v)m(ery)g(closely)0 520 y(on)k(T)-8 b(AL)g(T)27 b([6)q(],)g(with)f(a)h
(small)g(n)m(um)m(b)s(er)e(of)i(new)f(constructs;)i(w)m(e)f(call)g(it)g
(T)-8 b(AL)g(T-R)27 b(\(for)g(\\Resource"\).)41 b(W)-8
b(e)27 b(plan)0 633 y(to)i(implemen)m(t)g(the)f(certi\014cation,)j(v)m
(eri\014cation,)f(and)e(formal)g(safet)m(y)i(pro)s(of)d(for)h(our)g
(system)g(b)m(y)g(adapting)h(the)0 746 y(prior)h(w)m(ork)g(on)g(T)-8
b(AL)g(T)31 b([7)q(].)41 b(This)29 b(section)j(assumes)e(the)g(reader)h
(is)f(familiar)h(with)f(T)-8 b(AL)g(T.)141 859 y(Lik)m(e)31
b(T)-8 b(AL)g(T,)31 b(T)-8 b(AL)g(T-R)31 b(is)f(actually)i(a)e(n)m(um)m
(b)s(er)f(of)i(di\013eren)m(t,)g(but)f(closely)h(related,)h(languages)f
(that)g(pla)m(y)0 972 y(di\013eren)m(t)g(roles)g(in)f(the)g
(certi\014ed)h(co)s(de)g(pro)s(cess.)40 b(The)30 b(t)m(w)m(o)i(most)e
(imp)s(ortan)m(t)h(are:)136 1159 y Fw(\017)46 b FF(T)-8
b(AL)g(T-R)38 b(itself,)i(whic)m(h)d(is)g(the)h(language)g(for)f(whic)m
(h)g(the)h(safet)m(y)g(metatheorem)h(is)e(directly)h(pro)m(v)m(ed.)227
1272 y(This)24 b(is)g(an)g(implicitly)h(t)m(yp)s(ed)f(language)i
(\(also)g(kno)m(wn)d(as)i(a)f(Curry-st)m(yle)g(or)h(t)m(yp)s
(e-assignmen)m(t)g(system\),)227 1385 y(meaning)d(that)g(programs)g
(are)f(completely)j(free)d(of)h(t)m(yp)s(e)g(annotations;)k(t)m(yp)s
(e-c)m(hec)m(king)e(in)d(this)h(language)227 1498 y(\(as)31
b(in)f(T)-8 b(AL)g(T\))31 b(is)g(presumed)d(undecidable,)j(b)s(ecause)f
(it)h(in)m(v)m(olv)m(es)h(p)s(olymorphic)e(t)m(yp)s(e)g(inference)h
([41)q(].)136 1686 y Fw(\017)46 b FF(XT)-8 b(AL)g(T-R)24
b(\(analogous)g(to)g(XT)-8 b(AL)g(T\),)23 b(whic)m(h)g(is)g(to)g(b)s(e)
f(the)h(input)f(language)i(of)f(the)g(T)-8 b(AL)g(T-R)23
b(assem)m(bler)227 1799 y(\(and)e(therefore)h(also)g(the)g(direct)g
(target)g(of)g(the)f(high-lev)m(el)i(language)g(compiler)f(w)m(e)g
(plan)f(to)h(implemen)m(t\).)227 1912 y(XT)-8 b(AL)g(T-R)34
b(di\013ers)e(from)h(T)-8 b(AL)g(T-R)33 b(in)f(t)m(w)m(o)j(imp)s(ortan)
m(t)e(w)m(a)m(ys:)46 b(\014rst,)33 b(XT)-8 b(AL)g(T-R)34
b(is)f(explicitly)h(t)m(yp)s(ed,)227 2024 y(making)43
b(t)m(yp)s(e-c)m(hec)m(king)h(feasible;)k(and)42 b(second,)j(XT)-8
b(AL)g(T-R)42 b(programs)g(do)g(not)g(allo)m(w)h(explicit)g(p)s(c-)227
2137 y(relativ)m(e)32 b(op)s(erands)d(for)g(con)m(trol)i(transfer)e
(instructions.)41 b(Instead,)30 b(an)f(XT)-8 b(AL)g(T-R)30
b(program)g(is)g(divided)227 2250 y(in)m(to)f FB(blo)-5
b(cks)p FF(,)28 b(eac)m(h)h(ha)m(ving)f(a)f FB(lab)-5
b(el)9 b FF(;)30 b(lab)s(els)e(ma)m(y)f(b)s(e)g(used)g(as)g(op)s
(erands,)g(and)g(the)g(assem)m(bler)h(translates)227
2363 y(them)j(in)m(to)g(p)s(c-relativ)m(e)h(addressing.)0
2551 y(The)i(primary)g(design)g(criterion)i(of)e(T)-8
b(AL)g(T)35 b(and)f(T)-8 b(AL)g(T-R)35 b(is)f(that)i(the)e(op)s
(erational)i(seman)m(tics)g(mirror)e(the)0 2664 y(concrete)42
b(IA-32)f(arc)m(hitecture)h(closely)g(enough)d(to)i(mak)m(e)h(the)e
(foundational)h(safet)m(y)g(pro)s(of)e(feasible.)71 b(The)0
2777 y(primary)25 b(design)g(criterion)h(of)g(XT)-8 b(AL)g(T)25
b(and)g(XT)-8 b(AL)g(T-R)26 b(is)f(that)h(they)g(b)s(e)f(suitable)h
(languages)g(for)g(generation)0 2890 y(b)m(y)k(a)h(compiler)g(or)f(b)m
(y)h(a)f(h)m(uman)g(programmer.)141 3002 y(Unfortunately)-8
b(,)48 b(neither)c(T)-8 b(AL)g(T-R)44 b(nor)f(XT)-8 b(AL)g(T-R)44
b(is)g(a)g(particularly)h(con)m(v)m(enien)m(t)h(language)f(to)f(use)0
3115 y(when)31 b(formally)i(describing)f(a)h(compiler)g(as)f(w)m(e)h(m)
m(ust)f(do)h(in)f(this)g(rep)s(ort.)46 b(Therefore,)33
b(the)f(t)m(yp)s(ed)g(assem)m(bly)0 3228 y(language)c(w)m(e)f(will)g
(describ)s(e)g(and)f(use)g(in)h(this)f(do)s(cumen)m(t)h(is)g(a)g(third)
f(v)-5 b(arian)m(t,)28 b(whic)m(h)f(w)m(e)g(will)g(call)h(BT)-8
b(AL)g(T-R.)0 3341 y(BT)g(AL)g(T-R)39 b(is)f(implicitly)h(t)m(yp)s(ed,)
g(lik)m(e)h(T)-8 b(AL)g(T-R,)38 b(but)f(incorp)s(orates)i(XT)-8
b(AL)g(T-R's)38 b(syn)m(tax)h(for)e(blo)s(c)m(ks)i(and)0
3454 y(lab)s(els)27 b(\(as)g(w)m(ell)h(as)f(syn)m(tax)g(for)f(op)s
(erands)g(and)g(destinations)h(that)g(is)g(XT)-8 b(AL)g(T-lik)m(e)29
b(and)d(hence)g(more)h(familiar)0 3567 y(to)35 b(IA-32)h
(programmers\).)52 b(Implicit)35 b(t)m(yping)g(reduces)f(the)g
(notational)j(o)m(v)m(erhead)e(necessary)g(for)f(describing)0
3680 y(the)d(compilation)h(pro)s(cess;)e(blo)s(c)m(ks)g(and)g(lab)s
(els)h(allo)m(w)h(us)d(to)i(ignore)g(p)s(c-relativ)m(e)i(addressing.)
3326 3647 y Fv(1)141 3793 y FF(It)21 b(is)g(common)g(in)g(collo)s
(quial)i(usage)e(to)h(use)e(the)h(name)g(T)-8 b(AL)g(T)21
b(to)h(refer)f(to)g(the)h(en)m(tire)f(certi\014ed)h(co)s(de)f(system)0
3906 y(based)30 b(on)h(T)-8 b(AL)g(T,)31 b(including)g(the)g(XT)-8
b(AL)g(T)31 b(language.)43 b(This)31 b(is)f(not)h(en)m(tirely)h
(inappropriate,)f(since)h(XT)-8 b(AL)g(T)0 4019 y(is)31
b(designed)h(to)g(corresp)s(ond)e(to)i(T)-8 b(AL)g(T)31
b(v)m(ery)h(closely;)i(the)d(theory)h(of)g(subt)m(yping)e(in)h(T)-8
b(AL)g(T,)32 b(for)f(example,)i(is)0 4132 y(exactly)j(mirrored)d(b)m(y)
h(the)g(theory)h(of)f(co)s(ercions)h(in)f(XT)-8 b(AL)g(T.)34
b(Regarding)h(the)f(resource-b)s(ounded)f(v)m(ersions)0
4244 y(w)m(e)k(are)g(ab)s(out)f(to)h(describ)s(e,)h(w)m(e)f(consider)f
(XT)-8 b(AL)g(T-R)37 b(and)f(BT)-8 b(AL)g(T-R)38 b(as)e(merely)h(t)m(w)
m(o)h(di\013eren)m(t)f(\\views")0 4357 y(of)h(the)g(underlying)f(t)m
(yp)s(e)g(theory)h(T)-8 b(AL)g(T-R.)39 b(W)-8 b(e)39
b(will)f(\(unap)s(ologetically\))j(use)c(the)h(name)g(T)-8
b(AL)g(T-R)38 b(when)0 4470 y(making)31 b(statemen)m(ts)h(in)m(tended)e
(to)h(apply)f(to)h(all)g(three.)0 4714 y FA(2.1)112 b(Basic)38
b(Syn)m(tax)0 4885 y FF(Some)21 b(of)f(the)h(arc)m(hitecture-sp)s
(eci\014c)h(notation)g(w)m(e)f(will)g(use)f(when)g(discussing)f(T)-8
b(AL)g(T-R)21 b(is)g(de\014ned)e(in)h(Figure)h(1.)0 4998
y(The)37 b(syn)m(tax)h(for)f(BT)-8 b(AL)g(T-R)38 b(\(not)g(including)f
(the)g(syn)m(tax)h(of)g(t)m(yp)s(es\))g(is)f(sho)m(wn)g(in)g(Figure)h
(2.)62 b(Aside)37 b(from)p 0 5060 1560 4 v 104 5113 a
Fu(1)138 5145 y FD(In)f(order)h(for)g(our)f(translation)i(to)f(output)e
(p)r(c-relativ)n(e)i(displacemen)n(ts,)j(w)n(e)d(w)n(ould)f(ha)n(v)n(e)
g(to)h(b)r(e)f(able)h(to)g(reason)g(ab)r(out)0 5237 y(instruction)24
b(enco)r(ding)h(lengths,)g(whic)n(h)f(T)-6 b(AL)g(T)24
b(lea)n(v)n(es)h(unde\014ned.)32 b(In)24 b(an)n(y)f(case)i(it)g(is)f(p)
r(erfectly)h(usual)f(for)h(these)g(calculations)h(to)0
5328 y(b)r(e)g(left)g(to)g(the)f(assem)n(bler.)1927 5589
y FF(4)p eop
%%Page: 5 7
5 6 bop 1070 523 a Fy(W)38 b FF(=)25 b(4)30 b(\(w)m(ord)h(size)g(in)f
(b)m(ytes\))1070 636 y Fy(B)g Fw(2)25 b FB(Wor)-5 b(dval)36
b FF(=)25 b Fw(f)p FF(0)p Fy(;)15 b(:)g(:)g(:)j(;)d FF(2)2052
603 y Fv(8)p Fx(W)2188 636 y Fw(\000)20 b FF(1)p Fw(g)1070
861 y Fy(r)28 b Fw(2)d FB(R)-5 b(e)g(g)34 b FF(=)24 b
Fw(f)p Fz(eax)p Fy(;)15 b Fz(ebx)p Fy(;)g Fz(ecx)o Fy(;)g
Fz(edx)p Fy(;)g Fz(esi)o Fy(;)g Fz(edi)p Fy(;)g Fz(ebp)p
Fw(g)1074 974 y FF(\026)-49 b Fy(r)28 b Fw(2)d FB(Genr)-5
b(e)g(g)34 b FF(=)25 b FB(R)-5 b(e)g(g)29 b Fw([)19 b(f)p
Fz(esp)p Fw(g)1180 1254 y FF(Figure)31 b(1:)41 b(T)-8
b(AL)g(T-R)31 b(Notation)h(for)e(IA-32)583 2205 y FB(Op)-5
b(er)g(ands)603 b Fy(o)83 b FF(::=)g Fy(B)30 b Fw(j)c
Fy(`)f Fw(j)k FF(\026)-49 b Fy(r)28 b Fw(j)d Fy(i)p FF(`[)p
Fy(o)d FF(+)d Fy(j)5 b FF(])27 b Fw(j)e Fy(i)p FF(`[)p
Fy(o)2771 2219 y Fv(1)2832 2205 y FF(+)20 b Fy(j)25 b
FF(+)20 b Fy(j)3118 2172 y Ft(0)3162 2205 y Fw(\001)h
Fy(o)3252 2219 y Fv(2)3291 2205 y FF(])583 2317 y FB(Destinations)471
b Fy(d)83 b FF(::=)k(\026)-49 b Fy(r)28 b Fw(j)e Fy(i)p
FF(`[)p Fy(o)21 b FF(+)f Fy(j)5 b FF(])26 b Fw(j)f Fy(i)p
FF(`[)p Fy(o)2508 2331 y Fv(1)2569 2317 y FF(+)20 b Fy(j)25
b FF(+)20 b Fy(j)2855 2285 y Ft(0)2900 2317 y Fw(\001)g
Fy(o)2989 2331 y Fv(2)3028 2317 y FF(])583 2430 y FB(Conditions)533
b Fy(\024)83 b FF(::=)g Fz(e)25 b Fw(j)h Fz(ne)e Fw(j)i
Fz(b)f Fw(j)g Fz(be)g Fw(j)h Fz(a)f Fw(j)g Fz(ae)583
2543 y FB(Instruction)34 b(Se)-5 b(quenc)g(es)107 b Fy(I)90
b FF(::=)83 b Fy(\017)1775 2656 y Fw(j)g Fz(add)30 b
Fy(d;)15 b(o)2188 2670 y Fv(1)2228 2656 y Fy(;)g(o)2312
2670 y Fv(2)2382 2656 y Fy(I)1775 2769 y Fw(j)83 b Fz(addsptr)29
b Fy(d;)15 b(o;)g(n)31 b(I)1775 2882 y Fw(j)83 b Fz(call)29
b Fy(o)i(I)1775 2995 y Fw(j)83 b Fz(cmp)30 b Fy(o)2101
3009 y Fv(1)2140 2995 y Fy(;)15 b(o)2224 3009 y Fv(2)2294
2995 y Fy(I)1775 3108 y Fw(j)83 b Fz(cmpjcc)29 b Fy(o)2244
3122 y Fv(1)2283 3108 y Fy(;)15 b(o)2367 3122 y Fv(2)2407
3108 y Fy(;)g(\024;)g(o)2583 3122 y Fv(3)2654 3108 y
Fy(I)1775 3221 y Fw(j)83 b Fz(jcc)30 b Fy(\024;)15 b(o)31
b(I)1775 3334 y Fw(j)83 b Fz(jmp)30 b Fy(o)g(I)1775 3447
y Fw(j)83 b Fz(malloc)29 b Fy(d;)15 b(o;)g(n)31 b(I)1775
3560 y Fw(j)83 b Fz(mallocarr)28 b Fy(d;)15 b(n;)g(o)2569
3574 y Fv(1)2609 3560 y Fy(;)g(o)2693 3574 y Fv(2)2764
3560 y Fy(I)1775 3672 y Fw(j)83 b Fz(mov)30 b Fy(d;)15
b(o)31 b(I)1775 3785 y Fw(j)83 b Fz(pop)30 b Fy(n;)15
b(d)30 b(I)1775 3898 y Fw(j)83 b Fz(push)29 b Fy(o)i(I)1775
4011 y Fw(j)83 b Fz(ret)30 b Fy(I)1775 4124 y Fw(j)83
b Fz(salloc)29 b Fy(n)h(I)1775 4237 y Fw(j)83 b Fz(sfree)29
b Fy(n)h(I)1775 4350 y Fw(j)83 b Fz(sub)30 b Fy(d;)15
b(o)2188 4364 y Fv(1)2228 4350 y Fy(;)g(o)2312 4364 y
Fv(2)2382 4350 y Fy(I)1775 4463 y Fw(j)83 b Fz(subjae)29
b(r)2248 4478 y Fx(d)2288 4463 y Fy(;)15 b(o)2372 4477
y Fv(1)2412 4463 y Fy(;)g(o)2496 4477 y Fv(2)2536 4463
y Fy(;)g(o)2620 4477 y Fv(3)2690 4463 y Fy(I)1775 4576
y Fw(j)83 b Fz(yield)29 b Fy(I)583 4689 y FB(Pr)-5 b(o)g(gr)g(ams)574
b Fy(P)96 b FF(::=)83 b Fy(`)1921 4703 y Fv(1)1986 4689
y FF(=)25 b Fy(I)2122 4703 y Fv(1)2161 4689 y Fy(;)15
b(:)g(:)g(:)i(;)e(`)2401 4703 y Fx(n)2473 4689 y FF(=)25
b Fy(I)2609 4703 y Fx(n)917 4973 y FF(Figure)31 b(2:)41
b(BT)-8 b(AL)g(T-R)31 b(Syn)m(tax)g(\(Except)g(T)m(yp)s(e)f(System\))
1927 5589 y(5)p eop
%%Page: 6 8
6 7 bop 105 179 a FB(Kinds)914 b Fy(K)89 b FF(::=)84
b Fs(T)25 b Fw(j)g Fs(T)p Fy(i)h Fw(j)f Fs(TD)g Fw(j)h
Fs(W)m(o)m(rd)g Fw(j)g Fs(N)f Fw(j)h Fs(P)105 292 y FB(Static)33
b(T)-7 b(erms)330 b Fy(c;)15 b(t;)g(';)g(\034)5 b(;)15
b(x)85 b FF(::=)f Fy(\013)1513 404 y Fw(j)g Fz(ns)24
b Fw(j)i Fz(B0)f Fw(j)g Fz(B1)g Fw(j)g Fy(\034)2175 418
y Fv(1)2235 404 y Fw(\002)20 b Fy(\034)2366 418 y Fv(2)2430
404 y Fw(j)26 b Fy(\034)35 b Fw(")26 b Fy(x)f Fw(j)g
Fz(box)o FF(\()p Fy(\034)10 b FF(\))26 b Fw(j)g Fz(mbox)o
FF(\()p Fy(\034)10 b FF(\))26 b Fw(j)f Fz(sptr)o FF(\()p
Fy(\034)10 b FF(\))1513 517 y Fw(j)84 b FF(\000)25 b
Fw(!)g FF(0)h Fw(j)f Fz(set)2084 531 y Fv(=)2143 517
y FF(\()p Fy(x)p FF(\))h Fw(j)g Fz(set)2485 531 y Fx(<)2544
517 y FF(\()p Fy(x)p FF(\))g Fw(j)f Fz(set)2886 531 y
Fx(>)2945 517 y FF(\()p Fy(x)p FF(\))h Fw(j)f(8)p Fy(\013)p
FF(:)p Fy(K)q(:\034)36 b Fw(j)26 b(9)p Fy(\013)p FF(:)p
Fy(K)q(:\034)1513 630 y Fw(j)84 b Fy(\034)1662 644 y
Fv(1)1721 630 y Fw(^)20 b Fy(\034)1842 644 y Fv(2)1906
630 y Fw(j)26 b Fy(\034)1997 644 y Fv(1)2056 630 y Fw(_)20
b Fy(\034)2177 644 y Fv(2)2241 630 y Fw(j)26 b Fz(void)e
Fw(j)i Fy(\026\013:\034)35 b Fw(j)26 b Fy(B)k Fw(j)25
b Fz(got)1513 743 y Fw(j)84 b Fy(')25 b Fw(\))h Fy(\034)35
b Fw(j)25 b(S)7 b FF(\()p Fy(t)p FF(\))1513 856 y Fw(j)p
1622 806 55 4 v 84 w Fy(n)25 b Fw(j)g Fy(t)1785 870 y
Fv(1)1844 856 y FF(+)20 b Fy(t)1968 870 y Fv(2)1513 969
y Fw(j)84 b Fy(t)1655 983 y Fv(1)1719 969 y Fw(\024)25
b Fy(t)1848 983 y Fv(2)1913 969 y Fw(j)g Fy(t)1996 983
y Fv(1)2061 969 y FF(=)g Fy(t)2190 983 y Fv(2)105 1082
y FB(Static)33 b(Contexts)551 b FF(\001)82 b(::=)i Fw(\001)25
b(j)h FF(\001)p Fy(;)15 b(\013)p FF(:)p Fy(K)33 b Fw(j)25
b FF(\001)p Fy(;)15 b(')31 b Fs(true)105 1195 y FB(R)-5
b(e)g(gister)33 b(File)g(T)-7 b(yp)i(es)418 b FF(\000)82
b(::=)i Fw(f)p Fz(eax)o FF(:)p Fy(\034)1875 1209 y Fr(ax)1950
1195 y Fy(;)15 b(:)g(:)g(:)i(;)e Fz(ebp)o FF(:)p Fy(\034)2360
1209 y Fr(bp)2435 1195 y Fy(;)g Fz(esp)p FF(:)p Fy(\034)5
b(;)15 b Fz(ck)p FF(:)p Fy(t)p Fw(g)105 1308 y FB(Memory)33
b(T)-7 b(yp)i(es)578 b FF(\011)82 b(::=)i Fw(f)p Fy(`)1705
1322 y Fv(1)1770 1308 y FF(:)25 b Fy(\034)1860 1322 y
Fv(1)1899 1308 y Fy(;)15 b(:)g(:)g(:)i(;)e(`)2139 1322
y Fx(n)2212 1308 y FF(:)25 b Fy(\034)2302 1322 y Fx(n)2349
1308 y Fw(g)1106 1586 y FF(Figure)31 b(3:)41 b(BT)-8
b(AL)g(T-R)31 b(T)m(yp)s(e)f(System)g(Syn)m(tax)0 1861
y(the)e(syn)m(tax)g(of)g(op)s(erands)e(and)h(destinations,)i(whic)m(h)f
(w)m(e)g(ha)m(v)m(e)h(c)m(hanged)f(to)g(more)g(closely)h(resem)m(ble)f
(the)g(In)m(tel)0 1974 y(syn)m(tax,)37 b(the)f(syn)m(tax)g(of)f
(programs)g(in)g(BT)-8 b(AL)g(T-R)36 b(di\013ers)f(from)g(T)-8
b(AL)g(T)35 b(in)g(t)m(w)m(o)i(w)m(a)m(ys.)56 b(The)35
b(\014rst)f(is)i(that)g(a)0 2087 y(program)h(in)g(BT)-8
b(AL)g(T-R)38 b(is)f(a)g(list)h(of)f(lab)s(eled)h(instruction)f
(sequences)g(as)h(opp)s(osed)e(to)i(an)f(initial)h(mac)m(hine)0
2200 y(state.)60 b(The)36 b(lab)s(els)h(attac)m(hed)h(to)f(these)g(blo)
s(c)m(ks)g(ma)m(y)g(b)s(e)f(used)f(as)i(op)s(erands,)g(and)f(are)h
(particularly)g(useful)0 2313 y(in)43 b(con)m(trol)i(transfer)e
(instructions.)79 b(The)43 b(second)h(di\013erence)g(is)f(that)h(t)m(w)
m(o)h(new)e(instructions)g(ha)m(v)m(e)i(b)s(een)0 2426
y(added.)67 b(The)39 b Fz(yield)f FF(instruction)h(is)h(the)g(k)m(ey)g
(addition:)59 b(it)40 b(is)f(this)h(instruction)f(that)h(m)m(ust)f(b)s
(e)g(executed)0 2539 y(with)f(at)h(least)h(a)f(certain)g(frequency)f
(to)h(guaran)m(tee)h(b)s(ounded)c(CPU)i(usage.)66 b(The)37
b(other)i(new)f(instruction)0 2652 y(is)g Fz(subjae)n
FF(:)55 b(the)38 b(instruction)g(sequence)g Fz(subjae)e(r)1852
2667 y Fx(d)1893 2652 y Fy(;)15 b(o)1977 2666 y Fv(1)2017
2652 y Fy(;)g(o)2101 2666 y Fv(2)2141 2652 y Fy(;)g(o)2225
2666 y Fv(3)2302 2652 y Fy(I)45 b FF(has)37 b(the)h(same)g(op)s
(erational)h(b)s(eha)m(vior)f(as)0 2765 y(\()p Fz(sub)h(r)265
2780 y Fx(d)306 2765 y Fy(;)15 b(o)390 2779 y Fv(1)430
2765 y Fy(;)g(o)514 2779 y Fv(2)554 2765 y FF(;)g Fz(jcc)38
b(ae)p Fy(;)15 b(o)956 2779 y Fv(3)996 2765 y FF(;)g
Fy(I)7 b FF(\),)42 b(but)c(a)i(sp)s(ecial)g(t)m(yping)f(rule)g(that)h
(re\015ects)g(the)f(result)g(of)g(the)h(conditional)0
2878 y(jump)e(in)m(to)i(the)f(t)m(yp)s(e)h(system.)67
b(In)39 b(this)g(sense)g(it)h(is)f(related)h(to)g(the)g
Fz(cmpjcc)d FF(instruction)i(inherited)g(from)0 2991
y(T)-8 b(AL)g(T.)0 3234 y FA(2.2)112 b(T)m(yp)s(e)38
b(System)0 3406 y FF(The)d(syn)m(tax)i(of)f(the)g(T)-8
b(AL)g(T-R)36 b(t)m(yp)s(e)g(system)g(is)g(giv)m(en)h(in)e(Figure)i(3.)
57 b(A)m(t)37 b(the)f(top)g(lev)m(el)i(of)e(the)g(system)g(are)0
3519 y(six)g FB(kinds)p FF(,)j(whic)m(h)d(classify)h(the)f(terms)g(at)h
(the)g(second)f(lev)m(el,)k(whic)m(h)c(w)m(e)g(call)i
FB(static)h(terms)p FF(.)59 b(The)36 b(kinds)f Fs(T)p
FF(,)0 3631 y Fs(T)p Fy(i)p FF(,)f Fs(TD)f FF(and)f Fs(W)m(o)m(rd)j
FF(are)e(inherited)g(from)g(T)-8 b(AL)g(T)33 b(\(but)g
Fs(W)m(o)m(rd)h FF(used)f(to)h(b)s(e)e(called)j Fs(Num)p
FF(\);)g Fs(N)f FF(and)e Fs(P)i FF(are)f(new.)0 3744
y(The)j(class)h(of)g(static)h(terms)f(is)g(comprised)f(of)h(the)f
FB(typ)-5 b(es)46 b FF(\(of)37 b(kinds)e Fs(T)p Fy(i)p
FF(,)k Fs(TD)d FF(and)g Fs(T)p FF(\),)i(the)f FB(wor)-5
b(d)41 b(terms)j FF(\(of)0 3857 y(kind)38 b Fs(W)m(o)m(rd)q
FF(\),)j(the)e FB(c)-5 b(onstr)g(aint)43 b(terms)k FF(\(of)39
b(kind)f Fs(N)p FF(\),)k(and)c(the)g(the)h FB(c)-5 b(onstr)g(aint)43
b(formulas)48 b FF(\(of)39 b(kind)f Fs(P)p FF(\).)66
b(By)0 3970 y(con)m(v)m(en)m(tion,)39 b(w)m(e)c(will)h(use)f(the)g
(meta)m(v)-5 b(ariables)37 b Fy(\034)10 b FF(,)37 b Fy(x)p
FF(,)f Fy(t)f FF(and)f Fy(')i FF(in)f(place)h(of)f(the)g(general)h
(meta)m(v)-5 b(ariable)38 b Fy(c)d FF(to)0 4083 y(indicate)h(that)g
(the)f(static)i(term)e(referred)f(to)i(is)f(a)g(t)m(yp)s(e,)i(a)f(w)m
(ord)e(term,)j(a)e(constrain)m(t)h(term,)h(or)e(a)g(form)m(ula,)0
4196 y(resp)s(ectiv)m(ely)-8 b(.)42 b(F)-8 b(urthermore,)29
b(w)m(e)h(will)f(use)g(the)g(letter)h Fy(a)f FF(instead)h(of)f
Fy(\013)g FF(for)g(v)-5 b(ariables)30 b(in)m(tended)f(to)g(b)s(e)g(of)g
(kind)0 4309 y Fs(N)p FF(.)48 b(W)-8 b(e)34 b(ha)m(v)m(e)g(c)m(hosen)g
(to)f(call)i(the)e(syn)m(tactic)h(category)h(con)m(taining)g(the)e(t)m
(yp)s(es)f(\\static)j(terms")e(rather)g(than)0 4422 y(the)f(more)h
(usual)e(\\t)m(yp)s(e)i(constructors")g(\(or)g(simply)e
(\\constructors"\))j(b)s(ecause)e(although)h(constrain)m(t)g(terms)0
4535 y(and)i(form)m(ulas)h(ma)m(y)h(app)s(ear)e(in)h(t)m(yp)s(es,)h
(they)g(cannot)f(really)h(b)s(e)e(said)h(to)h FB(c)-5
b(onstruct)46 b FF(an)m(ything.)57 b(The)36 b(name)0
4648 y(\\static)26 b(terms")f(also)g(highligh)m(ts)g(our)f(in)m(ten)m
(tion)i(that)f(these)g(terms)f(are)h(part)f(of)g(the)h(\(static\))i(t)m
(yp)s(e)d(assignmen)m(t)0 4761 y(system)31 b(only;)f(they)h(do)f(not)h
(app)s(ear)e(in)i(ra)m(w)f(BT)-8 b(AL)g(T-R)31 b(programs.)141
4873 y(The)h(role)g(of)g(the)g(t)m(yp)s(es)g(and)f(w)m(ord)h(terms)g
(is)f(the)i(same)f(as)g(in)f(T)-8 b(AL)g(T:)33 b(t)m(yp)s(es)f
(classify)g(v)-5 b(alues,)33 b(and)e(w)m(ord)0 4986 y(terms)37
b(app)s(ear)g(in)g(arra)m(y)h(t)m(yp)s(es)g(\()p Fy(\034)47
b Fw(")38 b Fy(x)p FF(\))f(and)g(subrange)g(t)m(yp)s(es)g(\()p
Fz(set)2505 5000 y Fx(<)2564 4986 y FF(\()p Fy(x)p FF(\))p
Fy(;)15 b Fz(set)2870 5000 y Fv(=)2929 4986 y FF(\()p
Fy(x)p FF(\))p Fy(;)g Fz(set)3235 5000 y Fx(>)3294 4986
y FF(\()p Fy(x)p FF(\)\).)63 b(The)37 b(con-)0 5099 y(strain)m(t)24
b(terms)f(and)f(constrain)m(t)i(form)m(ulas)f(together)i(form)d(a)i
(logic)h(of)e(constrain)m(ts)h(that)f(allo)m(ws)i(the)e(in)m(tegration)
0 5212 y(of)36 b(arithmetic)g(reasoning)g(in)m(to)g(the)g(t)m(yp)s(e)f
(system.)56 b(W)-8 b(e)37 b(will)e(discuss)g(the)g(role)h(of)g(this)f
(reasoning)h(in)f(detail)0 5325 y(later)f(on.)47 b(The)32
b(t)m(yp)s(es)g(of)h(T)-8 b(AL)g(T-R)33 b(are)g(just)f(those)h(of)g(T)
-8 b(AL)g(T,)33 b(plus)e(singleton)j(t)m(yp)s(es)f Fw(S)7
b FF(\()p Fy(t)p FF(\))33 b(and)e(constrain)m(t-)1927
5589 y(6)p eop
%%Page: 7 9
7 8 bop 597 79 a FF(Judgmen)m(t)573 b(Meaning)p 547 116
2807 4 v 597 195 a(\001)25 b Fw(`)f Fy(c)i FF(:)g Fy(k)622
b(c)31 b FF(has)f(kind)g Fy(k)597 308 y FF(\001)25 b
Fw(`)f FF(\000)728 b(\000)30 b(is)h(w)m(ell-formed)597
421 y(\001)25 b Fw(`)f Fy(')31 b Fs(true)544 b FF(F)-8
b(orm)m(ula)32 b Fy(')f FF(is)f(true)597 534 y(\001)25
b Fw(`)f Fy(\034)818 548 y Fv(1)883 534 y Fw(\024)h Fy(\034)1019
548 y Fv(2)1563 534 y Fy(\034)1603 548 y Fv(1)1673 534
y FF(is)30 b(a)h(subt)m(yp)s(e)e(of)i Fy(\034)2325 548
y Fv(2)597 647 y FF(\001)25 b Fw(`)f FF(\000)835 661
y Fv(1)900 647 y Fw(\024)h FF(\000)1053 661 y Fv(2)1563
647 y FF(\000)1620 661 y Fv(1)1690 647 y FF(is)30 b(a)h(subt)m(yp)s(e)e
(of)i(\000)2359 661 y Fv(2)p 547 684 V 597 763 a FF(\001;)15
b(\011;)g(\000)25 b Fw(`)g Fy(o)g FF(:)h Fy(\034)416
b FF(Op)s(erand)29 b Fy(o)h FF(has)g(t)m(yp)s(e)h Fy(\034)597
876 y FF(\001;)15 b(\011;)g(\000)25 b Fw(`)g Fy(d)g FF(:)h
Fy(\034)35 b Fw(!)25 b FF(\000)1358 843 y Ft(0)1563 876
y FF(Propagating)32 b(a)f(v)-5 b(alue)31 b(of)f(t)m(yp)s(e)h
Fy(\034)40 b FF(to)31 b Fy(d)g FF(yields)f(\000)3280
843 y Ft(0)597 989 y FF(\001;)15 b(\011;)g(\000)25 b
Fw(`)g Fy(I)536 b(I)38 b FF(is)30 b(w)m(ell-t)m(yp)s(ed)p
547 1026 V 597 1105 a(\001;)15 b(\011)25 b Fw(`)g Fy(I)32
b FF(:)25 b Fy(\034)41 b Fs(blo)s(ck)269 b Fy(I)38 b
FF(constitutes)31 b(a)g(blo)s(c)m(k)g(of)f(t)m(yp)s(e)h
Fy(\034)597 1218 y Fw(`)24 b Fy(P)828 b(P)44 b FF(is)30
b(w)m(ell-t)m(yp)s(ed)1066 1506 y(Figure)h(4:)41 b(BT)-8
b(AL)g(T-R)31 b(t)m(yping)g(judgmen)m(t)f(forms)726 1791
y(\(\()p Fy(\013)p FF(:)p Fy(K)7 b FF(\))26 b Fw(2)f
FF(\001\))p 726 1834 496 4 v 774 1914 a(\001)g Fw(`)f
Fy(\013)i FF(:)g Fy(K)p 1403 1834 377 4 v 236 w FF(\001)f
Fw(`)p 1585 1864 55 4 v 25 w Fy(n)g FF(:)g Fs(N)1821
1857 y FF(\()p Fy(n)g Fw(\025)g FF(0\))2295 1800 y(\001)g
Fw(`)g Fy(t)2510 1814 y Fv(1)2574 1800 y FF(:)h Fs(N)91
b FF(\001)25 b Fw(`)g Fy(t)2995 1814 y Fv(2)3059 1800
y FF(:)h Fs(N)p 2295 1834 880 4 v 2446 1914 a FF(\001)f
Fw(`)g Fy(t)2661 1928 y Fv(1)2720 1914 y FF(+)20 b Fy(t)2844
1928 y Fv(2)2909 1914 y FF(:)25 b Fs(N)980 2181 y FF(\001)g
Fw(`)g Fy(t)1195 2195 y Fv(1)1259 2181 y FF(:)h Fs(N)91
b FF(\001)25 b Fw(`)g Fy(t)1680 2195 y Fv(2)1744 2181
y FF(:)h Fs(N)p 980 2215 V 1129 2295 a FF(\001)f Fw(`)g
Fy(t)1344 2309 y Fv(1)1408 2295 y Fw(\024)g Fy(t)1537
2309 y Fv(2)1602 2295 y FF(:)g Fs(P)2041 2181 y FF(\001)g
Fw(`)g Fy(t)2256 2195 y Fv(1)2320 2181 y FF(:)h Fs(N)91
b FF(\001)25 b Fw(`)g Fy(t)2741 2195 y Fv(2)2805 2181
y FF(:)h Fs(N)p 2041 2215 V 2190 2295 a FF(\001)f Fw(`)g
Fy(t)2405 2309 y Fv(1)2469 2295 y FF(=)g Fy(t)2598 2309
y Fv(2)2663 2295 y FF(:)g Fs(P)858 2582 y FF(Figure)31
b(5:)41 b(Kinding)29 b(for)h(Constrain)m(t)h(T)-8 b(erms)30
b(and)g(F)-8 b(orm)m(ulas)0 2857 y(guarded)29 b(t)m(yp)s(es)g
Fy(')d Fw(\))f Fy(\034)10 b FF(.)41 b(The)28 b(sole)j(v)-5
b(alue)30 b(of)f(t)m(yp)s(e)h Fw(S)7 b FF(\()p Fy(t)p
FF(\))30 b(is)f(the)h(w)m(ord-size)g(enco)s(ding)g(of)f(the)h(natural)f
(n)m(um)m(b)s(er)0 2970 y(denoted)i(b)m(y)g Fy(t)g FF(\(pro)m(vided)h
(suc)m(h)f(a)g(v)-5 b(alue)32 b(exists\);)h(a)f(v)-5
b(alue)31 b(of)h(t)m(yp)s(e)f Fy(')c Fw(\))g Fy(\034)41
b FF(is)31 b(a)h(v)-5 b(alue)32 b(that)g(b)s(elongs)f(to)h(t)m(yp)s(e)0
3083 y Fy(\034)40 b FF(pro)m(vided)30 b(that)h(the)g(form)m(ula)f
Fy(')h FF(is)g(satis\014ed.)0 3323 y FE(2.2.1)105 b(The)35
b(Constrain)m(t)f(Subsystem)0 3494 y FF(The)40 b(purp)s(ose)f(of)h(the)
h(constrain)m(t)g(terms)f(and)g(form)m(ulas)h(is)f(to)h(allo)m(w)h(the)
e(t)m(yp)s(e)h(system)g(to)g(reason)f(ab)s(out)0 3607
y(the)35 b(time)g(remaining)g(b)s(efore)g(the)g(next)g(yield)g
(instruction)f(m)m(ust)h(b)s(e)f(p)s(erformed.)53 b(This)33
b(constrain)m(t)j(logic)h(is)0 3720 y(largely)31 b(separable)f(from)f
(the)h(rest)g(of)f(the)h(t)m(yp)s(e)g(system;)g(in)g(fact,)g(there)g
(is)g(a)g(certain)g(degree)h(of)e(\015exibilit)m(y)i(in)0
3833 y(its)g(design.)40 b(The)30 b(v)m(ersion)h(w)m(e)g(will)g(describ)
s(e)e(here)i(is)f(engineered)h(mostly)g(for)f(clarit)m(y)i(of)f(presen)
m(tation.)141 3946 y(The)39 b(constrain)m(t)i(terms)f(include)g(the)g
(natural)f(n)m(um)m(b)s(ers)g(\(written)p 2593 3896 55
4 v 40 w Fy(n)o FF(,)k(where)c Fy(n)i Fw(\025)f FF(0\))h(and)e(are)h
(closed)0 4059 y(under)e(addition;)45 b(the)40 b(language)i(of)e(form)m
(ulas)g(con)m(tains)h(equalit)m(y)g(\()p Fy(t)2501 4073
y Fv(1)2582 4059 y FF(=)g Fy(t)2727 4073 y Fv(2)2766
4059 y FF(\))f(and)g(ordering)f(\()p Fy(t)3464 4073 y
Fv(1)3545 4059 y Fw(\024)i Fy(t)3690 4073 y Fv(2)3729
4059 y FF(\))f(on)0 4172 y(constrain)m(t)d(terms.)59
b(It)36 b(w)m(ould)g(b)s(e)g(a)h(simple)f(matter)h(to)g(add)f(prop)s
(ositional)h(connectiv)m(es)h(\()p Fw(^)p FF(,)g Fw(_)p
FF(,)f Fw(\033)p FF(,)h Fw(?)p FF(\))e(to)0 4285 y(the)28
b(constrain)m(t)h(logic;)i(somewhat)d(surprisingly)-8
b(,)28 b(w)m(e)h(ha)m(v)m(e)g(not)f(found)f(that)h(this)g(is)g
(necessary)g(to)h(accomplish)0 4398 y(our)j(task.)47
b(W)-8 b(e)34 b(therefore)f(lea)m(v)m(e)i(them)d(out)h(of)g(this)f
(presen)m(tation)h(for)g(simplicit)m(y)-8 b(.)48 b(The)32
b(formation)h(rules)f(for)0 4511 y(constrain)m(t)39 b(terms)e(and)g
(form)m(ulas)h(are)g(giv)m(en)g(in)f(Figure)h(5;)k(note)c(that)g(a)g
(form)m(ula)g(need)f(not)h(b)s(e)f(\\true")h(in)0 4624
y(order)30 b(to)h(b)s(e)f(w)m(ell-formed.)141 4736 y(The)22
b(notion)g(of)g(\\truth")g(for)g(constrain)m(t)h(form)m(ulas)f(is)g
(captured)f(b)m(y)h(a)g(new)g(judgmen)m(t)f(form:)36
b(the)22 b(judgmen)m(t)0 4849 y(\001)30 b Fw(`)h Fy(')j
Fs(true)g FF(means)f(that)i(the)e(truth)g(of)h(the)g(form)m(ula)g
Fy(')g FF(follo)m(ws)h(from)e(the)h(assumptions)f(in)g(\001.)50
b(Note)35 b(that)0 4962 y(according)27 b(to)f(Figure)g(3,)h(\001)f(ma)m
(y)g(con)m(tain)h(b)s(oth)e(kinding)g(assumptions)g(of)g(the)h(form)f
Fy(\013)p FF(:)p Fy(K)33 b FF(and)25 b(h)m(yp)s(otheses)h(of)0
5075 y(the)h(form)g Fy(')g Fs(true)p FF(.)40 b(The)26
b(rules)h(de\014ning)f(the)h(truth)f(judgmen)m(t)h(are)g(giv)m(en)h(in)
f(Figure)h(6.)40 b(They)26 b(are)h(in)m(tended)g(to)0
5188 y(capture)e(a)g(useful,)g(if)g(na)-10 b(\177)-35
b(\020v)m(e,)27 b(theory)e(of)g(addition)f(of)h(natural)g(n)m(um)m(b)s
(ers)e(that)i(will)g(allo)m(w)h(\(at)g(least\))g(the)f(output)0
5301 y(of)33 b(our)g(compiler)g(to)h(b)s(e)f(certi\014ed.)49
b(They)32 b(include)h(re\015exivit)m(y)-8 b(,)36 b(symmetry)-8
b(,)34 b(transitivit)m(y)g(and)f(compatibilit)m(y)1927
5589 y(7)p eop
%%Page: 8 10
8 9 bop 128 168 a FF(\(\()p Fy(')32 b Fs(true)p FF(\))26
b Fw(2)f FF(\001\))p 128 210 570 4 v 202 290 a(\001)g
Fw(`)f Fy(')31 b Fs(true)977 191 y FF(\001)25 b Fw(`)g
Fy(t)g FF(:)h Fs(N)p 879 210 551 4 v 879 290 a FF(\001)f
Fw(`)g Fy(t)g FF(=)g Fy(t)30 b Fs(true)1612 177 y FF(\001)25
b Fw(`)f Fy(t)1826 191 y Fv(2)1891 177 y FF(=)h Fy(t)2020
191 y Fv(1)2089 177 y Fs(true)p 1612 210 630 4 v 1612
290 a FF(\001)g Fw(`)f Fy(t)1826 304 y Fv(1)1891 290
y FF(=)h Fy(t)2020 304 y Fv(2)2089 290 y Fs(true)2422
177 y FF(\001)h Fw(`)e Fy(t)2637 191 y Fv(1)2702 177
y FF(=)h Fy(t)2831 191 y Fv(3)2900 177 y Fs(true)92 b
FF(\001)25 b Fw(`)f Fy(t)3357 191 y Fv(3)3422 177 y FF(=)h
Fy(t)3551 191 y Fv(2)3620 177 y Fs(true)p 2422 210 1350
4 v 2783 290 a FF(\001)g Fw(`)f Fy(t)2997 304 y Fv(1)3062
290 y FF(=)h Fy(t)3191 304 y Fv(2)3260 290 y Fs(true)252
569 y FF(\001)g Fw(`)g Fy(t)467 583 y Fv(1)532 569 y
FF(=)g Fy(t)661 536 y Ft(0)661 593 y Fv(1)730 569 y Fs(true)91
b FF(\001)25 b Fw(`)g Fy(t)1187 583 y Fv(2)1252 569 y
FF(=)g Fy(t)1381 536 y Ft(0)1381 593 y Fv(2)1450 569
y Fs(true)p 252 613 V 429 699 a FF(\001)g Fw(`)g Fy(t)644
713 y Fv(1)703 699 y FF(+)20 b Fy(t)827 713 y Fv(2)892
699 y FF(=)25 b Fy(t)1021 666 y Ft(0)1021 724 y Fv(1)1080
699 y FF(+)20 b Fy(t)1204 666 y Ft(0)1204 724 y Fv(2)1274
699 y Fs(true)p 1783 612 976 4 v 358 w FF(\001)25 b Fw(`)p
1965 649 80 4 v 25 w Fy(m)20 b FF(+)p 2156 649 55 4 v
20 w Fy(n)25 b FF(=)p 2332 636 246 4 v 25 w Fy(m)20 b
FF(+)g Fy(n)30 b Fs(true)3117 586 y FF(\001)25 b Fw(`)g
Fy(t)g FF(:)g Fs(N)p 2941 606 707 4 v 2941 699 a FF(\001)g
Fw(`)p 3123 630 46 4 v 25 w FF(0)20 b(+)g Fy(t)25 b FF(=)g
Fy(t)30 b Fs(true)667 997 y FF(\001)25 b Fw(`)g Fy(t)882
1011 y Fv(1)947 997 y FF(:)g Fs(N)92 b FF(\001)25 b Fw(`)f
Fy(t)1367 1011 y Fv(2)1432 997 y FF(:)h Fs(N)p 609 1031
996 4 v 609 1110 a FF(\001)g Fw(`)g Fy(t)824 1124 y Fv(1)883
1110 y FF(+)20 b Fy(t)1007 1124 y Fv(2)1072 1110 y FF(=)25
b Fy(t)1201 1124 y Fv(2)1260 1110 y FF(+)20 b Fy(t)1384
1124 y Fv(1)1454 1110 y Fs(true)2042 983 y FF(\001)25
b Fw(`)g Fy(t)2257 997 y Fx(i)2311 983 y FF(:)g Fs(N)31
b FF(\(for)f Fy(i)c FF(=)f(1)p Fy(;)15 b FF(2)p Fy(;)g
FF(3\))p 1787 1026 1505 4 v 1787 1110 a(\001)25 b Fw(`)g
FF(\()p Fy(t)2037 1124 y Fv(1)2096 1110 y FF(+)20 b Fy(t)2220
1124 y Fv(2)2260 1110 y FF(\))g(+)g Fy(t)2439 1124 y
Fv(3)2504 1110 y FF(=)25 b Fy(t)2633 1124 y Fv(1)2692
1110 y FF(+)20 b(\()p Fy(t)2851 1124 y Fv(2)2911 1110
y FF(+)g Fy(t)3035 1124 y Fv(3)3074 1110 y FF(\))31 b
Fs(true)286 1387 y FF(\001)25 b Fw(`)f Fy(t)500 1401
y Fv(1)565 1387 y FF(=)h Fy(t)694 1401 y Fv(2)764 1387
y Fs(true)p 286 1421 630 4 v 286 1501 a FF(\001)g Fw(`)f
Fy(t)500 1515 y Fv(1)565 1501 y Fw(\024)h Fy(t)694 1515
y Fv(2)764 1501 y Fs(true)1097 1387 y FF(\001)g Fw(`)f
Fy(t)1311 1401 y Fv(1)1376 1387 y Fw(\024)h Fy(t)1505
1401 y Fv(3)1574 1387 y Fs(true)92 b FF(\001)25 b Fw(`)f
Fy(t)2031 1401 y Fv(3)2096 1387 y Fw(\024)h Fy(t)2225
1401 y Fv(2)2294 1387 y Fs(true)p 1097 1421 1350 4 v
1457 1501 a FF(\001)g Fw(`)f Fy(t)1671 1515 y Fv(1)1736
1501 y Fw(\024)h Fy(t)1865 1515 y Fv(2)1934 1501 y Fs(true)p
2628 1421 619 4 v 543 w FF(\001)g Fw(`)p 2809 1450 80
4 v 24 w Fy(m)g Fw(\024)p 3010 1450 55 4 v 25 w Fy(n)30
b Fs(true)3288 1444 y FF(\()p Fy(m)25 b Fw(\024)g Fy(n)p
FF(\))726 1775 y(\001)g Fw(`)g Fy(t)941 1789 y Fv(1)1005
1775 y Fw(\024)g Fy(t)1134 1742 y Ft(0)1134 1799 y Fv(1)1204
1775 y Fs(true)91 b FF(\001)25 b Fw(`)g Fy(t)1661 1789
y Fv(2)1725 1775 y Fw(\024)g Fy(t)1854 1742 y Ft(0)1854
1799 y Fv(2)1924 1775 y Fs(true)p 726 1819 1350 4 v 903
1906 a FF(\001)g Fw(`)f Fy(t)1117 1920 y Fv(1)1177 1906
y FF(+)c Fy(t)1301 1920 y Fv(2)1365 1906 y Fw(\024)25
b Fy(t)1494 1873 y Ft(0)1494 1930 y Fv(1)1554 1906 y
FF(+)20 b Fy(t)1678 1873 y Ft(0)1678 1930 y Fv(2)1747
1906 y Fs(true)2257 1792 y FF(\001)25 b Fw(`)g Fy(t)20
b FF(+)g Fy(t)2616 1806 y Fv(1)2680 1792 y Fw(\024)25
b Fy(t)20 b FF(+)g Fy(t)2953 1806 y Fv(2)3023 1792 y
Fs(true)p 2257 1826 918 4 v 2401 1906 a FF(\001)25 b
Fw(`)g Fy(t)2616 1920 y Fv(1)2680 1906 y Fw(\024)g Fy(t)2809
1920 y Fv(2)2879 1906 y Fs(true)1372 2193 y FF(Figure)31
b(6:)41 b(T)-8 b(ruth)30 b(of)g(F)-8 b(orm)m(ulas)0 2468
y(rules)29 b(for)g(equalit)m(y;)i(an)e(axiom)h(for)f(addition)h(of)f
(natural)g(n)m(um)m(b)s(er)f(constan)m(ts;)j(iden)m(tit)m(y)-8
b(,)32 b(comm)m(utativit)m(y)g(and)0 2581 y(asso)s(ciativit)m(y)44
b(rules)c(for)h(addition;)46 b(re\015exivit)m(y)c(and)e(transitivit)m
(y)i(for)f Fw(\024)p FF(,)i(and)d(an)h(axiom)h(for)e(ordering)h(of)0
2694 y(constan)m(ts;)33 b(monotonicit)m(y)g(of)e(addition;)h(and)e
(\014nally)h(a)h(rule)e(allo)m(wing)j(cancellation)h(of)d(an)g(addend)f
(on)h(b)s(oth)0 2807 y(sides)f(of)h(an)f(inequalit)m(y)-8
b(.)0 3047 y FE(2.2.2)105 b(The)35 b(Virtual)g(Clo)s(c)m(k)0
3219 y FF(The)g(k)m(ey)i(to)f(the)g(CPU)g(usage)g(b)s(ound)e(capabilit)
m(y)j(of)f(T)-8 b(AL)g(T-R)36 b(is)g(the)g FB(virtual)i(clo)-5
b(ck)p FF(.)57 b(T)-8 b(o)36 b(ensure)f(that)i(the)0
3331 y Fz(yield)h FF(instruction)h(is)h(p)s(erformed)e(at)i(least)h(ev)
m(ery)f Fy(Y)59 b FF(instructions,)42 b(w)m(e)e(add)f(to)h(the)f
(dynamic)h(seman)m(tics)0 3444 y(of)33 b(our)f(language)i(an)f
(imaginary)g(\\clo)s(c)m(k")i(register)f(that)f(is)g(decremen)m(ted)g
(for)g(ev)m(ery)g(instruction)g(executed.)0 3557 y(No)j(instruction)g
(\(other)g(than)f Fz(yield)o FF(\))h(ma)m(y)g(execute)h(unless)e(the)h
(coun)m(ter)g(is)g(at)g(least)h(1.)57 b(This)35 b(metho)s(d)g(of)0
3670 y(instruction)30 b(coun)m(ting)h(is)f(not)g(new:)40
b(Necula)31 b(and)f(Lee)g([30)q(])h(prop)s(osed)d(the)j(use)e(of)h(a)h
(virtual)f(clo)s(c)m(k)i(for)d(pro)s(of-)0 3783 y(carrying)j(co)s(de,)g
(and)f(Crary)g(and)g(W)-8 b(eiric)m(h)33 b([10)q(])f(used)e(one)i(in)f
(their)h(languages)h(LXres)e(and)g(T)-8 b(ALres.)44 b(Unlik)m(e)0
3896 y(these)31 b(other)g(e\013orts,)h(ho)m(w)m(ev)m(er,)g(w)m(e)g(are)
f(not)g(attempting)h(to)f(b)s(ound)e(total)j(running)d(time)j(here;)f
(w)m(e)g(am)g(only)0 4009 y(in)m(terested)i(in)f(b)s(ounding)f(the)h
(time)h(un)m(til)g(the)f(next)h(yield.)46 b(The)32 b
Fz(yield)f FF(instruction,)i(therefore,)g(resets)g(this)0
4122 y(coun)m(ter)e(to)g Fy(Y)20 b FF(.)141 4235 y(Accoun)m(ting)45
b(for)e(the)h(virtual)f(clo)s(c)m(k)i(in)e(the)h(t)m(yp)s(e)f(system)h
(is)f(not)h(di\016cult.)79 b(Register)45 b(\014le)e(t)m(yp)s(es,)k(in)0
4348 y(addition)26 b(to)h(giving)g(t)m(yp)s(es)f(for)g(the)g(mac)m
(hine's)h(general-purp)s(ose)f(registers)g(and)g(the)g(stac)m(k,)j(giv)
m(e)e(a)g(constrain)m(t)0 4461 y(term)i(that)g(conserv)-5
b(ativ)m(ely)31 b(appro)m(ximates)e(the)g(v)-5 b(alue)29
b(of)g(the)g(virtual)g(clo)s(c)m(k.)41 b(That)29 b(is)f(to)i(sa)m(y)-8
b(,)30 b(if)f(\001;)15 b(\011;)g(\000)25 b Fw(`)g Fy(I)7
b FF(,)0 4573 y(then)32 b(the)g(instruction)f(sequence)i
Fy(I)39 b FF(ma)m(y)32 b(safely)h(b)s(e)e(executed)h(if)g(the)g(v)-5
b(alue)33 b(of)f(the)g(virtual)g(clo)s(c)m(k)h(is)f(at)h(least)0
4686 y(\(the)e(n)m(um)m(b)s(er)e(denoted)h(b)m(y\))h(\000\()p
Fz(ck)p FF(\).)41 b(F)-8 b(or)31 b(example,)g(the)g(t)m(yping)g(rule)f
(for)g(the)g Fz(add)g FF(instruction)g(is:)889 4888 y(\001;)15
b(\011;)g(\000)25 b Fw(`)g Fy(o)1323 4902 y Fv(1)1388
4888 y FF(:)g Fz(int)91 b FF(\001;)15 b(\011;)g(\000)25
b Fw(`)g Fy(o)2107 4902 y Fv(2)2171 4888 y FF(:)h Fz(int)790
5001 y FF(\001;)15 b(\011;)g(\000)26 b Fw(`)e Fy(d)i
FF(:)f Fz(int)g Fw(!)g FF(\000)1645 4968 y Ft(0)1759
5001 y FF(\001;)15 b(\011;)g(\000)2043 4968 y Ft(0)2066
5001 y Fw(f)p Fz(ck)p FF(:)p Fy(t)p Fw(g)26 b(`)f Fy(I)p
749 5054 1757 4 v 1154 5134 a FF(\001;)15 b(\011;)g(\000)25
b Fw(`)g Fz(add)30 b Fy(d;)15 b(o)1849 5148 y Fv(1)1889
5134 y Fy(;)g(o)1973 5148 y Fv(2)2013 5134 y FF(;)g Fy(I)2547
5077 y FF(\(\000\()p Fz(ck)p FF(\))26 b(=)f(1)20 b(+)g
Fy(t)p FF(\))0 5338 y(Similarly)-8 b(,)29 b(a)e(co)s(de)h(p)s(oin)m
(ter)f(of)g(t)m(yp)s(e)h(\000)1350 5305 y Ft(0)1398 5338
y Fw(!)d FF(0)j(is)f(safe)h(to)g(jump)d(to)j(only)f(if)h(the)f(virtual)
h(clo)s(c)m(k)g(is)f(at)h(least)h(\000)3711 5305 y Ft(0)3734
5338 y FF(\()p Fz(ck)p FF(\))1927 5589 y(8)p eop
%%Page: 9 11
9 10 bop 0 91 a FB(after)37 b(the)g(jump)6 b FF(;)38
b(that)d(is,)h(the)f(clo)s(c)m(k)i(m)m(ust)d(read)h(at)h(least)g(1)23
b(+)g(\000)2349 58 y Ft(0)2372 91 y FF(\()p Fz(ck)p FF(\))35
b(in)g(order)f(for)h(the)g(jump)e(instruction)0 204 y(itself)e(to)g(b)s
(e)f(safe:)1093 281 y(\001;)15 b(\011;)g(\000)25 b Fw(`)g
Fy(o)g FF(:)h(\(\000)p Fw(f)p Fz(ck)p FF(:)p Fy(t)p Fw(g)p
FF(\))g Fw(!)f FF(0)p 1093 323 1069 4 v 1279 403 a(\001;)15
b(\011;)g(\000)26 b Fw(`)f Fz(jmp)k Fy(o)p FF(;)15 b
Fy(I)2203 346 y FF(\(\000\()p Fz(ck)p FF(\))26 b(=)f(1)20
b(+)g Fy(t)p FF(\))0 570 y(The)30 b Fz(yield)f FF(instruction)h(ma)m(y)
h(b)s(e)f(p)s(erformed)f(at)i(an)m(y)g(time,)g(and)f(resets)g(the)h
(virtual)g(clo)s(c)m(k)g(to)h Fy(Y)20 b FF(:)1589 770
y(\001;)15 b(\011;)g(\000)p Fw(f)p Fz(ck)p FF(:)p 2039
697 73 4 v Fy(Y)20 b Fw(g)26 b(`)f Fy(I)p 1589 813 722
4 v 1592 892 a FF(\001;)15 b(\011;)g(\000)25 b Fw(`)g
Fz(yield)o FF(;)15 b Fy(I)141 1097 y FF(The)39 b(fact)h(that)g(\000\()p
Fz(ck)o FF(\))g(is)f(an)g FB(appr)-5 b(oximation)50 b
FF(of)40 b(the)f(virtual)g(clo)s(c)m(k)i(comes)f(from)f(T)-8
b(AL)g(T-R's)39 b(rule)g(for)0 1210 y(register)31 b(\014le)g(subt)m
(yping,)f(whic)m(h)g(allo)m(ws)h(the)g(constrain)m(t)h(term)e(assigned)
h(to)g Fz(ck)e FF(to)j(v)-5 b(ary:)851 1397 y(\001)25
b Fw(`)g Fy(t)1066 1364 y Ft(0)1114 1397 y Fw(\024)g
Fy(t)30 b Fs(true)92 b FF(\001)25 b Fw(`)f Fy(\034)36
b Fw(\024)25 b Fy(\034)1919 1364 y Ft(0)2033 1397 y FF(\001)g
Fw(`)g Fy(\034)2255 1411 y Fx(i)2308 1397 y Fw(\024)g
Fy(\034)2454 1364 y Ft(0)2444 1422 y Fx(i)2508 1397 y
FF(for)30 b(1)25 b Fw(\024)g Fy(i)h Fw(\024)f Fy(N)p
652 1442 2596 4 v 652 1529 a FF(\001)g Fw(`)g(f)p Fz(r1)p
FF(:)p Fy(\034)1040 1543 y Fv(1)1079 1529 y Fy(;)15 b(:)g(:)g(:)i(;)e
Fz(rN)p FF(:)p Fy(\034)1442 1543 y Fx(N)1509 1529 y Fy(;)g
Fz(sp)p FF(:)p Fy(\034)5 b(;)15 b Fz(ck)p FF(:)p Fy(t)p
Fw(g)26 b(\024)f(f)p Fz(r1)p FF(:)p Fy(\034)2292 1496
y Ft(0)2282 1553 y Fv(1)2321 1529 y Fy(;)15 b(:)g(:)g(:)i(;)e
Fz(rN)p FF(:)p Fy(\034)2694 1496 y Ft(0)2684 1556 y Fx(N)2751
1529 y Fy(;)g Fz(sp)p FF(:)p Fy(\034)2962 1496 y Ft(0)2985
1529 y Fy(;)g Fz(ck)p FF(:)p Fy(t)3179 1496 y Ft(0)3202
1529 y Fw(g)0 1733 y FF(According)42 b(to)f(this)g(rule,)j(a)d
(register)h(\014le)f(t)m(yp)s(e)h(where)e(the)h(virtual)h(clo)s(c)m(k)g
(reads)f Fy(t)g FF(can)g(b)s(e)f(a)i(subt)m(yp)s(e)e(of)0
1846 y(one)c(where)g(it)h(reads)f Fy(t)815 1813 y Ft(0)874
1846 y FF(if)g(the)h(form)m(ula)f Fy(t)1498 1813 y Ft(0)1556
1846 y Fw(\024)f Fy(t)h FF(can)g(b)s(e)g(pro)m(v)m(ed)g(in)g(the)h
(constrain)m(t)g(logic.)60 b(In)m(tuitiv)m(ely)-8 b(,)40
b(the)0 1959 y(register)32 b(\014le)g(t)m(yp)s(e)g(on)f(the)h(left)g
(sp)s(eci\014es)g(that)g(the)g(v)-5 b(alue)32 b(of)f(the)h(virtual)g
(clo)s(c)m(k)h(is)f FB(at)i(le)-5 b(ast)41 b Fy(t)p FF(;)32
b(if)g Fy(t)3485 1926 y Ft(0)3535 1959 y Fw(\024)27 b
Fy(t)p FF(,)32 b(then)0 2072 y(an)m(ything)d(that)g(is)f(at)i(least)f
Fy(t)g FF(will)f(also)i(b)s(e)e(at)h(least)h Fy(t)1868
2039 y Ft(0)1891 2072 y FF(.)40 b(The)28 b(register)h(\014le)g(t)m(yp)s
(e)f(sp)s(ecifying)g Fz(ck)p FF(:)p Fy(t)g FF(is)h(a)g(stronger)0
2185 y(requiremen)m(t)i(on)f(the)g(state)i(of)f(the)f(mac)m(hine,)i
(consisten)m(t)f(with)f(the)h(usual)f(meaning)g(of)h(subt)m(yping.)141
2298 y(Because)26 b(the)e(register)i(\014le)e(subt)m(yping)g(rule)g(in)
m(v)m(olv)m(es)i(reasoning)f(ab)s(out)f(the)g(virtual)h(clo)s(c)m(k,)i
(the)e(subt)m(yping)0 2410 y(rule)g(for)h(arro)m(w)f(t)m(yp)s(es)h(and)
f(the)h(subsumption)d(rule)j(for)f(instruction)h(sequences)f(tak)m(e)j
(on)d(additional)i(meaning)0 2523 y(in)j(T)-8 b(AL)g(T-R)31
b(as)f(w)m(ell.)42 b(T)-8 b(o)31 b(b)s(e)f(sp)s(eci\014c,)g(the)h
(subsumption)d(rule)i(\(inherited)g(unc)m(hanged)h(from)e(T)-8
b(AL)g(T\):)1454 2716 y(\001;)15 b(\011;)g(\000)1738
2683 y Ft(0)1787 2716 y Fw(`)25 b Fy(I)98 b FF(\001)25
b Fw(`)g FF(\000)g Fw(\024)g FF(\000)2423 2683 y Ft(0)p
1454 2753 992 4 v 1731 2833 a FF(\001;)15 b(\011;)g(\000)26
b Fw(`)f Fy(I)0 3037 y FF(no)m(w)36 b(allo)m(ws)h(an)f(instruction)f
(sequence)h(to)h(\\forget")h(ab)s(out)d(some)h(of)g(the)g(remaining)g
(tic)m(ks)h(on)f(the)g(virtual)0 3150 y(clo)s(c)m(k.)42
b(The)30 b(subt)m(yping)g(rule)g(for)g(co)s(de)h(p)s(oin)m(ter)f(t)m
(yp)s(es)g(\000)25 b Fw(!)h FF(0)k(is)h(con)m(tra)m(v)-5
b(arian)m(t)33 b(in)d(\000)g(as)h(alw)m(a)m(ys:)1730
3337 y(\001)25 b Fw(`)g FF(\000)1969 3304 y Ft(0)2017
3337 y Fw(\024)g FF(\000)p 1543 3370 814 4 v 1543 3456
a(\001)g Fw(`)g FF(\000)g Fw(!)g FF(0)h Fw(\024)f FF(\000)2147
3423 y Ft(0)2195 3456 y Fw(!)g FF(0)0 3660 y(Coupled)k(with)h(the)g
(register)h(\014le)f(subt)m(yping)f(rule,)h(this)g(means)g(that)h(a)f
(p)s(oin)m(ter)g(to)h(an)f(instruction)g(sequence)0 3773
y(exp)s(ecting)d Fy(t)g FF(on)f(the)h(clo)s(c)m(k)h(ma)m(y)f(b)s(e)f
(used)g(in)g(place)i(of)e(one)h(exp)s(ecting)h Fy(t)2515
3740 y Ft(0)2564 3773 y FF(if)f Fy(t)e Fw(\024)g Fy(t)2831
3740 y Ft(0)2854 3773 y FF(.)39 b(In)m(tuitiv)m(ely)29
b(sp)s(eaking,)e(this)0 3886 y(is)35 b(b)s(ecause)g(an)m(y)h(subsequen)
m(t)f(jump)e(to)j(that)g(p)s(oin)m(ter)f(will)h(ha)m(v)m(e)g(to)g(pro)m
(vide)f(a)h(clo)s(c)m(k)h(of)e(at)h(least)g Fy(t)3585
3853 y Ft(0)3609 3886 y FF(,)g(whic)m(h)0 3999 y(will)31
b(b)s(e)e(at)j(least)f(enough)f(since)h(the)g(instruction)f(sequence)h
(requires)f(only)g Fy(t)p FF(.)0 4239 y FE(2.2.3)105
b(Guarded)36 b(and)e(Singleton)i(T)m(yp)s(es)0 4411 y
FF(There)i(are)i(t)m(w)m(o)g(forms)e(of)h(t)m(yp)s(e)g(in)f(T)-8
b(AL)g(T-R)40 b(that)f(are)g(not)g(presen)m(t)g(in)g(T)-8
b(AL)g(T:)39 b FB(guar)-5 b(de)g(d)42 b(typ)-5 b(es)47
b FF(\()p Fy(')40 b Fw(\))g Fy(\034)10 b FF(\))0 4524
y(and)32 b FB(singleton)k(typ)-5 b(es)42 b FF(\()p Fw(S)7
b FF(\()p Fy(t)p FF(\)\).)50 b(The)32 b(in)m(tuitiv)m(e)j(meanings)e
(of)h(these)f(t)m(yp)s(es)g(are)h(simple,)g(but)e(their)h(usefulness)0
4637 y(ma)m(y)41 b(not)g(b)s(e)f(ob)m(vious)h(un)m(til)g(w)m(e)g
(discuss)e(yield-placemen)m(t)k(strategies)f(in)f(Section)g(4.)72
b(Basically)-8 b(,)46 b(w)m(e)41 b(will)0 4749 y(use)33
b(them)h(to)g(construct)h(more)e(precise)h(t)m(yp)s(es)g(for)g
(functions)f(than)g(w)m(ould)h(otherwise)g(b)s(e)f(p)s(ossible,)h(so)g
(that)0 4862 y(the)39 b(constrain)m(t)h(reasoning)f(built)f(in)m(to)i
(the)f(t)m(yp)s(e)f(system)h(can)g(allo)m(w)h(more)f(e\016cien)m(t)h
(co)s(de)f(to)h(b)s(e)e(written.)0 4975 y(They)e(are)g(not)g(strictly)h
(necessary)g(in)e(the)i(sense)f(that)g(it)h(is)f(p)s(ossible)f(to)i
(write)f(a)h(compiler)f(whose)g(output)0 5088 y(is)d(w)m(ell-t)m(yp)s
(ed)i(without)e(them,)h(but)f(w)m(e)g(exp)s(ect)h(they)g(will)f(deliv)m
(er)h(signi\014can)m(t)h(p)s(erformance)d(b)s(ene\014ts)g(for)i(a)0
5201 y(reasonably)d(small)g(metatheoretic)i(in)m(v)m(estmen)m(t.)1927
5589 y(9)p eop
%%Page: 10 12
10 11 bop 471 201 a FF(\001)25 b Fw(`)g Fy(t)g FF(:)g
Fs(N)p 356 221 584 4 v 356 305 a FF(\001)g Fw(`)g(S)7
b FF(\()p Fy(t)p FF(\))26 b(:)f Fs(T)p Fy(W)1122 178
y FF(\(0)h Fw(\024)f Fy(n)f Fw(\024)h FF(2)1544 145 y
Fv(8)p Fx(W)1681 178 y Fw(\000)20 b FF(1\))p 1122 221
731 4 v 1237 305 a(\001)25 b Fw(`)g Fy(n)g FF(:)h Fw(S)7
b FF(\()p 1647 255 55 4 v Fy(n)o FF(\))2076 187 y(\001)25
b Fw(`)g Fy(t)2291 201 y Fv(1)2356 187 y FF(=)f Fy(t)2484
201 y Fv(2)2554 187 y Fs(true)p 2034 221 713 4 v 2034
305 a FF(\001)h Fw(`)g(S)7 b FF(\()p Fy(t)2346 319 y
Fv(1)2386 305 y FF(\))25 b Fw(\024)g(S)7 b FF(\()p Fy(t)2672
319 y Fv(2)2712 305 y FF(\))3059 201 y(\001)25 b Fw(`)g
Fy(t)g FF(:)g Fs(N)p 2929 221 615 4 v 2929 305 a FF(\001)g
Fw(`)g(S)7 b FF(\()p Fy(t)p FF(\))25 b Fw(\024)g Fz(B)p
Fy(W)1096 593 y FF(Figure)31 b(7:)41 b(Elemen)m(tary)32
b(Rules)e(for)g(Singletons)141 868 y(A)36 b(guarded)g(t)m(yp)s(e)g
Fy(')f Fw(\))g Fy(\034)46 b FF(describ)s(es)36 b(v)-5
b(alues)36 b(that)h(ma)m(y)f(b)s(e)g(used)f(at)i(t)m(yp)s(e)f
Fy(\034)46 b FF(only)37 b(if)f(the)g(form)m(ula)g Fy(')h
FF(is)0 981 y(true.)k(This)29 b(is)i(captured)f(b)m(y)g(a)h(subt)m
(yping)e(rule:)1508 1161 y(\001)c Fw(`)g Fy(\034)35 b
FF(:)26 b Fs(T)91 b FF(\001)25 b Fw(`)g Fy(')30 b Fs(true)p
1508 1199 884 4 v 1648 1278 a FF(\001)25 b Fw(`)g Fy(')h
Fw(\))f Fy(\034)35 b Fw(\024)25 b Fy(\034)0 1483 y FF(Using)36
b(this)g(rule,)h(an)f(op)s(erand)f Fy(o)h FF(of)g(t)m(yp)s(e)g
Fy(')f Fw(\))g Fy(\034)46 b FF(ma)m(y)36 b(b)s(e)g(promoted)g(to)g(t)m
(yp)s(e)g Fy(\034)46 b FF(if)36 b Fy(')h FF(is)f(pro)m(v)-5
b(able)36 b(in)g(the)0 1596 y(constrain)m(t)c(logic.)42
b(If)30 b(the)g(truth)g(of)h Fy(')f FF(cannot)h(b)s(e)f(deriv)m(ed,)h
(then)f(no)g(in)m(teresting)i(use)e(can)h(b)s(e)e(made)i(of)f
Fy(o)p FF(.)141 1708 y(The)25 b(in)m(tro)s(duction)g(mec)m(hanism)g
(for)g(guarded)f(t)m(yp)s(es)h(di\013ers)g(sligh)m(tly)h(b)s(et)m(w)m
(een)g(T)-8 b(AL)g(T-R)26 b(and)e(BT)-8 b(AL)g(T-R.)0
1821 y(In)30 b(b)s(oth)f(systems,)i(there)f(is)h(a)g(guarded)e(t)m(yp)s
(e)i(in)m(tro)s(duction)f(rule)g(for)h(v)-5 b(alues:)1541
2007 y(\(\001)p Fy(;)15 b(')31 b Fs(true)p FF(\);)15
b(\011)26 b Fw(`)f Fy(v)k FF(:)c Fy(\034)p 1541 2050
819 4 v 1617 2129 a FF(\001;)15 b(\011)25 b Fw(`)f Fy(v)29
b FF(:)d Fy(')f Fw(\))g Fy(\034)0 2333 y FF(According)41
b(to)g(this)g(rule,)i(to)e(conclude)g(that)g Fy(v)i FF(has)e(t)m(yp)s
(e)f Fy(')j Fw(\))f Fy(\034)50 b FF(it)41 b(su\016ces)f(to)h(sho)m(w)g
(that)g Fy(v)j FF(has)c(t)m(yp)s(e)0 2446 y Fy(\034)10
b FF(,)37 b(under)d(the)h(assumption)g(that)h Fy(')g
FF(is)f(true.)56 b(Imp)s(ortan)m(tly)-8 b(,)37 b(the)f(deriv)-5
b(ation)36 b(of)g Fy(v)h FF(:)c Fy(\034)46 b FF(ma)m(y)36
b(dep)s(end)d(on)j(the)0 2559 y(h)m(yp)s(othesis)g Fy(')i
Fs(true)p FF(;)i Fy(v)g FF(need)d(not)g(b)s(e)f(w)m(ell-t)m(yp)s(ed)h
(at)h(all)g(without)e(it.)61 b(It)37 b(is)g(w)m(orth)f(noticing)i(that)
g(guarded)0 2672 y(t)m(yp)s(es)32 b(b)s(ear)f(a)h(certain)g(similarit)m
(y)h(to)f Fw(8)p FF(-t)m(yp)s(es:)43 b(b)s(oth)31 b(are)h(in)m(tro)s
(duced)f(b)m(y)g(t)m(yping)h(a)g(v)-5 b(alue)32 b(under)e(some)i(new)0
2785 y(assumption,)e(and)g(b)s(oth)f(are)i(eliminated)h(b)m(y)e(subt)m
(yping)g(rules)g(that)h(\\v)-5 b(alidate")32 b(the)f(assumption.)141
2898 y(It)f(is)g(v)m(ery)g(imp)s(ortan)m(t)g(that)g(one)g(b)s(e)f(able)
i(to)f(giv)m(e)h(guarded)f(t)m(yp)s(es)f(to)i(co)s(de)f(p)s(oin)m
(ters|more)g(imp)s(ortan)m(t,)0 3011 y(in)g(fact,)i(than)e(for)g(an)m
(y)h(other)f(kind)g(of)h(v)-5 b(alue.)41 b(In)30 b(T)-8
b(AL)g(T-R,)31 b(blo)s(c)m(ks)f(of)h(co)s(de)g(are)f(simply)g(v)-5
b(alues,)31 b(and)f(so)h(the)0 3124 y(ab)s(o)m(v)m(e)i(rule)e(is)h
(su\016cien)m(t.)44 b(In)31 b(BT)-8 b(AL)g(T-R,)33 b(instruction)e
(sequences)h(are)g(treated)g(sp)s(ecially)-8 b(,)34 b(so)e(an)f
(additional)0 3237 y(guarded)f(t)m(yp)s(e)g(in)m(tro)s(duction)h(rule)f
(for)g(blo)s(c)m(ks)h(is)f(required:)1425 3422 y(\011;)15
b(\(\001)p Fy(;)g(')32 b Fs(true)p FF(\))25 b Fw(`)g
Fy(I)33 b FF(:)25 b Fy(\034)40 b Fs(blo)s(ck)p 1425 3465
1050 4 v 1501 3545 a FF(\011;)15 b(\001)25 b Fw(`)g Fy(I)32
b FF(:)26 b Fy(')f Fw(\))g Fy(\034)41 b Fs(blo)s(ck)0
3749 y FF(This)31 b(rule)h(is)g(analogous)h(to)g(the)f(rule)f(for)h(v)
-5 b(alues,)33 b(and)e(states)i(that)g(one)f(ma)m(y)h(giv)m(e)g(a)f
(guarded)g(t)m(yp)s(e)g(to)g(\(the)0 3862 y(address)d(of)7
b(\))31 b(a)g(blo)s(c)m(k)g(of)g(instructions)f(that)h(is)f(w)m(ell-t)m
(yp)s(ed)i(under)c(the)j(assumption)f(that)h(the)f(guard)g(is)h(true.)
141 3975 y(Singleton)g(t)m(yp)s(es)f(in)g(T)-8 b(AL)g(T-R)30
b(pla)m(y)h(a)f(role)h(similar)f(to)h(that)g(of)f(singletons)h(in)f(DT)
-8 b(AL)30 b([43)q(])h(and)e(L)-8 b(TT)30 b([8].)0 4088
y(In)25 b(DT)-8 b(AL)26 b(one)h(writes)f(a)g(singleton)h(t)m(yp)s(e)f
(as)g(in)m(t)q(\()p Fy(x)p FF(\),)h(where)f Fy(x)f FF(is)h(an)g
(\\index)g(expression";)i(in)d(L)-8 b(TT)26 b(one)g(writes)0
4201 y Fy(S)56 4215 y Fq(Int)157 4201 y FF(\()p Fy(M)10
b FF(\),)30 b(where)f Fy(M)38 b FF(is)29 b(the)g(pro)s(of-language)h
(represen)m(tation)g(of)f(an)f(in)m(teger.)42 b(In)28
b(T)-8 b(AL)g(T-R,)29 b(the)g(t)m(yp)s(e)g Fw(S)7 b FF(\()p
Fy(t)p FF(\))29 b(is)0 4313 y(w)m(ell-formed)h(when)d
Fy(t)i FF(is)g(a)g(w)m(ell-formed)h(constrain)m(t)g(term)f(\()p
FB(i.e.)p FF(,)g(it)g(has)g(kind)f Fs(N)p FF(\),)i(and)e(con)m(tains)i
(at)f(most)h(one)0 4426 y(v)-5 b(alue:)45 b(the)33 b(w)m(ord-sized)g
(unsigned)e(binary)h(represen)m(tation)i(of)e(the)h(natural)f(n)m(um)m
(b)s(er)g(denoted)g(b)m(y)h Fy(t)p FF(.)46 b(\(If)33
b(the)0 4539 y(meaning)28 b(of)g Fy(t)g FF(is)g(outside)g(the)g
(represen)m(table)h(range,)g(then)f Fw(S)7 b FF(\()p
Fy(t)p FF(\))28 b(is)g(an)g(empt)m(y)g(t)m(yp)s(e.\))41
b(The)27 b(most)h(elemen)m(tary)0 4652 y(rules)i(for)g(singleton)h(t)m
(yp)s(es)g(are)g(sho)m(wn)e(in)h(Figure)h(7.)141 4765
y(In)26 b(DT)-8 b(AL)27 b(and)g(L)-8 b(TT,)26 b(programs)g(ma)m(y)i(p)s
(erform)d(arithmetic)j(on)f(v)-5 b(alues)27 b(of)g(singleton)h(t)m(yp)s
(e,)g(and)e(the)h(t)m(yp)s(e)0 4878 y(system)g(trac)m(ks)i(this)e
(manipulation)g(sym)m(b)s(olically)i(b)m(y)e(giving)h(an)f(appropriate)
g(singleton)h(t)m(yp)s(e)f(to)h(the)g(result.)0 4991
y(As)c(it)g(happ)s(ens,)f(the)h(particular)g(use)f(w)m(e)h(will)g(ha)m
(v)m(e)h(for)f(singleton)g(t)m(yp)s(es)g(in)f(T)-8 b(AL)g(T-R)24
b(is)g(to)g(describ)s(e)f(a)h(coun)m(ter)0 5104 y(whic)m(h)h(is)f(rep)s
(eatedly)i(decremen)m(ted)f(un)m(til)g(it)h(reac)m(hes)f(zero.)40
b(Consequen)m(tly)-8 b(,)27 b(the)e(only)g(form)f(of)h(arithmetic)h(w)m
(e)0 5217 y(will)h(need)g(for)g(singletons)h(is)f(a)h(com)m(bined)f
(subtract-and-conditional-jump)g(op)s(eration;)i(it)f(is)f(for)g(this)g
(reason)0 5330 y(that)h(the)g Fz(subjae)e FF(instruction)i(is)f
(included)g(in)g(T)-8 b(AL)g(T-R.)28 b(As)g(w)m(e)g(ha)m(v)m(e)h
(already)f(men)m(tioned,)h(the)f(instruction)1905 5589
y(10)p eop
%%Page: 11 13
11 12 bop 0 91 a FF(sequence)36 b(\()p Fz(subjae)e(r)786
106 y Fx(d)827 91 y Fy(;)15 b(o)911 105 y Fv(1)951 91
y Fy(;)g(o)1035 105 y Fv(2)1075 91 y Fy(;)g(o)1159 105
y Fv(3)1234 91 y Fy(I)7 b FF(\))36 b(subtracts)f(the)g(v)-5
b(alue)36 b(of)g Fy(o)2306 105 y Fv(2)2381 91 y FF(from)e
Fy(o)2644 105 y Fv(1)2719 91 y FF(and)h(stores)h(the)f(result)h(in)f
Fz(r)3743 106 y Fx(d)3784 91 y FF(;)j(if)0 204 y(this)32
b(result)f(is)h(greater)h(than)e(zero,)i(con)m(trol)g(jumps)d(to)i(the)
g(address)f(in)g Fy(o)2594 218 y Fv(3)2634 204 y FF(;)h(otherwise,)h
(execution)g(con)m(tin)m(ues)0 317 y(with)d Fy(I)7 b
FF(.)41 b(The)30 b Fz(subjae)e FF(instruction)j(has)f(a)h(sp)s(ecial)g
(singleton-a)m(w)m(are)i(t)m(yping)e(rule:)1459 516 y(\001;)15
b(\011;)g(\000)p Fw(f)p Fz(r)1836 531 y Fx(d)1877 516
y FF(:)p Fz(B)p Fy(W)d(;)j Fz(ck)p FF(:)p Fy(t)p Fw(g)26
b(`)f Fy(I)861 629 y FF(\001;)15 b(\011;)g(\000)26 b
Fw(`)e Fy(o)1295 643 y Fv(3)1360 629 y FF(:)i Fw(8)p
Fy(a)p FF(:)p Fs(N)p Fy(:)p FF(\()p Fy(u)g FF(=)f Fy(v)e
FF(+)d Fy(a)p FF(\))26 b Fw(\))f FF(\000)p Fw(f)p Fz(r)2366
644 y Fx(d)2407 629 y FF(:)p Fw(S)7 b FF(\()p Fy(a)p
FF(\))p Fy(;)15 b Fz(ck)p FF(:)p Fy(t)p Fw(g)26 b(!)f
FF(0)825 742 y(\001;)15 b(\011;)g(\000)26 b Fw(`)e Fy(o)1259
756 y Fv(1)1324 742 y FF(:)i Fw(S)7 b FF(\()p Fy(u)p
FF(\))91 b(\001;)15 b(\011;)g(\000)26 b Fw(`)e Fy(o)2084
756 y Fv(2)2149 742 y FF(:)i Fw(S)7 b FF(\()p Fy(v)s
FF(\))91 b(\(\000\()p Fz(ck)p FF(\))26 b(=)f(2)c(+)f
Fy(t)p FF(\))p 784 796 2333 4 v 1328 875 a(\001;)15 b(\011;)g(\000)25
b Fw(`)g Fz(subjae)k(r)2082 890 y Fx(d)2123 875 y Fy(;)15
b(o)2207 889 y Fv(1)2247 875 y Fy(;)g(o)2331 889 y Fv(2)2371
875 y Fy(;)g(o)2455 889 y Fv(3)2525 875 y Fy(I)0 1080
y FF(This)34 b(rule)h(sho)m(ws)g(ho)m(w)g(to)g(t)m(yp)s(e)h(a)f
Fz(subjae)e FF(instruction)i(when)f(the)i(t)m(w)m(o)g(op)s(erands)e(to)
h(b)s(e)g(subtracted)g(ha)m(v)m(e)0 1193 y(singleton)e(t)m(yp)s(es)f
Fw(S)7 b FF(\()p Fy(u)p FF(\))32 b(and)g Fw(S)7 b FF(\()p
Fy(v)s FF(\))32 b(resp)s(ectiv)m(ely)-8 b(.)48 b(Notice)34
b(the)e(di\013eren)m(t)g(t)m(yping)g(conditions)h(asso)s(ciated)g(with)
0 1305 y(the)25 b(t)m(w)m(o)g(p)s(ossible)f(outcomes)i(of)e(the)h
(conditional)h(jump.)37 b(If)24 b(the)g(branc)m(h)g(is)h(tak)m(en,)i
(then)d(the)g(result)h(is)f(p)s(ositiv)m(e)0 1418 y(and)30
b(hence)h(the)h(subtraction)f(falls)g(within)g(the)g(domain)g(of)g
(natural)g(n)m(um)m(b)s(er)e(arithmetic;)k(the)e(target)i(of)e(the)0
1531 y(jump)e(is)i(therefore)g(allo)m(w)m(ed)h(to)f(assume)g(that)g
(the)g(result)f(is)h(some)g(natural)f(n)m(um)m(b)s(er)g
Fy(a)g FF(suc)m(h)g(that)h(the)g(larger)0 1644 y(op)s(erand)k(is)i
(equal)g(to)g(the)g(sum)e(of)i Fy(a)g FF(and)e(the)i(smaller)g(op)s
(erand.)58 b(If)36 b(the)h(branc)m(h)f(is)g(not)h(tak)m(en,)i(ho)m(w)m
(ev)m(er,)0 1757 y(the)f(result)g(of)g(the)g(subtraction)g(is)g
(negativ)m(e)j(and)c(cannot)h(b)s(e)g(reasoned)g(ab)s(out)f(in)h(our)g
(theory)g(of)g(natural)0 1870 y(n)m(um)m(b)s(ers;)27
b(hence)g(the)g(instruction)g(sequence)h Fy(I)34 b FF(m)m(ust)27
b(b)s(e)f(w)m(ell-formed)i(assuming)e(only)h(that)h(the)f(destination)0
1983 y(register)f(con)m(tains)g(an)f(in)m(teger.)40 b(Finally)-8
b(,)28 b(note)d(that)h(the)f(virtual)g(clo)s(c)m(k)i(is)e(decremen)m
(ted)h(b)m(y)e(t)m(w)m(o)j(instead)e(of)g(b)m(y)0 2096
y(one;)33 b(this)f(is)g(b)s(ecause)f Fz(subjae)g FF(is)g(implemen)m
(ted)i(b)m(y)e(a)i(sequence)f(of)g(t)m(w)m(o)h(instructions)f(on)f(a)i
(concrete)g(IA-32)0 2209 y(mac)m(hine.)141 2322 y(While)c(it)g(app)s
(ears)f(that)h Fz(subjae)d FF(is)j(the)f(only)g(singleton)i(arithmetic)
f(instruction)g(necessary)f(for)g(e\016cien)m(t)0 2435
y(T)-8 b(AL)g(T-R)30 b(programming,)g(it)g(w)m(ould)g(b)s(e)f(nice)h
(to)g(include)g(others)f(to)i(mak)m(e)g(T)-8 b(AL)g(T-R)30
b(as)f(general)i(as)f(p)s(ossible.)0 2547 y(Unfortunately)-8
b(,)33 b(it)g(is)f(incon)m(v)m(enien)m(t)i(to)f(do)f(so.)46
b(The)32 b(problem)f(is)h(that)h(the)f(results)g(of)h(singleton)g
(arithmetic)0 2660 y(ough)m(t)39 b(to)f(b)s(e)f(re\015ected)i(in)e(the)
h(constrain)m(t)h(logic,)j(but)37 b(the)h(logic)i(is)e(concerned)g
(with)g(\(arbitrary\))g(natural)0 2773 y(n)m(um)m(b)s(ers)22
b(whereas)i(arithmetic)h(in)f(assem)m(bly)g(language)h(is)f(p)s
(erformed)e(mo)s(dulo)h(2)2858 2740 y Fv(8)p Fx(W)2975
2773 y FF(.)38 b(Expressing)23 b(the)h(results)0 2886
y(of)44 b(mo)s(dular)e(arithmetic)j(in)e(the)g(constrain)m(t)i(logic)g
(presen)m(ts)e(t)m(w)m(o)i(di\016culties:)67 b(\014rst,)46
b(it)e(requires)f(adding)0 2999 y(m)m(ultiplication)32
b(to)e(the)h(logic;)h(second,)e(it)g(do)s(es)g(not)g(allo)m(w)h(one)f
(to)h(reason)f(ab)s(out)g(inequalities)h(as)f(easily)-8
b(.)42 b(An)0 3112 y(alternativ)m(e)37 b(solution)e(is)f(for)g(all)h
(the)g(singleton)g(op)s(erations)g(to)g(b)s(e)e(\\double")i
(instructions)f(lik)m(e)i Fz(subjae)n FF(,)g(so)0 3225
y(that)28 b(they)g(automatically)j(detect)e(when)d(their)i(results)f
(are)h(inconsisten)m(t)h(with)e(natural)h(n)m(um)m(b)s(er)e
(arithmetic.)0 3338 y(Unfortunately)-8 b(,)24 b(the)d(curren)m(t)g(T)-8
b(AL)g(T)21 b(implemen)m(tation)i(do)s(es)e(not)g(y)m(et)i(supp)s(ort)c
(c)m(hec)m(king)k(for)e(in)m(teger)h(o)m(v)m(er\015o)m(w;)0
3451 y(w)m(e)31 b(therefore)g(mak)m(e)g(the)g(addition)f(of)h(more)f
(singleton)i(op)s(erations)e(a)h(lo)m(w)g(priorit)m(y)-8
b(.)0 3694 y FA(2.3)112 b(Certi\014cation)38 b(and)g(V)-9
b(eri\014cation)0 3866 y FF(An)27 b(implemen)m(tation)h(of)g(all)g(the)
f(to)s(ols)h(necessary)f(to)h(use)f(T)-8 b(AL)g(T-R)28
b(for)e(co)s(de)i(certi\014cation)h(in)e(the)g(con)m(text)i(of)0
3979 y(the)h(ConCert)f(grid)h(computing)g(framew)m(ork)g(is)f(curren)m
(tly)h(under)e(dev)m(elopmen)m(t,)k(based)d(on)h(the)g(certi\014cation)
0 4092 y(mac)m(hinery)j(for)g(T)-8 b(AL)g(T.)33 b(The)f(T)-8
b(AL)g(T)33 b(implemen)m(tation)h(p)s(erforms)d(certi\014cation)k(and)d
(v)m(eri\014cation)i(using)f(the)0 4204 y(Tw)m(elf)21
b(logic)h(programming)e(and)g(meta-pro)s(of)i(c)m(hec)m(king)g(soft)m
(w)m(are.)39 b(The)20 b(seman)m(tics)i(of)f(the)g(IA-32)g(arc)m
(hitecture)0 4317 y(\(whic)m(h)37 b(constitutes)h(the)e(safet)m(y)i(p)s
(olicy\),)h(the)e(t)m(yp)s(e)g(system)g(and)f(abstract)h(seman)m(tics)h
(of)f(T)-8 b(AL)g(T,)37 b(and)f(the)0 4430 y(safet)m(y)27
b(meta-pro)s(of)f(stating)g(that)g(an)m(y)g(w)m(ell-t)m(yp)s(ed)g(T)-8
b(AL)g(T)26 b(program)f(is)h(safe)f(to)i(run)c(are)j(all)h(enco)s(ded)e
(in)g(Tw)m(elf)0 4543 y([7)q(].)141 4656 y(The)30 b(basic)g(structure)g
(of)g(the)h(system)f(is)g(as)h(follo)m(ws.)41 b(Certifying)31
b(compilers)f(that)h(wish)e(to)i(target)h(T)-8 b(AL)g(T)0
4769 y(output)31 b(programs)g(in)f(XT)-8 b(AL)g(T,)32
b(an)f(explicitly-t)m(yp)s(ed)i(v)-5 b(arian)m(t)32 b(of)g(the)f
(language)i(in)d(whic)m(h)h(t)m(yp)s(e-c)m(hec)m(king)j(is)0
4882 y(p)s(ossible.)40 b(The)27 b(relationship)i(b)s(et)m(w)m(een)g(XT)
-8 b(AL)g(T)29 b(and)f(T)-8 b(AL)g(T)28 b(is)g(su\016cien)m(tly)h(tigh)
m(t)h(that)f(a)g(metatheorem)h(can)0 4995 y(b)s(e)25
b(pro)m(v)m(en)h(in)f(Tw)m(elf)g(stating)i(that)f(an)m(y)g(binary)e
(obtained)i(b)m(y)g(assem)m(bling)g(a)g(w)m(ell-t)m(yp)s(ed)g(XT)-8
b(AL)g(T)26 b(program)f(is)0 5108 y(also)f(the)g(represen)m(tation)g
(of)g(a)g(w)m(ell-t)m(yp)s(ed)g(T)-8 b(AL)g(T)24 b(program.)38
b(A)23 b(certi\014cate)j(is)d(simply)g(the)h(LF)f(enco)s(ding)g(of)h
(an)0 5221 y(XT)-8 b(AL)g(T)23 b(program;)i(a)e(Tw)m(elf)g(program)f
(\(the)h(\\c)m(hec)m(k)m(er"\))j(v)m(eri\014es)d(the)g(corresp)s
(ondence)f(b)s(et)m(w)m(een)h(this)g(XT)-8 b(AL)g(T)1905
5589 y(11)p eop
%%Page: 12 14
12 13 bop 0 91 a FF(program)33 b(and)g(an)h(LF)g(represen)m(tation)g
(of)g(the)g(un)m(trusted)f(binary)-8 b(,)34 b(and)f(a)h(string)g(of)g
(sev)m(eral)h(metatheorems)0 204 y(relates)d(the)e(success)h(of)f(the)h
(c)m(hec)m(k)m(er)h(to)f(the)g(safet)m(y)h(of)e(the)h(binary)-8
b(.)141 317 y(It)23 b(is)f(critical)j(to)e(this)f(metho)s(dology)i
(that)f(t)m(yp)s(e-c)m(hec)m(king)h(of)f(XT)-8 b(AL)g(T)23
b(programs)f(is)g(tractable.)40 b(Because)24 b(of)0 430
y(this)i(requiremen)m(t,)h(XT)-8 b(AL)g(T)26 b(do)s(es)g(a)m(w)m(a)m(y)
i(with)d(most)h(uses)g(of)g(subt)m(yping)f(in)h(fa)m(v)m(or)h(of)f(a)g
(calculus)h(of)f FB(c)-5 b(o)g(er)g(cions)p FF(,)0 543
y(whic)m(h)41 b(corresp)s(ond)e(closely)k(to)e(the)g(subt)m(yping)f
(deriv)-5 b(ations)42 b(p)s(ossible)e(in)h(the)g(T)-8
b(AL)g(T)41 b(t)m(yp)s(e)g(theory)-8 b(.)73 b(\(Not)0
656 y(all)37 b(uses)e(of)h(T)-8 b(AL)g(T)36 b(subt)m(yping)g(require)f
(co)s(ercions)i(in)f(XT)-8 b(AL)g(T:)36 b(certain)h(v)m(ery)f(common)h
(subt)m(yping)e(idioms)0 769 y(are)g(\\bak)m(ed)g(in")f(to)h(the)g(t)m
(yping)f(rules)g(of)h(XT)-8 b(AL)g(T)34 b(to)h(mak)m(e)h(programs)e
(easier)h(to)g(read)f(and)g(write.\))53 b(Since)0 882
y(T)-8 b(AL)g(T-R)26 b(has)g(some)g(extra)h(subt)m(yping)f(rules,)g(it)
h(w)m(ould)f(b)s(e)f(reasonable)i(to)g(add)e(corresp)s(onding)g(new)g
(forms)h(of)0 995 y(co)s(ercion)i(to)f(XT)-8 b(AL)g(T-R.)27
b(A)g(c)m(hallenge)i(arises,)f(ho)m(w)m(ev)m(er,)h(due)d(to)h(the)g
(role)g(of)g(the)g(constrain)m(t)h(logic)g(in)f(sev)m(eral)0
1108 y(of)35 b(the)f(new)g(rules.)53 b(In)33 b(the)i(most)g(natural)f
(design,)i(a)f(co)s(ercion)g(from)f Fy(')f Fw(\))f Fy(\034)44
b FF(to)35 b Fy(\034)45 b FF(w)m(ould)34 b(con)m(tain)i(a)f(pro)s(of)0
1220 y(of)d(the)g(constrain)m(t)h(form)m(ula)f Fy(')p
FF(.)46 b(Ho)m(w)m(ev)m(er,)35 b(w)m(e)d(b)s(eliev)m(e)h(this)f(w)m
(ould)g(mak)m(e)h(XT)-8 b(AL)g(T-R)32 b(to)s(o)h(in)m(timidating)g(for)
0 1333 y(h)m(uman)d(programmmers,)f(who)h(are)h(generally)h(not)e
(accustomed)i(to)f(writing)f(mac)m(hine-c)m(hec)m(k)-5
b(able)34 b(pro)s(ofs.)141 1446 y(Therefore,)44 b(as)e(a)g(concession)g
(to)g(the)f(h)m(uman)g(user,)j(w)m(e)d(plan)g(to)h(allo)m(w)h(pro)s
(ofs)e(of)g(constrain)m(ts)h(to)h(b)s(e)0 1559 y(elided;)d(it)d(will)g
(b)s(e)f(the)h(job)f(of)h(the)g(XT)-8 b(AL)g(T-R)37 b(assem)m(bler)g
(\(whic)m(h)g(transforms)e(its)i(XT)-8 b(AL)g(T-R)37
b(input)f(in)m(to)0 1672 y(the)30 b(LF)f(represen)m(tation)h(that)g
(serv)m(es)g(as)g(a)f(certi\014cate\))j(to)e(reconstruct)g(appropriate)
f(pro)s(ofs)g(when)f(they)i(are)0 1785 y(left)e(out)g(b)m(y)g(the)f
(programmer.)40 b(This)26 b(means)i(that)g(the)g(assem)m(bler)g(will)g
(ha)m(v)m(e)g(to)h(include)e(a)h(pro)s(of-generating)0
1898 y(constrain)m(t)33 b(solv)m(er.)46 b(Since)32 b(the)g(constrain)m
(t-pro)m(ving)i(problems)d(the)h(assem)m(bler)g(encoun)m(ters)g(are)h
(lik)m(ely)g(to)g(b)s(e)0 2011 y(small,)i(w)m(e)f(b)s(eliev)m(e)g(a)g
(simple)f(heuristic)g(approac)m(h)h(will)f(su\016ce.)50
b(If)33 b(this)g(turns)f(out)h(not)h(to)g(b)s(e)f(the)g(case,)i(w)m(e)0
2124 y(will)25 b(in)m(v)m(estigate)j(middle-ground)c(solutions,)j(suc)m
(h)d(as)h(requiring)g(the)g(programmer)f(to)i(pro)m(vide)f(\\hin)m
(ts"|but)0 2237 y(if)30 b(at)h(all)h(p)s(ossible)e(w)m(e)g(will)h(stop)
g(short)f(of)g(requiring)g(constrain)m(t)i(pro)s(ofs)d(in)h(XT)-8
b(AL)g(T-R)31 b(programs.)0 2523 y FC(3)135 b(Lilt:)61
b(A)44 b(Lo)l(w-Lev)l(el)i(Source)f(Language)227 2726
y FE(lilt)33 b Fw(n)p FF(lilt)p Fw(n)j FF(\()p FB(n)7
b FF(\))34 b FE(1)g FF(:)47 b(a)33 b(spirited)g(and)g(usually)h(c)m
(heerful)f(song)h(or)f(tune)g FE(2)h FF(:)47 b(a)34 b(rh)m(ythmical)g
(swing,)227 2839 y(\015o)m(w,)d(or)f(cadence)i FE(3)e
FF(:)41 b(a)31 b(springy)e(buo)m(y)m(an)m(t)j(mo)m(v)m(emen)m(t)g([23)q
(])141 3051 y(So)41 b(that)g(w)m(e)g(ma)m(y)g(formalize)h(the)f(pro)s
(cess)f(of)h(resource-b)s(ound)e(certifying)j(compilation,)j(this)c
(section)0 3164 y(presen)m(ts)35 b(a)h(lo)m(w-lev)m(el)i(t)m(yp)s(ed)c
(language)j(that)f(will)f(serv)m(e)h(as)f(the)h(source)f(of)g(a)h
(translation)g(in)m(to)g(BT)-8 b(AL)g(T-R.)0 3277 y(Our)25
b(in)m(ten)m(tion)j(is)f(that)g(this)f(language,)j(whic)m(h)d(w)m(e)h
(call)h(Lilt)2109 3244 y Fv(2)2149 3277 y FF(,)f(will)g(serv)m(e)g(as)g
(the)f(in)m(termediate)j(language)e(in)g(a)0 3390 y(certifying)i
(compiler)f(for)g(the)g(P)m(op)s(corn)f(language;)k(the)d(Lilt-to-T)-8
b(AL)g(T)29 b(translation)g(in)f(Section)g(4.2)h(will)f(form)0
3503 y(the)j(bac)m(k-end)f(of)h(that)g(compiler.)141
3616 y(Lilt)g(is)g(designed)g(to)g(b)s(e)f(completely)j(ignoran)m(t)e
(of)g(resource)g(b)s(ound)e(issues,)i(but)f(it)h(do)s(es)f(ha)m(v)m(e)i
(a)f(n)m(um)m(b)s(er)0 3729 y(of)38 b(un)m(usual)f(c)m(haracteristics)j
(motiv)-5 b(ated)39 b(b)m(y)e(its)h(in)m(tended)g(use)f(in)h(a)g
(compiler)g(for)g(P)m(op)s(corn.)62 b(Sp)s(eci\014cally)-8
b(,)0 3842 y(functions)31 b(in)g(a)g(P)m(op)s(corn)g(program)g(usually)
g(declare)h(m)m(utable)g(lo)s(cal)h(v)-5 b(ariables)31
b(whic)m(h)g(they)h(read)f(from)g(and)0 3955 y(assign)36
b(to)g(frequen)m(tly)-8 b(.)56 b(F)-8 b(urthermore,)36
b(P)m(op)s(corn)f(functions)g(often)h(con)m(tain)g(lo)s(ops)g(and)e
(sometimes)j(con)m(tain)0 4068 y(exception)d(handling)e(constructs,)i
(and)e(it)i(is)e(essen)m(tial)j(that)e(the)g(state)i(of)e(the)g(lo)s
(cal)h(v)-5 b(ariables)33 b(b)s(e)f(threaded)0 4181 y(through)k(all)h
(this)f(con)m(trol)i(\015o)m(w)e(with)g(a)h(minim)m(um)f(of)g(w)m(ork.)
59 b(The)36 b(b)s(est)g(implemen)m(tation)i(strategy)g(seems)0
4293 y(to)j(b)s(e)e(the)i(one)f(\(probably\))g(used)g(in)f(the)i(ma)5
b(jorit)m(y)41 b(of)f(compilers)h(for)f(C-lik)m(e)h(languages,)j(and)c
(describ)s(ed)0 4406 y(in)c(man)m(y)h(if)f(not)h(most)g(traditional)h
(compiler)f(design)f(texts)i([27)q(]:)53 b(Eac)m(h)37
b(dynamic)f(instance)i(of)e(a)h(function)0 4519 y(allo)s(cates)f(\(at)e
(most\))g(one)f(stac)m(k)i(frame)e(in)g(whic)m(h)g(to)h(store)g(its)f
(lo)s(cal)i(v)-5 b(ariables,)35 b(and)d(register)i(allo)s(cation)i(is)0
4632 y(p)s(erformed)f(on)i(\(at)h(least\))g(an)f(en)m(tire)h(function)e
(at)i(a)f(time)g(to)h(minimize)f(the)g(amoun)m(t)g(of)g(\\sh)m
(u\017ing")g(that)0 4745 y(m)m(ust)43 b(b)s(e)f(p)s(erformed.)805
4712 y Fv(3)920 4745 y FF(Unfortunately)-8 b(,)47 b(the)c(decision)g
(to)h(adopt)e(this)h(compilation)h(mo)s(del)f(complicates)p
0 4807 1560 4 v 104 4860 a Fu(2)138 4892 y FD(The)28
b(name)f(w)n(as)h(c)n(hosen)g(b)r(ecause)f(it)h(is)g(a)f(near-acron)n
(ym)g(for)h(\\Lo)n(w-lev)n(el)h(In)n(termediate)e(Language,")i(rh)n
(ymes)e(with)g(TIL)-6 b(T,)0 4983 y(is)28 b(related)g(to)f(m)n(usic)h
(\(lik)n(e)f(most)h(ConCert)g(pro)t(ject)g(terminology\))g(and)f(has)h
(implications)h(of)f(rh)n(ythm)e(and)h(liv)n(eliness,)i(whic)n(h)e(is)0
5075 y(sort)f(of)h(lik)n(e)e(liv)n(eness.)104 5134 y
Fu(3)138 5166 y FD(The)30 b(paren)n(thetical)g(in)n(terjections)g(ac)n
(kno)n(wledge)g(the)f(p)r(ossibilities)j(of)e(eliding)g(the)f(stac)n(k)
g(frame)i(on)e(an)g(arc)n(hitecture)h(with)0 5257 y(enough)22
b(registers,)i(and)e(of)g(p)r(erforming)i(in)n(terpro)r(cedural)e
(register)h(allo)r(cation,)i(resp)r(ectiv)n(ely)-6 b(.)33
b(Ho)n(w)n(ev)n(er,)23 b(our)f(target)h(arc)n(hitecture)1905
5589 y FF(12)p eop
%%Page: 13 15
13 14 bop 0 91 a FF(the)39 b(in)m(termediate)i(language,)j(since)39
b(it)h(in)m(tro)s(duces)f(a)h(distinction)g(b)s(et)m(w)m(een)g(lo)s
(cal)g(\()p FB(intr)-5 b(a)7 b FF(pro)s(cedural\))41
b(and)0 204 y(non-lo)s(cal)30 b(\()p FB(inter)10 b FF(pro)s(cedural\))
29 b(transfers)f(of)h(con)m(trol,)i(and)e(forces)g(us)f(to)i(deal)g
(with)e(m)m(utable)i(lo)s(cal)g(v)-5 b(ariables.)0 448
y FA(3.1)112 b(Syn)m(tax)0 619 y FF(The)27 b(syn)m(tax)i(of)f(Lilt)g
(is)g(giv)m(en)h(in)f(Figure)g(8.)41 b(\(The)27 b(static)j(seman)m
(tics)f(is)f(discussed)f(in)h(the)g(next)g(section.\))41
b(Lilt)0 732 y(has)27 b(three)g(di\013eren)m(t)h(syn)m(tactic)h
(classes)f(of)f(iden)m(ti\014ers)h(at)g(the)f(term)g(lev)m(el:)41
b FB(function)30 b(names)35 b FF(\(ranged)28 b(o)m(v)m(er)g(b)m(y)0
845 y Fy(f)10 b FF(\),)27 b(whic)m(h)f(ha)m(v)m(e)i(global)f(scop)s(e)g
(and)e(stand)h(for)g(functions;)i FB(lab)-5 b(els)35
b FF(\(ranged)26 b(o)m(v)m(er)i(b)m(y)e Fy(`)p FF(\),)i(whic)m(h)e
(stand)g(for)g(co)s(de)0 958 y(blo)s(c)m(ks)32 b(within)e(a)i(function)
e(and)h(are)h(meaningful)e(only)i(inside)f(that)g(function,)h(and)e
FB(lo)-5 b(c)g(al)35 b(variables)40 b FF(\(ranged)0 1071
y(o)m(v)m(er)35 b(b)m(y)e Fy(s)p FF(\),)i(whic)m(h)e(also)i(ha)m(v)m(e)
f(function)g(scop)s(e.)50 b(Lo)s(cal)34 b(v)-5 b(ariables)35
b(are)f(used)e(as)i(the)g(names)f(of)h(a)g(function's)0
1184 y(argumen)m(ts)d(as)f(w)m(ell)i(as)e(the)h(names)f(of)h(lo)s(cal)g
(storage)h(lo)s(cations)g(allo)s(cated)g(b)m(y)f(a)f(function.)141
1297 y(A)k(Lilt)g(program)f(is)g(a)h(sequence)g(of)g(m)m(utually)g
(recursiv)m(e)g FB(function)h(de\014nitions)p FF(,)h(and)d(the)g(b)s(o)
s(dy)f(of)i(eac)m(h)0 1410 y(function)j(consists)h(of)g(one)f(or)h
(more)f FB(blo)-5 b(cks)p FF(.)63 b(The)37 b(\014rst)g(blo)s(c)m(k)h
(in)f(eac)m(h)h(function)g(is)f(a)h(sp)s(ecial)g FB(entry)h(blo)-5
b(ck)0 1523 y FF(of)31 b(the)g(form)f Fz(enter)o FF(\()p
Fy(s)793 1537 y Fv(1)832 1523 y Fy(;)15 b(:)g(:)g(:)i(;)e(s)1077
1537 y Fx(n)1124 1523 y FF(\))p Fy(:e)p FF(,)32 b(whic)m(h)e(is)h(made)
g(up)e(of)i(a)h(declaration)g(of)f(the)g(function's)f(lo)s(cal)i(v)-5
b(ariables)0 1635 y(and)31 b(the)h(expression)f(that)h(will)g(b)s(e)f
(ev)-5 b(aluated)33 b(when)e(the)h(function)f(is)h(called.)45
b(Eac)m(h)33 b(of)f(the)f(remaining)h(zero)0 1748 y(or)e(more)f(blo)s
(c)m(ks)h(in)g(the)g(function)f(b)s(o)s(dy)f(is)i(either)g(an)f
(ordinary)g(blo)s(c)m(k)h(\()p Fz(block)o FF(\(\001;)15
b(\004;)g(\000\))p Fy(:e)p FF(\))32 b(or)d(an)h(exception)0
1861 y(handler)24 b(\()p Fz(hndl)o FF(\(\001;)15 b(\004;)g(\000;)g
Fy(s)p FF(\))p Fy(:e)p FF(\).)41 b(Corresp)s(onding)23
b(to)i(these)h(di\013eren)m(t)f(kinds)f(of)h(co)s(de)g(blo)s(c)m(ks)g
(are)g(four)f(di\013eren)m(t)0 1974 y(con)m(trol-transfer)38
b(expression)e(forms,)i(namely)f(function)g(call,)j(function)c(return,)
h(unconditional)g(jump)f(and)0 2087 y Fz(raise)o FF(.)141
2200 y(If)41 b Fy(v)287 2215 y Fx(f)373 2200 y FF(is)g(a)h(function)e
(v)-5 b(alue,)45 b(the)c(function)g(call)h(expression)f
Fz(let)f Fy(s)i FF(=)h Fy(v)2789 2215 y Fx(f)2835 2200
y FF(\()l Fy(~)-41 b(v)s FF(\))42 b Fz(in)e Fy(e)h FF(causes)h(con)m
(trol)g(to)0 2313 y(b)s(e)c(transferred)g(to)i Fy(v)768
2328 y Fx(f)813 2313 y FF('s)f(en)m(try)h(blo)s(c)m(k,)h(binding)d(the)
h(function's)g(formal)g(parameters)h(to)f(the)g(v)-5
b(alues)36 b Fy(~)-41 b(v)s FF(.)66 b(If)0 2426 y(the)34
b(function)f(returns)f(a)i(v)-5 b(alue,)35 b(that)f(v)-5
b(alue)34 b(is)f(copied)h(in)m(to)h(the)e(lo)s(cal)i(v)-5
b(ariable)34 b Fy(s)f FF(and)g(the)h(expression)f Fy(e)h
FF(is)0 2539 y(ev)-5 b(aluated.)47 b(The)31 b(expression)h
Fz(return)f Fy(v)k FF(immediately)e(exits)g(the)f(curren)m(t)g
(function)g(and)f(returns)g(the)h(v)-5 b(alue)0 2652
y Fy(v)34 b FF(to)d(the)g(calling)h(function.)41 b(The)30
b(jump)f(expression)h Fz(goto)f Fy(`)p FF([)-5 b Fy(~)-40
b(c)q FF(])31 b(p)s(erforms)d(a)j(one-w)m(a)m(y)i(transfer)d(of)g(con)m
(trol)i(to)0 2765 y(the)d(blo)s(c)m(k)g(named)g Fy(`)p
FF(,)g(passing)g(it)g(the)g(t)m(yp)s(e)g(argumen)m(ts)24
b Fy(~)-40 b(c)29 b FF(and)f(implicitly)i(passing)f(along)h(the)f
(curren)m(t)g(v)-5 b(alues)0 2877 y(of)31 b(the)f(curren)m(t)g
(function's)g(argumen)m(ts)h(and)f(lo)s(cal)i(v)-5 b(ariables.)141
2990 y(The)33 b(expression)f Fz(raise)g Fy(v)k FF(is)d(similar)g(to)h
Fz(return)d Fy(v)36 b FF(except)e(that)f Fy(v)j FF(m)m(ust)d(b)s(e)f
(an)h(exception)h(v)-5 b(alue,)35 b(and)0 3103 y(it)c(is)f(passed)f
(not)h(to)h(the)f(calling)i(function)d(but)h(to)g(the)h(curren)m(t)e
(exception)j(handler,)d(whic)m(h)h(ma)m(y)g(ha)m(v)m(e)i(b)s(een)0
3216 y(installed)d(b)m(y)f(an)m(y)g(p)s(ending)f(function)h(including)f
(the)i(curren)m(t)f(one.)40 b(The)27 b(handler)h(has)g(access)h(to)g
(the)f(curren)m(t)0 3329 y(v)-5 b(alues)38 b(of)g(the)h(argumen)m(ts)f
(and)f(lo)s(cal)j(v)-5 b(ariables)38 b(of)g(the)h(function)e(that)i
(installed)g(it,)h(and)e(designates)h(one)0 3442 y(of)k(these)g(v)-5
b(ariables)44 b(to)g(receiv)m(e)g(the)f(v)-5 b(alue)44
b Fy(v)s FF(.)78 b(The)43 b Fz(pushhandler)d FF(and)i
Fz(pophandler)e FF(expression)j(forms)0 3555 y(manipulate)g(the)f(stac)
m(k)i(of)e(p)s(ending)f(exception)i(handlers,)h(but)e(cannot)h(remo)m
(v)m(e)g(an)m(y)g(handlers)e(installed)0 3668 y(b)s(efore)29
b(the)h(call)g(to)g(the)g(curren)m(t)f(function.)40 b(A)30
b Fz(return)d FF(expression)i(implicitly)i(p)s(ops)d(all)i(exception)h
(handlers)0 3781 y(installed)39 b(b)m(y)f(the)g(curren)m(t)g(function,)
h(restoring)g(the)f(handler)f(that)i(w)m(as)f(curren)m(t)g(when)f(the)h
(function)g(w)m(as)0 3894 y(called.)141 4007 y(The)c(t)m(yp)s(e)g
(system)h(of)f(Lilt)h(is)g(essen)m(tially)h(that)f(of)f(the)h
(higher-order)f(p)s(olymorphic)f Fy(\025)p FF(-calculus)j(F)3674
4021 y Fx(!)3759 4007 y FF([16)q(])0 4120 y(augmen)m(ted)h(with)e(some)
i(useful)e(t)m(yp)s(es)h(for)g(programming.)57 b(The)35
b(language)j(includes)d(the)h(base)h(t)m(yp)s(es)f Fz(int)o
FF(,)0 4232 y Fz(bool)27 b FF(and)g Fz(unit)f FF(as)i(w)m(ell)h(as)f
(the)g(familiar)g Fy(n)p FF(-ary)g(pro)s(duct)e(t)m(yp)s(es)i(\()p
Fw(h)p Fy(\034)2426 4246 y Fv(1)2466 4232 y Fy(;)15 b(:)g(:)g(:)h(;)f
(\034)2707 4246 y Fx(n)2754 4232 y Fw(i)p FF(\),)29 b(arra)m(y)g(t)m
(yp)s(es)e(\()p Fy(\034)f Fz(array)o FF(\))i(and)0 4345
y(function)38 b(t)m(yp)s(es)g(\(\()p Fy(\034)722 4359
y Fv(1)762 4345 y Fy(;)15 b(:)g(:)g(:)h(;)f(\034)1003
4359 y Fx(n)1051 4345 y FF(\))38 b Fw(!)g Fy(\034)10
b FF(\).)64 b(The)38 b(v)-5 b(arian)m(t)39 b(t)m(yp)s(e)f([)p
Fy(i)2206 4359 y Fv(1)2246 4345 y FF(:)p Fy(\034)2311
4359 y Fv(1)2351 4345 y Fy(;)15 b(:)g(:)g(:)h(;)f(i)2583
4359 y Fx(n)2631 4345 y FF(:)p Fy(\034)2696 4359 y Fx(n)2743
4345 y FF(])38 b(is)g(essen)m(tially)i(similar)f(to)g(the)0
4458 y(more)28 b(familiar)h Fy(n)p FF(-ary)f(sum)f(t)m(yp)s(e)h(\()p
Fy(\034)1268 4472 y Fv(1)1323 4458 y FF(+)15 b Fw(\001)g(\001)g(\001)i
FF(+)e Fy(\034)1657 4472 y Fx(n)1704 4458 y FF(\))28
b(found)f(in)h(other)g(calculi;)j(the)d(lab)s(els)g Fy(i)3104
4472 y Fv(1)3144 4458 y Fy(;)15 b(:)g(:)g(:)h(;)f(i)3376
4472 y Fx(n)3452 4458 y FF(are)29 b(distinct)0 4571 y(in)m(tegers,)d
(and)e(serv)m(e)g(to)g(iden)m(tify)g(the)g(summands.)37
b(\(They)23 b(corresp)s(ond)g(directly)h(to)g(the)g(\\tag")i(w)m(ords)d
(used)g(b)m(y)0 4684 y(the)j(implemen)m(tation.\))41
b(W)-8 b(e)27 b(ha)m(v)m(e)g(c)m(hosen)g(to)f(use)g(lab)s(eled)g(v)-5
b(arian)m(t)27 b(t)m(yp)s(es)f(rather)f(than)h(unlab)s(eled)f(sum)g(t)m
(yp)s(es)0 4797 y(in)h(Lilt)h(b)s(ecause)g(they)g(admit)f(a)h(v)m(ery)g
(straigh)m(tforw)m(ard)h(translation)f(in)m(to)h(T)-8
b(AL)g(T.)26 b(The)g(Lilt)i(t)m(yp)s(e)e(system)h(also)0
4910 y(includes)35 b(recursiv)m(e)g(t)m(yp)s(es)h(\()p
Fy(\026\013:\034)10 b FF(\),)37 b(and)e(univ)m(ersal)g(and)g(existen)m
(tial)j(quan)m(ti\014cation)e(\()p Fw(8)p Fy(\013)3221
4924 y Fv(1)3261 4910 y FF(:)p Fy(k)3333 4924 y Fv(1)3373
4910 y Fy(;)15 b(:)g(:)g(:)h(;)f(\013)3632 4924 y Fx(n)3680
4910 y FF(:)p Fy(k)3752 4924 y Fx(n)3799 4910 y Fy(:\034)10
b FF(,)0 5023 y Fw(9)p Fy(\013)109 5037 y Fv(1)148 5023
y FF(:)p Fy(k)220 5037 y Fv(1)260 5023 y Fy(;)15 b(:)g(:)g(:)i(;)e
(\013)520 5037 y Fx(n)567 5023 y FF(:)p Fy(k)639 5037
y Fx(n)687 5023 y Fy(:\034)10 b FF(\).)38 b(Finally)-8
b(,)25 b(higher-order)d(t)m(yp)s(e)g(constructors)g(ma)m(y)g(b)s(e)g
(formed)f(b)m(y)h(abstraction)h(\()p Fy(\025\013)p FF(:)p
Fy(k)s(:c)p FF(\))p 0 5084 1560 4 v 0 5170 a FD(\(IA-32\))i(has)h(few)g
(registers)h(and)e(w)n(e)h(do)f(not)h(plan)f(to)h(implemen)n(t)f(an)n
(y)g(in)n(terpro)r(cedural)h(optimizations,)h(so)f(w)n(e)g(will)h(not)e
(discuss)0 5261 y(these)h(matters)g(an)n(y)f(further.)1905
5589 y FF(13)p eop
%%Page: 14 16
14 15 bop 86 973 a FB(Op)-5 b(er)g(ands)745 b Fy(v)86
b FF(::=)e Fy(s)24 b Fw(j)i Fy(n)f Fw(j)g Fz(tt)g Fw(j)h
Fz(ff)e Fw(j)i Fy(?)f Fw(j)h Fy(f)34 b Fw(j)26 b Fy(q)s
FF(@)p Fy(v)86 1086 y FB(Co)-5 b(er)g(cions)730 b Fy(q)85
b FF(::=)f Fz(id)24 b Fw(j)i FF([)p Fy(c)1767 1100 y
Fv(1)1807 1086 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)2047 1100
y Fx(n)2095 1086 y FF(])26 b Fw(j)f Fz(roll)2387 1100
y Fx(\034)2455 1086 y Fw(j)h Fz(unroll)e Fw(j)h Fz(pack)o
FF([)p Fy(\034)5 b(;)15 b(c)3208 1100 y Fv(1)3248 1086
y Fy(;)g(:)g(:)g(:)i(;)e(c)3489 1100 y Fx(n)3537 1086
y FF(])86 1199 y FB(Smal)5 b(l)34 b(Expr)-5 b(essions)398
b Fy(r)85 b FF(::=)f Fy(v)28 b Fw(j)e FB(op)6 b FF(\()p
Fy(v)1832 1213 y Fv(1)1872 1199 y Fy(;)15 b(:)g(:)g(:)i(;)e(v)2118
1213 y Fx(n)2165 1199 y FF(\))26 b Fw(j)f Fy(\031)2328
1213 y Fx(i)2356 1199 y Fy(v)k Fw(j)c Fz(inj)2623 1224
y Fx(\034)2666 1199 y FF(\()p Fy(i;)15 b(v)s FF(\))27
b Fw(j)e Fz(outj)o FF(\()p Fy(v)s FF(\))1423 1312 y Fw(j)84
b(h)p Fy(v)1611 1326 y Fv(1)1650 1312 y Fy(;)15 b(:)g(:)g(:)i(;)e(v)
1896 1326 y Fx(n)1944 1312 y Fw(i)25 b(j)h(f)p Fy(v)2144
1326 y Fv(1)2184 1312 y Fy(;)15 b(:)g(:)g(:)h(;)f(v)2429
1326 y Fx(n)2477 1312 y Fw(g)86 1425 y FB(Conditions)540
b(c)-5 b(ond)93 b FF(::=)84 b Fy(v)1576 1439 y Fv(1)1640
1425 y FF(=)25 b Fy(v)1780 1439 y Fv(2)1845 1425 y Fw(j)h
Fy(v)1940 1439 y Fv(1)2004 1425 y Fy(<)f(v)2144 1439
y Fv(2)86 1651 y FB(Expr)-5 b(essions)655 b Fy(e)83 b
FF(::=)h Fz(return)28 b Fy(v)h Fw(j)c Fz(raise)k Fy(v)g
Fw(j)c Fz(goto)30 b Fy(`)p FF([)p Fy(c)2687 1665 y Fv(1)2727
1651 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)2967 1665 y Fx(n)3015
1651 y FF(])1423 1764 y Fw(j)84 b Fz(let)29 b Fy(s)c
FF(=)g Fy(r)33 b Fz(in)d Fy(e)1423 1877 y Fw(j)84 b Fz(let)29
b Fy(s)c FF(=)g Fy(v)s FF(\()p Fy(v)1995 1891 y Fv(1)2035
1877 y Fy(;)15 b(:)g(:)g(:)i(;)e(v)2281 1891 y Fx(m)2348
1877 y FF(\))30 b Fz(in)g Fy(e)1423 1990 y Fw(j)84 b
Fz(let)29 b Fy(s)c FF(=)g Fz(sub)o FF(\()p Fy(v)s(;)15
b(v)2178 2004 y Fv(1)2219 1990 y FF(\))30 b Fz(in)g Fy(e)c
Fw(j)f Fz(let)30 b(sub)o FF(\()p Fy(v)2924 2004 y Fv(1)2964
1990 y Fy(;)15 b(v)3048 2004 y Fv(2)3088 1990 y FF(\))25
b(:=)g Fy(v)3313 2004 y Fv(3)3383 1990 y Fz(in)30 b Fy(e)1423
2103 y Fw(j)84 b Fz(let)29 b Fy(\031)1757 2117 y Fx(i)1800
2103 y Fy(v)g FF(:=)c Fy(v)2038 2117 y Fv(1)2108 2103
y Fz(in)30 b Fy(e)1423 2215 y Fw(j)84 b Fz(let)29 b FF(\()p
Fy(\013)1798 2229 y Fv(1)1838 2215 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)
2098 2229 y Fx(n)2145 2215 y Fy(;)g(s)p FF(\))26 b(=)f
Fz(unpack)j Fy(v)34 b Fz(in)c Fy(e)1423 2328 y Fw(j)84
b Fz(pushhandler)27 b Fy(`)p FF([)p Fy(c)2189 2342 y
Fv(1)2229 2328 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)2469 2342
y Fx(n)2517 2328 y FF(])31 b Fz(in)e Fy(e)d Fw(j)g Fz(pophandler)h(in)j
Fy(e)1423 2441 y Fw(j)84 b Fz(if)29 b FB(c)-5 b(ond)41
b Fz(then)29 b Fy(e)2141 2455 y Fv(1)2212 2441 y Fz(else)g
Fy(e)2475 2455 y Fv(2)1423 2554 y Fw(j)84 b Fz(case)29
b Fy(v)k Fz(of)d(inj)o FF(\()p Fy(i;)15 b(s)p FF(\))27
b Fw(\))e Fy(e)2468 2568 y Fv(1)2538 2554 y Fz(else)k
Fy(e)2801 2568 y Fv(2)86 2780 y FB(F)-7 b(unctions)701
b Fy(F)96 b FF(::=)84 b Fz(func)o FF(\(\001;)15 b(\000;)g
Fy(\034)10 b FF(\))p Fy(:)p FF(\()p Fz(enter)p FF(\()p
Fy(s)2434 2794 y Fv(1)2473 2780 y Fy(;)15 b(:)g(:)g(:)i(;)e(s)2718
2794 y Fx(n)2765 2780 y FF(\))p Fy(:e;)g(`)2945 2794
y Fv(1)3011 2780 y FF(=)25 b Fy(B)3176 2794 y Fv(1)3215
2780 y Fy(;)15 b(:)g(:)g(:)i(;)e(`)3455 2794 y Fx(m)3547
2780 y FF(=)25 b Fy(B)3712 2794 y Fx(m)3778 2780 y FF(\))86
2893 y FB(Blo)-5 b(cks)836 b Fy(B)87 b FF(::=)d Fz(block)n
FF(\(\001;)15 b(\004;)g(\000\))p Fy(:e)27 b Fw(j)e Fz(hndl)o
FF(\(\001;)15 b(\004;)g(\000;)g Fy(s)p FF(\))p Fy(:e)86
3006 y FB(Pr)-5 b(o)g(gr)g(ams)719 b Fy(P)96 b FF(::=)84
b Fy(f)1577 3020 y Fv(1)1641 3006 y FF(=)25 b Fy(F)1795
3020 y Fv(1)1835 3006 y Fy(;)15 b(:)g(:)g(:)h(;)f(f)2081
3020 y Fx(n)2153 3006 y FF(=)25 b Fy(F)2307 3020 y Fx(n)86
3232 y FB(Kinds)876 b Fy(k)86 b FF(::=)e Fy(T)38 b Fw(j)25
b Fy(k)1720 3246 y Fv(1)1785 3232 y Fw(!)g Fy(k)1948
3246 y Fv(2)86 3345 y FB(T)-7 b(yp)i(e)34 b(Constructors)301
b Fy(c;)15 b(\034)93 b FF(::=)84 b Fy(\013)25 b Fw(j)h
Fz(int)e Fw(j)i Fz(bool)e Fw(j)h Fz(unit)g Fw(j)g(h)p
Fy(\034)2493 3359 y Fv(1)2533 3345 y Fy(;)15 b(:)g(:)g(:)h(;)f(\034)
2774 3360 y Fx(k)2817 3345 y Fw(i)26 b(j)f FF([)p Fy(i)2984
3359 y Fv(1)3024 3345 y FF(:)p Fy(\034)3089 3359 y Fv(1)3129
3345 y Fy(;)15 b(:)g(:)g(:)h(;)f(i)3361 3359 y Fx(n)3409
3345 y FF(:)p Fy(\034)3474 3359 y Fx(n)3521 3345 y FF(])25
b Fw(j)h Fz(ns)1423 3457 y Fw(j)84 b Fy(\034)25 b Fz(array)f
Fw(j)h FF(\()p Fy(\034)1986 3471 y Fv(1)2026 3457 y Fy(;)15
b(:)g(:)g(:)h(;)f(\034)2267 3471 y Fx(m)2334 3457 y FF(\))26
b Fw(!)f Fy(\034)35 b Fw(j)26 b Fy(\026\013:\034)1423
3570 y Fw(j)84 b(8)p Fy(\013)1641 3584 y Fv(1)1680 3570
y FF(:)p Fy(k)1752 3584 y Fv(1)1792 3570 y Fy(;)15 b(:)g(:)g(:)h(;)f
(\013)2051 3584 y Fx(n)2099 3570 y FF(:)p Fy(k)2171 3584
y Fx(n)2218 3570 y Fy(:\034)36 b Fw(j)25 b(9)p Fy(\013)2478
3584 y Fv(1)2518 3570 y FF(:)p Fy(k)2590 3584 y Fv(1)2630
3570 y Fy(;)15 b(:)g(:)g(:)h(;)f(\013)2889 3584 y Fx(n)2937
3570 y FF(:)p Fy(k)3009 3584 y Fx(n)3056 3570 y Fy(:\034)36
b Fw(j)25 b Fy(\025\013)p FF(:)p Fy(k)s(:c)i Fw(j)f Fy(c)3574
3584 y Fv(1)3629 3570 y Fy(c)3668 3584 y Fv(2)86 3683
y FB(T)-7 b(yp)i(e)34 b(Contexts)521 b FF(\001)82 b(::=)i
Fw(\001)25 b(j)h FF(\001)p Fy(;)15 b(\013)p FF(:)p Fy(k)86
3796 y FB(Blo)-5 b(ck)33 b(T)-7 b(yp)i(es)639 b Fy(\015)88
b FF(::=)c FB(lbl)9 b FF(\(\001;)15 b(\004;)g(\000\))26
b Fw(j)g FB(hnd)10 b FF(\(\001;)15 b(\004;)g(\000\))86
3909 y FB(L)-5 b(o)g(c)g(al)35 b(Contexts)525 b FF(\000)82
b(::=)i([)p Fy(s)1600 3923 y Fv(1)1639 3909 y FF(:)p
Fy(\034)1704 3923 y Fv(1)1743 3909 y Fy(;)15 b(:)g(:)g(:)i(;)e(s)1988
3923 y Fx(n)2035 3909 y FF(:)p Fy(\034)2100 3923 y Fx(n)2147
3909 y FF(])86 4022 y FB(Exc)-5 b(eption)34 b(Stack)f(T)-7
b(yp)i(es)214 b FF(\004)82 b(::=)i Fw(\001)25 b(j)h FF(\004)p
Fy(;)15 b FF(\000)86 4135 y FB(L)-5 b(ab)g(el)34 b(Contexts)518
b FF(\003)83 b(::=)h Fy(`)1570 4149 y Fv(1)1609 4135
y FF(:)p Fy(\015)1681 4149 y Fv(1)1721 4135 y Fy(;)15
b(:)g(:)g(:)h(;)f(`)1960 4149 y Fx(n)2008 4135 y FF(:)p
Fy(\015)2080 4149 y Fx(n)86 4248 y FB(F)-7 b(unction)34
b(Contexts)367 b FF(\010)82 b(::=)i Fy(f)1577 4262 y
Fv(1)1616 4248 y FF(:)p Fy(\034)1681 4262 y Fv(1)1720
4248 y Fy(;)15 b(:)g(:)g(:)i(;)e(f)1967 4262 y Fx(n)2013
4248 y FF(:)p Fy(\034)2078 4262 y Fx(n)1512 4528 y FF(Figure)31
b(8:)41 b(Lilt)31 b(Syn)m(tax)1905 5589 y(14)p eop
%%Page: 15 17
15 16 bop 794 79 a FF(Judgmen)m(t)575 b(Meaning)p 744
116 2412 4 v 794 195 a(\001)25 b Fw(`)g Fy(c)g FF(:)h
Fy(k)624 b(c)30 b FF(has)g(kind)g Fy(k)794 308 y FF(\001)25
b Fw(`)g Fy(c)1015 322 y Fv(1)1080 308 y FF(=)g Fy(c)1215
322 y Fv(2)1280 308 y FF(:)g Fy(k)385 b(c)1801 322 y
Fv(1)1871 308 y FF(and)29 b Fy(c)2086 322 y Fv(2)2157
308 y FF(are)h(equiv)-5 b(alen)m(t)32 b(at)f(kind)f Fy(k)794
421 y FF(\001)25 b Fw(`)g FF(\000)729 b(\000)30 b(is)g(w)m(ell-formed)
794 534 y(\001)25 b Fw(`)g FF(\004)725 b(\004)30 b(is)g(w)m(ell-formed)
p 744 571 V 794 650 a(\001)25 b Fw(`)g Fy(q)j FF(:)d
Fy(\034)1135 664 y Fv(1)1200 650 y Fw(\))g Fy(\034)1356
664 y Fv(2)1762 650 y Fy(q)33 b FF(co)s(erces)e(from)f
Fy(\034)2402 664 y Fv(1)2472 650 y FF(to)h Fy(\034)2623
664 y Fv(2)794 763 y FF(\010;)15 b(\001;)g(\000)25 b
Fw(`)g Fy(r)j FF(:)d Fy(\034)424 b(r)32 b FF(has)f(t)m(yp)s(e)f
Fy(\034)794 876 y FF(\010;)15 b(\001;)g(\000)25 b Fw(`)g
FB(c)-5 b(ond)41 b Fs(cond)183 b FB(c)-5 b(ond)41 b FF(is)30
b(a)h(w)m(ell-formed)g(condition)794 989 y(\010;)15 b(\001;)g(\003;)g
(\004;)g(\000;)g Fy(\034)36 b Fw(`)25 b Fy(e)246 b(e)30
b FF(is)h(w)m(ell-formed)794 1102 y(\010;)15 b(\001;)g(\003;)g
Fy(\034)36 b Fw(`)25 b Fy(B)30 b FF(:)25 b Fy(\015)290
b(B)34 b FF(is)d(a)g(blo)s(c)m(k)g(of)f(t)m(yp)s(e)h
Fy(\015)794 1215 y FF(\010)25 b Fw(`)g Fy(F)38 b FF(:)26
b Fy(\034)609 b(F)43 b FF(is)30 b(a)h(function)f(of)h(t)m(yp)s(e)f
Fy(\034)794 1328 y Fw(`)25 b Fy(P)829 b(P)43 b FF(is)30
b(a)h(w)m(ell-formed)g(program)p 744 1365 V 794 1444
a(\001)25 b Fw(`)g Fy(\034)1016 1458 y Fv(1)1080 1444
y Fw(\024)g Fy(\034)1216 1458 y Fv(2)1762 1444 y Fy(\034)1802
1458 y Fv(1)1871 1444 y FF(is)31 b(a)f(subt)m(yp)s(e)g(of)g
Fy(\034)2523 1458 y Fv(2)794 1557 y FF(\001)25 b Fw(`)g
FF(\000)1033 1571 y Fv(1)1097 1557 y Fw(\024)g FF(\000)1250
1571 y Fv(2)1762 1557 y FF(\000)1819 1571 y Fv(1)1888
1557 y FF(is)31 b(a)f(subt)m(yp)s(e)g(of)g(\000)2557
1571 y Fv(2)794 1670 y FF(\001)25 b Fw(`)g FF(\004)1037
1684 y Fv(1)1101 1670 y Fw(\024)g FF(\004)1258 1684 y
Fv(2)1762 1670 y FF(\004)1823 1684 y Fv(1)1892 1670 y
FF(is)30 b(a)h(subt)m(yp)s(e)f(of)g(\004)2565 1684 y
Fv(2)1196 1958 y FF(Figure)h(9:)41 b(Lilt)31 b(t)m(yping)f(judgmen)m(t)
h(forms)0 2212 y(and)f(applied)g(in)g(the)h(usual)e(w)m(a)m(y)j(\()p
Fy(c)1254 2226 y Fv(1)1309 2212 y Fy(c)1348 2226 y Fv(2)1388
2212 y FF(\).)0 2450 y FA(3.2)112 b(Static)38 b(Seman)m(tics)0
2622 y FF(The)23 b(judgmen)m(t)f(forms)h(of)g(the)g(Lilt)h(t)m(yp)s(e)f
(system)g(are)h(listed)f(in)g(Figure)h(9.)38 b(The)23
b(complete)h(set)g(of)f(rules)g(de\014ning)0 2735 y(these)36
b(judgmen)m(ts)g(ma)m(y)g(b)s(e)f(found)f(in)i(App)s(endix)e(B;)39
b(w)m(e)d(will)g(discuss)f(only)h(the)g(more)g(un)m(usual)f(asp)s(ects)
h(of)0 2848 y(the)31 b(t)m(yp)s(e)f(system)h(in)f(this)g(section.)141
2961 y(The)24 b(cen)m(tral)i(t)m(yping)f(judgmen)m(t)g(in)f(Lilt)h(is)g
(the)g(one)f(for)h(expressions.)38 b(The)24 b(judgmen)m(t)h(\010;)15
b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)36 b Fw(`)25
b Fy(e)0 3074 y FF(states)32 b(that)f Fy(e)f FF(is)h(a)f(w)m
(ell-formed)i(expression,)e(where:)136 3235 y Fw(\017)46
b FF(\010)30 b(is)g(a)g(function)g(con)m(text,)i(whic)m(h)e(assigns)g
(t)m(yp)s(es)g(to)h(the)f(function)g(sym)m(b)s(ols)f(de\014ned)g(in)h
(the)g(program.)136 3413 y Fw(\017)46 b FF(\001)31 b(is)h(a)f(t)m(yp)s
(e)h(con)m(text,)h(whic)m(h)e(assigns)h(kinds)e(to)i(constructor)g(v)-5
b(ariables.)44 b(The)31 b(con)m(ten)m(ts)i(of)e(\001)g(will)h(b)s(e)227
3525 y(the)23 b(t)m(yp)s(e)g(parameters)h(of)f(the)g(curren)m(t)g
(function)f(and)g(those)i(of)f(the)g(curren)m(t)g(blo)s(c)m(k,)i(plus)d
(an)m(y)h(additional)227 3638 y(v)-5 b(ariables)31 b(in)m(tro)s(duced)f
(b)m(y)g Fz(unpack)f FF(expressions.)136 3816 y Fw(\017)46
b FF(\003)31 b(assigns)f(t)m(yp)s(es)h(to)g(the)f(blo)s(c)m(k)h(lab)s
(els)g(in)f(the)g(curren)m(t)h(function.)136 3993 y Fw(\017)46
b FF(\004)35 b(describ)s(es)f(the)i(p)s(ending)d(exception)k(handlers,)
e(if)g(an)m(y)-8 b(,)38 b(that)d(ha)m(v)m(e)i(b)s(een)d(installed)i(b)m
(y)f(the)g(curren)m(t)227 4106 y(function.)136 4283 y
Fw(\017)46 b FF(\000)33 b(is)f(a)h(lo)s(cal)h(con)m(text,)h(whic)m(h)d
(assigns)h(t)m(yp)s(es)g(to)g(the)g(lo)s(cal)g(storage)i(lo)s(cations)f
(\(argumen)m(ts)f(and)f(lo)s(cal)227 4396 y(v)-5 b(ariables\))32
b(of)e(the)h(curren)m(t)f(function.)136 4573 y Fw(\017)46
b Fy(\034)41 b FF(is)30 b(the)h(return)e(t)m(yp)s(e)h(of)h(the)g
(curren)m(t)f(function.)0 4735 y(If)g(this)f(judgmen)m(t)h(holds,)g
(then)f(the)i(expression)e Fy(e)i FF(p)s(erforms)d(zero)j(or)f(more)g
(primitiv)m(e)h(op)s(erations)f(and)f(then)0 4848 y(do)s(es)e(one)g(of)
h(three)f(things:)39 b(It)27 b(ma)m(y)h(return)e(a)i(v)-5
b(alue)27 b(of)h(t)m(yp)s(e)f Fy(\034)37 b FF(from)27
b(the)g(curren)m(t)g(function,)h(it)g(ma)m(y)g(jump)d(to)0
4961 y(one)g(of)g(the)g(lab)s(els)g(declared)g(in)f(\003,)i(or)f(it)g
(ma)m(y)g(raise)h(an)e(exception.)40 b(The)24 b(t)m(yping)i(rule)e(for)
g Fz(return)f FF(expressions)0 5073 y(states)32 b(that)f(returning)e(a)
i(v)-5 b(alue)31 b(of)f(the)h(appropriate)f(t)m(yp)s(e)h(is)f(alw)m(a)m
(ys)i(p)s(ermitted:)1671 5223 y(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(v)k FF(:)c Fy(\034)p 1428 5260 1045 4 v 1428
5340 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)36 b Fw(`)25 b Fz(return)k Fy(v)1905 5589 y FF(15)p
eop
%%Page: 16 18
16 17 bop 0 91 a FF(Jumping)37 b(to)j(a)f(lab)s(el)g(is)g(allo)m(w)m
(ed)h(pro)m(vided)f(the)f(lab)s(el)h(iden)m(ti\014es)h(an)e(ordinary)g
(blo)s(c)m(k)h(\(as)h(opp)s(osed)e(to)h(an)0 204 y(exception)d
(handler\))f(that)g(can)h(accept)g(the)f(curren)m(t)g(state)i(of)e(the)
g(lo)s(cal)h(storage)h(and)d(exception)j(stac)m(k.)56
b(A)0 317 y(blo)s(c)m(k)37 b(ma)m(y)g(require)e(some)i(t)m(yp)s(e)f
(argumen)m(ts)h(in)f(addition)g(to)h(those)g(of)f(the)g(enclosing)i
(function;)h(the)d Fz(goto)0 430 y FF(expression)30 b(m)m(ust)g(pro)m
(vide)h(constructors)g(of)f(the)h(appropriate)f(kinds:)1243
626 y(\(\003\()p Fy(`)p FF(\))d(=)e FB(lbl)9 b FF(\()p
Fy(\013)1762 640 y Fv(1)1802 626 y FF(:)p Fy(k)1874 640
y Fv(1)1914 626 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)2174
640 y Fx(n)2221 626 y FF(:)p Fy(k)2293 640 y Fx(n)2341
626 y FF(;)g(\004)2442 593 y Ft(0)2465 626 y FF(;)g(\000)2562
593 y Ft(0)2586 626 y FF(\)\))1021 739 y(\001)25 b Fw(`)g
Fy(c)1242 753 y Fx(i)1296 739 y FF(:)g Fy(k)1393 753
y Fx(i)1513 739 y FF(\001)g Fw(`)g FF(\000)g Fw(\024)g
FF(\000)1930 706 y Ft(0)1953 739 y FF([)-5 b Fy(~)-40
b(c=)r(~)-47 b(\013)q FF(])91 b(\001)25 b Fw(`)g FF(\004)g
Fw(\024)g FF(\004)2662 706 y Ft(0)2685 739 y FF([)-5
b Fy(~)-40 b(c)q(=)r(~)-47 b(\013)p FF(])p 980 793 1941
4 v 1272 878 a(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)36 b Fw(`)25 b Fz(goto)k Fy(`)p FF([)p Fy(c)2275
892 y Fv(1)2315 878 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)2555
892 y Fx(n)2603 878 y FF(])0 1082 y(Installing)39 b(an)f(exception)h
(handler)e(has)h(similar)h(t)m(yping)f(requiremen)m(ts)g(to)h(jumping:)
55 b(the)38 b(constructor)h(ar-)0 1195 y(gumen)m(ts)33
b(m)m(ust)f(b)s(e)g(prop)s(erly)g(kinded)f(and)h(the)h(curren)m(t)g
(stac)m(k)h(of)f(exception)g(handlers)f(m)m(ust)h(b)s(e)f(consisten)m
(t)0 1308 y(with)c(the)g(new)g(handler's)f(exp)s(ectations.)41
b(Ho)m(w)m(ev)m(er,)31 b(it)e(is)f(not)g(necessary)h(that)f(the)h(lo)s
(cal)g(con)m(text)h(matc)m(h)f(the)0 1421 y(one)35 b(exp)s(ected)f(b)m
(y)h(the)f(handler)g(at)h(the)f(p)s(oin)m(t)h(the)f(handler)g(is)g
(installed;)k(this)c(requiremen)m(t)g(is)h(deferred)e(to)0
1534 y(the)e(p)s(oin)m(t)f(at)h(whic)m(h)f(an)g(exception)i(is)e
(raised.)41 b(The)30 b(rule)g(for)g(pushing)f(an)h(exception)i(handler)
d(is)i(as)f(follo)m(ws:)1216 1730 y(\(\003\()p Fy(`)p
FF(\))c(=)f FB(hnd)10 b FF(\()p Fy(\013)1790 1744 y Fv(1)1830
1730 y FF(:)p Fy(k)1902 1744 y Fv(1)1942 1730 y Fy(;)15
b(:)g(:)g(:)i(;)e(\013)2202 1744 y Fx(n)2249 1730 y FF(:)p
Fy(k)2321 1744 y Fx(n)2369 1730 y FF(;)g(\004)2470 1697
y Ft(0)2493 1730 y FF(;)g(\000)2590 1697 y Ft(0)2614
1730 y FF(\)\))784 1843 y(\001)25 b Fw(`)g Fy(c)1005
1857 y Fx(i)1059 1843 y FF(:)h Fy(k)1157 1857 y Fx(i)1276
1843 y FF(\001)f Fw(`)g FF(\004)g Fw(\024)g FF(\004)1701
1810 y Ft(0)1723 1843 y FF([)-5 b Fy(~)-40 b(c)q(=)r(~)-47
b(\013)q FF(])91 b(\010;)15 b(\001;)g(\003;)g(\(\004)p
Fy(;)g FF(\000)2526 1810 y Ft(0)2550 1843 y FF([)-5 b
Fy(~)-40 b(c)q(=)r(~)-47 b(\013)q FF(]\);)15 b(\000;)g
Fy(\034)36 b Fw(`)25 b Fy(e)p 743 1897 2415 4 v 1005
1982 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)37 b Fw(`)24 b Fz(pushhandler)k Fy(`)p FF([)p
Fy(c)2343 1996 y Fv(1)2383 1982 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)2623
1996 y Fx(n)2671 1982 y FF(])31 b Fz(in)e Fy(e)0 2186
y FF(The)34 b(t)m(yping)h(rule)f(for)g Fz(raise)f FF(expressions)h
(requires)g(that)h(the)f(lo)s(cal)i(con)m(text)g(matc)m(h)f(the)g(one)f
(exp)s(ected)h(b)m(y)0 2299 y(the)c(curren)m(t)f(handler.)40
b(This)29 b(is)i(captured)f(b)m(y)g(the)g(premise)h(\001)25
b Fw(`)f FF(\004)30 b Fs(handles)g FF(\000:)1254 2479
y(\010;)15 b(\001;)g(\000)25 b Fw(`)g Fy(v)k FF(:)c Fy(\034)1802
2493 y Fv(exn)2005 2479 y FF(\001)g Fw(`)g FF(\004)k
Fs(handles)h FF(\000)p 1254 2517 1393 4 v 1452 2597 a(\010;)15
b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)36 b Fw(`)25
b Fz(raise)k Fy(v)0 2801 y FF(The)37 b(auxiliary)g(judgmen)m(t)g(\001)f
Fw(`)g FF(\004)h Fs(handles)f FF(\000)h(\(de\014ned)g(in)f(App)s(endix)
g(B\))h(holds)g(if)g(\004)g(is)g(empt)m(y)-8 b(,)40 b(meaning)0
2914 y(that)c(the)g(curren)m(t)g(exception)h(handler)d(w)m(as)i(not)g
(lo)s(cally)i(installed)e(\(in)g(whic)m(h)f(case)i(the)f(con)m(ten)m
(ts)h(of)f(\000)g(are)0 3027 y(irrelev)-5 b(an)m(t)34
b(b)s(ecause)e(the)h(curren)m(t)f(lo)s(cals)h(will)g(b)s(e)f
(discarded\),)h(or)f(if)g(\004)g(is)h(nonempt)m(y)f(and)g(the)g(lo)s
(cal)i(con)m(text)0 3139 y(\000)k(matc)m(hes)h(the)f(exp)s(ectations)i
(of)e(the)g(curren)m(t)g(lo)s(cally)i(installed)e(handler)g(as)g(giv)m
(en)h(b)m(y)f(\004.)63 b(Imp)s(ortan)m(tly)-8 b(,)0 3252
y Fz(raise)26 b Fy(v)k FF(is)d(not)g(the)h(only)f(form)g(of)g
(expression)g(that)g(ma)m(y)h(raise)g(an)f(exception.)40
b(Arra)m(y)28 b(subscript)e(op)s(erations)0 3365 y(ma)m(y)g(do)e(so)i
(\(if)f(the)g(index)g(is)g(out)g(of)g(b)s(ounds\),)g(and)f(so)h(ma)m(y)
h(function)f(calls)h(\(if)f(the)g(callee)i(raises)f(an)f(exception)0
3478 y(it)33 b(do)s(es)f(not)h(handle)f(itself)7 b(\);)35
b(therefore)e(the)g(t)m(yping)g(rules)f(for)g(these)h(forms)f(of)h
(expressions)f(m)m(ust)g(also)i(ha)m(v)m(e)0 3591 y(premises)g(of)g
(the)g(form)g(\001)d Fw(`)g FF(\004)j Fs(handles)g FF(\000)g(to)h
(ensure)e(that)i(the)f(state)i(of)e(the)g(lo)s(cal)i(v)-5
b(ariables)34 b(is)h(consisten)m(t)0 3704 y(with)30 b(what)g(the)h
(curren)m(t)f(handler)g(requires.)141 3817 y(Most)44
b(of)f(Lilt's)h(op)s(erations)f(are)g(p)s(erformed)f(b)m(y)h(a)g(sort)g
(of)g(let-binding)g(expression:)66 b(the)43 b(expression)0
3930 y Fz(let)35 b Fy(s)e FF(=)g Fy(r)38 b Fz(in)d Fy(e)h
FF(ev)-5 b(aluates)37 b Fy(r)s FF(,)f(stores)g(the)f(result)h(in)f(lo)s
(cation)i Fy(s)p FF(,)f(and)f(con)m(tin)m(ues)i(with)e
Fy(e)p FF(.)56 b(Its)35 b(t)m(yping)h(rule)0 4043 y(mak)m(es)31
b(use)f(of)h(an)f(auxiliary)h(judgmen)m(t)f(to)h(determine)g(the)f(t)m
(yp)s(e)h(of)f Fy(r)s FF(:)1101 4230 y(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(r)i FF(:)f Fy(\034)1655 4197 y Ft(0)1769
4230 y FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000[)p
Fy(s)26 b Fw(7!)f Fy(\034)2512 4197 y Ft(0)2535 4230
y FF(];)15 b Fy(\034)36 b Fw(`)25 b Fy(e)p 1101 4273
1699 4 v 1320 4352 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)37 b Fw(`)24 b Fz(let)30 b Fy(s)25 b FF(=)g Fy(r)33
b Fz(in)c Fy(e)0 4557 y FF(The)34 b(terms)h(ranged)f(o)m(v)m(er)i(b)m
(y)f Fy(r)i FF(\(the)e(so-called)i(\\small)f(expressions"\))f(are)g
(generally)h(single)f(primitiv)m(e)h(op-)0 4669 y(erations)e(p)s
(erformed)d(on)h(syn)m(tactic)j(v)-5 b(alues;)34 b(they)f(in)m(v)m(olv)
m(e)i(no)e(con)m(trol)h(\015o)m(w,)f(cannot)h(raise)f(exceptions,)i
(and)0 4782 y(ha)m(v)m(e)j(no)e(side)h(e\013ects)h(\(except)g(p)s
(ossibly)e(allo)s(cation,)k(whic)m(h)d(ma)m(y)g(fail)g(and)f(terminate)
i(the)f(program\).)60 b(Of)0 4895 y(these)34 b(op)s(erations,)g
(arithmetic,)i(tuple)d(allo)s(cation)i(and)e(pro)5 b(jection)34
b(are)g(relativ)m(ely)h(standard)e(and)f(ha)m(v)m(e)j(the)0
5008 y(exp)s(ected)h(t)m(yping)g(rules.)56 b(Sligh)m(tly)36
b(un)m(usual)f(features)g(of)h(Lilt)g(at)h(this)e(lev)m(el)i(are)f(the)
g(treatmen)m(t)h(of)f(lab)s(eled)0 5121 y(v)-5 b(arian)m(t)31
b(t)m(yp)s(es)g(\(a)g(generalization)i(of)d(disjoin)m(t)h(union)f(or)g
(sum)f(t)m(yp)s(es\),)j(and)d(the)i(use)f(of)g(co)s(ercions.)1905
5589 y(16)p eop
%%Page: 17 19
17 18 bop 0 91 a FE(V)-9 b(arian)m(ts)91 b FF(A)39 b(v)-5
b(alue)39 b(of)g(v)-5 b(arian)m(t)40 b(t)m(yp)s(e)e(is)h(created)h(as)f
(usual)f(b)m(y)h(the)g Fz(inj)f FF(op)s(eration,)j(whic)m(h)d(tak)m(es)
j(a)e(tag)0 204 y(in)m(teger)28 b Fy(j)33 b FF(and)26
b(a)i(v)-5 b(alue)27 b Fy(v)s FF(,)i(and)d(pro)s(duces)g(a)h(v)-5
b(alue)28 b(of)f(an)m(y)g(v)-5 b(arian)m(t)28 b(t)m(yp)s(e)f(con)m
(taining)i(a)e Fy(j)33 b FF(v)-5 b(arian)m(t)28 b(whose)f(t)m(yp)s(e)0
317 y(is)j(that)h(of)g Fy(v)s FF(:)1522 404 y(\001)25
b Fw(`)g Fy(\034)35 b FF(=)25 b([)p Fy(:)15 b(:)g(:)i(;)e(j)5
b FF(:)p Fy(\034)2169 418 y Fx(j)2206 404 y Fy(;)15 b(:)g(:)g(:)r
FF(])1658 517 y(\010;)g(\001;)g(\000)25 b Fw(`)g Fy(v)j
FF(:)e Fy(\034)2206 531 y Fx(j)p 1481 571 939 4 v 1503
656 a FF(\010;)15 b(\001;)g(\000)26 b Fw(`)e Fz(inj)2032
680 y Fx(\034)2075 656 y FF(\()p Fy(j;)15 b(v)s FF(\))27
b(:)f Fy(\034)0 799 y FF(Giv)m(en)37 b(a)g(v)-5 b(alue)37
b(of)g(v)-5 b(arian)m(t)37 b(t)m(yp)s(e,)i(accessing)f(its)f(con)m(ten)
m(ts)h(is)e(a)h(t)m(w)m(o-stage)j(pro)s(cess:)52 b(the)37
b Fz(case)e FF(expression)0 912 y(form)27 b(\\narro)m(ws")h(the)g(t)m
(yp)s(e)f(un)m(til)h(it)g(has)f(only)h(one)g(v)-5 b(arian)m(t,)29
b(and)e(then)g(the)h Fz(outj)e FF(op)s(eration)i(can)g(extract)h(the)0
1025 y(carried)i(v)-5 b(alue:)935 1165 y(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(v)k FF(:)c([)p 1468 1094 118 4 v Fy(j)5 b
FF(:)p Fy(\034)11 b(;)k(i)p FF(:)p Fy(\034)1732 1132
y Ft(0)1757 1165 y Fy(;)p 1797 1094 V 15 w(j)5 b FF(:)p
Fy(\034)1915 1113 y Ft(0)1938 1165 y FF(])142 1288 y(\010;)15
b(\001;)g(\003;)g(\004;)g(\000[)p Fy(s)26 b Fw(7!)f FF([)p
Fy(i)p FF(:)p Fy(\034)966 1255 y Ft(0)990 1288 y FF(]];)15
b Fy(\034)36 b Fw(`)25 b Fy(e)1279 1302 y Fv(1)1410 1288
y FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000[)p Fy(s)26
b Fw(7!)f FF([)p 2128 1217 V Fy(j)5 b FF(:)p Fy(\034)11
b(;)p 2286 1217 V 15 w(j)5 b FF(:)p Fy(\034)2404 1236
y Ft(0)2427 1288 y FF(]];)15 b Fy(\034)37 b Fw(`)24 b
Fy(e)2716 1302 y Fv(2)p 101 1341 2698 4 v 454 1426 a
FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)37
b Fw(`)25 b Fz(case)k Fy(v)k Fz(of)d(inj)o FF(\()p Fy(i;)15
b(s)p FF(\))27 b Fw(\))e Fy(e)2071 1440 y Fv(1)2141 1426
y Fz(else)k Fy(e)2404 1440 y Fv(2)3032 1299 y FF(\010;)15
b(\001;)g(\000)25 b Fw(`)g Fy(v)j FF(:)e([)p Fy(i)g FF(:)f
Fy(\034)10 b FF(])p 2980 1341 820 4 v 2980 1426 a(\010;)15
b(\001;)g(\000)25 b Fw(`)g Fz(outj)o FF(\()p Fy(v)s FF(\))h(:)f
Fy(\034)0 1582 y FF(The)32 b Fz(case)g FF(expression)h(t)m(yp)s(ed)f
(in)h(this)g(rule)f(examines)i(the)f(v)-5 b(alue)33 b
Fy(v)s FF(,)h(whic)m(h)f(has)f(a)i(v)-5 b(arian)m(t)34
b(t)m(yp)s(e,)g(compares)0 1695 y(the)k(tag)h(of)f Fy(v)j
FF(to)e(the)f(n)m(um)m(b)s(er)e Fy(i)i FF(and)f(then)h(con)m(tin)m(ues)
h(with)e(either)i Fy(e)2542 1709 y Fv(1)2619 1695 y FF(or)f
Fy(e)2780 1709 y Fv(2)2820 1695 y FF(,)h(after)g(placing)f(a)g(v)m
(ersion)h(of)0 1808 y Fy(v)f FF(with)d(an)g(appropriately)h(re\014ned)e
(t)m(yp)s(e)h(in)g(the)g(lo)s(cation)i Fy(s)p FF(.)55
b(\(Here)36 b(it)f(is)h(imp)s(ortan)m(t)f(that)h(all)g(the)f(tags)h(in)
0 1921 y(the)f(sum)f(t)m(yp)s(e)g(are)i(syn)m(tactically)h(required)d
(to)h(b)s(e)f(distinct.\))55 b(The)34 b(t)m(yping)h(of)g
Fy(e)2900 1935 y Fv(1)2974 1921 y FF(assumes)g(that)g
Fy(s)f FF(has)h(the)0 2034 y(unary)c(v)-5 b(arian)m(t)33
b(t)m(yp)s(e)f(corresp)s(onding)f(to)i(the)f Fy(i)g FF(branc)m(h)g(of)g
(the)g(t)m(yp)s(e)g(of)g Fy(v)s FF(;)i(the)e(t)m(yping)g(of)g
Fy(e)3270 2048 y Fv(2)3342 2034 y FF(assumes)g Fy(s)f
FF(has)0 2147 y(a)j(v)-5 b(arian)m(t)35 b(t)m(yp)s(e)f(consisting)h(of)
f(all)h(the)f(remaining)g(branc)m(hes)f(of)i Fy(v)s FF('s)f(original)h
(t)m(yp)s(e.)51 b(The)34 b(small)g(expression)0 2260
y Fz(outj)o FF(\()p Fy(v)s FF(\))d(assumes)f Fy(v)k FF(has)c(a)h(unary)
e(v)-5 b(arian)m(t)31 b(t)m(yp)s(e,)g(and)f(retriev)m(es)i(the)e(v)-5
b(alue)31 b(it)g(carries.)0 2493 y FE(Co)s(ercions)92
b FF(The)29 b(op)s(erations)i(of)f Fw(8)p FF(-elimination,)i
Fw(9)p FF(-in)m(tro)s(duction,)e(and)g(in)m(tro)s(duction)g(and)f
(elimination)j(of)0 2605 y(recursiv)m(e)27 b(t)m(yp)s(es)g(are)g(in)m
(tended)g(to)g(ha)m(v)m(e)h(the)f(sp)s(ecial)g(prop)s(ert)m(y)f(that,)j
(when)c(applied)i(to)g(v)-5 b(alues,)28 b(they)f(require)0
2718 y(no)f(run-time)f(w)m(ork)h(to)g(compute.)40 b(It)26
b(is)g(reasonably)g(common)g(practice)h(to)f(simply)g(include)f
(expression)h(forms)0 2831 y(with)34 b(this)g(prop)s(ert)m(y)f(among)i
(the)f(syn)m(tactic)i(v)-5 b(alues)34 b(\(or)g(in)g(Lilt,)i(the)e(op)s
(erands\))f(of)h(the)h(language.)53 b(This)33 b(is)0
2944 y(what)d(w)m(e)g(ha)m(v)m(e)h(done,)e(except)i(that)f(w)m(e)h
(group)e(these)h(four)f(di\013eren)m(t)h(forms)f(of)h(v)-5
b(alues)30 b(in)m(to)g(one,)h(namely)f(the)0 3057 y(application)j(of)e
(a)h FB(c)-5 b(o)g(er)g(cion)39 b FF(to)32 b(a)g(v)-5
b(alue)32 b(\(written)f Fy(q)s FF(@)p Fy(v)s FF(\).)44
b(F)-8 b(rom)31 b(a)h(t)m(yping)g(p)s(oin)m(t)f(of)g(view,)h(co)s
(ercions)g(b)s(eha)m(v)m(e)0 3170 y(a)k(bit)f(lik)m(e)i(functions;)h
(in)d(particular,)j(the)d(rule)h(for)f(co)s(ercion)h(application)h(is)f
(just)f(lik)m(e)i(the)e(usual)g(function)0 3283 y(application)d(rule:)
1325 3372 y(\010;)15 b(\001;)g(\000)25 b Fw(`)g Fy(v)k
FF(:)c Fy(\034)1873 3386 y Fv(2)2003 3372 y FF(\001)g
Fw(`)g Fy(q)j FF(:)e Fy(\034)2345 3386 y Fv(2)2409 3372
y Fw(\))f Fy(\034)p 1325 3410 1251 4 v 1614 3489 a FF(\010;)15
b(\001;)g(\000)25 b Fw(`)g Fy(q)s FF(@)p Fy(v)j FF(:)d
Fy(\034)0 3632 y FF(The)49 b(t)m(yping)g(rules)g(for)g(the)g(co)s
(ercions)h(themselv)m(es)g(are)g(not)f(particularly)h(surprising)d
(either.)98 b(The)48 b Fw(8)p FF(-)0 3745 y(elimination)32
b(co)s(ercion,)f(written)g([)p Fy(c)1239 3759 y Fv(1)1279
3745 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)1519 3759 y Fx(n)1567
3745 y FF(],)31 b(instan)m(tiates)h(a)f(v)-5 b(alue)31
b(of)f(a)h Fw(8)p FF(-t)m(yp)s(e:)1478 3883 y(\001)25
b Fw(`)g Fy(c)1699 3897 y Fx(i)1753 3883 y FF(:)g Fy(k)1850
3897 y Fx(i)1909 3883 y FF(for)30 b(1)c Fw(\024)f Fy(i)g
Fw(\024)g Fy(n)p 702 3916 2497 4 v 702 4001 a FF(\001)g
Fw(`)g FF([)p Fy(c)948 4015 y Fv(1)988 4001 y Fy(;)15
b(:)g(:)g(:)h(;)f(c)1228 4015 y Fx(n)1276 4001 y FF(])25
b(:)h Fw(8)p Fy(\013)1486 4015 y Fv(1)1525 4001 y FF(:)p
Fy(k)1597 4015 y Fv(1)1637 4001 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)1897
4015 y Fx(n)1944 4001 y FF(:)p Fy(k)2016 4015 y Fx(n)2064
4001 y Fy(:\034)35 b Fw(\))25 b Fy(\034)10 b FF([)p Fy(c)2394
4015 y Fv(1)2434 4001 y Fy(;)15 b(:)g(:)g(:)i(;)e(c)2675
4015 y Fx(n)2723 4001 y Fy(=\013)2826 4015 y Fv(1)2866
4001 y Fy(;)g(:)g(:)g(:)h(;)f(\013)3125 4015 y Fx(n)3173
4001 y FF(])0 4157 y(The)30 b Fw(9)p FF(-in)m(tro)s(duction)g(co)s
(ercion,)i(written)e Fz(pack)o FF([)p Fy(\034)5 b(;)15
b(c)1828 4171 y Fv(1)1868 4157 y Fy(;)g(:)g(:)g(:)i(;)e(c)2109
4171 y Fx(n)2157 4157 y FF(],)31 b(is)f(similar:)793
4301 y(\001)25 b Fw(`)f Fy(\034)36 b FF(=)25 b Fw(9)p
Fy(\013)1255 4315 y Fv(1)1294 4301 y FF(:)p Fy(k)1366
4315 y Fv(1)1406 4301 y Fy(;)15 b(:)g(:)g(:)h(;)f(\013)1665
4315 y Fx(n)1713 4301 y FF(:)p Fy(k)1785 4315 y Fx(n)1833
4301 y Fy(:\034)1908 4268 y Ft(0)1956 4301 y FF(:)26
b Fy(T)104 b FF(\001)25 b Fw(`)f Fy(c)2384 4315 y Fx(i)2438
4301 y FF(:)i Fy(k)2536 4315 y Fx(i)2594 4301 y FF(for)31
b(1)25 b Fw(\024)g Fy(i)h Fw(\024)f Fy(n)p 793 4339 2315
4 v 908 4426 a FF(\001)g Fw(`)g Fz(pack)o FF([)p Fy(\034)5
b(;)15 b(c)1430 4440 y Fv(1)1470 4426 y Fy(;)g(:)g(:)g(:)i(;)e(c)1711
4440 y Fx(n)1758 4426 y FF(])26 b(:)f Fy(\034)1909 4393
y Ft(0)1933 4426 y FF([)p Fy(c)1997 4440 y Fv(1)2037
4426 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)2277 4440 y Fx(n)2325
4426 y Fy(=\013)2428 4440 y Fv(1)2468 4426 y Fy(;)g(:)g(:)g(:)i(;)e
(\013)2728 4440 y Fx(n)2775 4426 y FF(])26 b Fw(\))f
Fy(\034)0 4582 y FF(The)30 b Fz(roll)f FF(and)h Fz(unroll)f
FF(co)s(ercions)i(mediate)g(b)s(et)m(w)m(een)g(a)g(recursiv)m(e)g(t)m
(yp)s(e)f(and)g(its)h(unrolling:)872 4721 y(\001)25 b
Fw(`)g Fy(\034)36 b FF(=)24 b Fy(\026\013:\034)1413 4688
y Ft(0)1463 4721 y FF(:)h Fy(T)p 745 4759 961 4 v 745
4845 a FF(\001)g Fw(`)g Fz(roll)1118 4859 y Fx(\034)1186
4845 y FF(:)h Fy(\034)1287 4812 y Ft(0)1310 4845 y FF([)p
Fy(\034)10 b(=\013)p FF(])27 b Fw(\))e Fy(\034)2265 4723
y FF(\001)g Fw(`)g Fy(\026\013:\034)36 b FF(:)26 b Fy(T)p
1888 4760 1267 4 v 1888 4845 a FF(\001)f Fw(`)g Fz(unroll)e
FF(:)j Fy(\026\013:\034)36 b Fw(\))25 b Fy(\034)10 b
FF([)p Fy(\026\013:\034)g(=\013)p FF(])141 5001 y(Roughly)21
b(sp)s(eaking,)i(Lilt)f(uses)f(co)s(ercions)h(for)e(op)s(erations)i
(whose)f(T)-8 b(AL)g(T)21 b(equiv)-5 b(alen)m(ts)22 b(are)g(subt)m
(yping)e(rules)0 5114 y(rather)34 b(than)f(v)-5 b(alue)35
b(forms)e(or)h(instructions.)51 b(This)33 b(is)h(not)g(b)m(y)f(acciden)
m(t,)k(since)d(the)g(\\op)s(erations")h(captured)0 5227
y(b)m(y)26 b(subt)m(yping)f(rules)g(in)h(T)-8 b(AL)g(T)26
b(\(in)g(whic)m(h)f(subt)m(yping)h(is)g(resolutely)g(inclusiv)m(e)h
(rather)f(than)g(co)s(erciv)m(e\))i(clearly)0 5340 y(amoun)m(t)j(to)g
(the)f(iden)m(tit)m(y)-8 b(.)1905 5589 y(17)p eop
%%Page: 18 20
18 19 bop 524 208 a Fz(int)47 b(rfib\()g(int)g(n)g(\))h
Fw(f)620 321 y Fz(if)f(\()h(n)f(<)g(2)h(\))f(return)f(1;)620
434 y(return)g(rfib\(n-1\))f(+)j(rfib\(n-2\);)524 546
y Fw(g)2188 40 y FB(r\014b)31 b FF(=)25 b Fz(func)o FF(\()p
Fw(\001)p FF(;)15 b([)p Fy(n)p FF(:)p Fz(int)p FF(];)g
Fz(int)p FF(\))p Fy(:)p FF(\()2370 153 y Fz(enter)o FF(\()p
FB(t1)e Fy(;)i FB(t2)e FF(\))p Fy(:)2552 266 y Fz(if)30
b Fy(n)24 b(<)h FF(2)31 b Fz(then)2734 379 y(return)d
FF(1)2552 492 y Fz(else)2734 604 y(let)h Fy(n)c FF(=)g
Fw(\000)p FF(\()p Fy(n;)15 b FF(1\))31 b Fz(in)2734 717
y(let)e FB(t1)38 b FF(=)25 b FB(r\014b)6 b FF(\()p Fy(n)p
FF(\))31 b Fz(in)2734 830 y(let)e Fy(n)c FF(=)g Fw(\000)p
FF(\()p Fy(n;)15 b FF(1\))31 b Fz(in)2734 943 y(let)e
FB(t2)38 b FF(=)25 b FB(r\014b)6 b FF(\()p Fy(n)p FF(\))31
b Fz(in)2734 1056 y(let)e FB(t1)38 b FF(=)25 b(+\()p
FB(t1)13 b Fy(;)i FB(t2)f FF(\))30 b Fz(in)2734 1169
y(return)e FB(t1)44 b FF(\))661 1395 y(P)m(op)s(corn)1833
b(Lilt)1022 1585 y(Figure)31 b(10:)42 b(Lilt)31 b(Example:)40
b(Recursiv)m(e)32 b(Fib)s(onacci)0 1849 y FA(3.3)112
b(Lilt)38 b(Examples)0 2020 y FF(A)c(v)m(ery)g(simple)g(Lilt)h
(function,)g(illustrating)g(the)f(use)g(of)g(lo)s(cal)h(v)-5
b(ariables,)36 b(is)e(sho)m(wn)f(in)h(Figure)g(10.)53
b(On)33 b(the)0 2133 y(left)27 b(side)g(of)g(the)g(\014gure)f(is)h(a)g
(P)m(op)s(corn)g(\(or)g(C)f(or)h(Ja)m(v)-5 b(a\))28 b(function)e(that)i
(computes)e(the)h Fy(n)3090 2100 y Fv(th)3187 2133 y
FF(Fib)s(onacci)h(n)m(um)m(b)s(er)0 2246 y(using)h(the)g(ob)m(vious)h
(but)f(ine\016cien)m(t)i(recursiv)m(e)e(metho)s(d;)h(on)f(the)h(righ)m
(t)g(is)f(the)h(appro)m(ximate)g(Lilt)g(equiv)-5 b(alen)m(t.)0
2359 y(Note)34 b(that)f(the)g(en)m(try)g(blo)s(c)m(k)g(of)f(the)h(Lilt)
g(function)f(declares)i(the)f(t)m(w)m(o)h(lo)s(cal)f(v)-5
b(ariables)34 b FB(t1)45 b FF(and)32 b FB(t2)45 b FF(but)32
b(do)s(es)0 2472 y(not)i(giv)m(e)h(t)m(yp)s(es)e(for)g(them:)47
b(at)34 b(the)g(start)g(of)f(the)h(en)m(try)g(blo)s(c)m(k)g(,)g(the)g
(lo)s(cal)g(v)-5 b(ariables)34 b(are)g(uninitialized)h(and)0
2585 y(so)29 b(they)h(ha)m(v)m(e)g(t)m(yp)s(e)f Fz(ns)p
FF(.)40 b(Also)30 b(note)g(that)f(as)h(in)e(C-lik)m(e)j(languages,)g(a)
e(function)g(is)g(allo)m(w)m(ed)i(to)f(assign)f(in)m(to)i(its)0
2698 y(argumen)m(ts:)39 b(the)28 b(Lilt)g(v)m(ersion)g(of)f
FB(r\014b)33 b FF(destructiv)m(ely)c(mo)s(di\014es)d(its)i(parameter)g
Fy(n)e FF(to)i(compute)g(the)f(argumen)m(t)0 2811 y(of)k(eac)m(h)g
(recursiv)m(e)g(call.)141 2923 y(A)40 b(somewhat)g(more)g(in)m
(teresting)h(function,)g(in)m(v)m(olving)g(some)g(lo)s(cal)f(con)m
(trol)h(\015o)m(w,)i(is)c(the)h(function)f FB(\014b)0
3036 y FF(sho)m(wn)20 b(in)g(Figure)h(11,)i(whic)m(h)e(computes)f(Fib)s
(onacci)i(n)m(um)m(b)s(ers)d(using)h(a)g(linear-time)i(lo)s(op)f
(instead)g(of)f(recursion.)0 3149 y(Again,)38 b(note)e(that)g(the)g
(three)g(lo)s(cal)h(v)-5 b(ariables)36 b(ha)m(v)m(e)h(t)m(yp)s(e)f
Fz(ns)f FF(when)f(they)i(are)g(\014rst)f(allo)s(cated.)58
b(When)36 b(the)0 3262 y(blo)s(c)m(k)c(called)h FB(lo)-5
b(op)39 b FF(is)31 b(in)m(v)m(ok)m(ed)i(at)f(the)g(end)f(of)h(the)f(en)
m(try)h(blo)s(c)m(k,)h Fy(a)e FF(and)g Fy(b)g FF(ha)m(v)m(e)i(b)s(een)e
(initialized,)j(but)c Fy(c)i FF(has)0 3375 y(not;)d(therefore)e
FB(lo)-5 b(op)8 b FF('s)27 b(blo)s(c)m(k)h(header)f(sp)s(eci\014es)f
(the)i(t)m(yp)s(e)f Fz(int)f FF(for)h Fy(a)g FF(and)f(for)h
Fy(b)g FF(\(as)h(w)m(ell)g(as)f(for)g(the)g(argumen)m(t)0
3488 y Fy(n)p FF(\),)k(but)e(exp)s(ects)i(that)g Fy(c)g
FF(still)g(has)f(t)m(yp)s(e)h Fz(ns)o FF(.)41 b(By)31
b(the)f(time)h FB(lo)-5 b(op)38 b FF(in)m(v)m(ok)m(es)33
b(itself)e(\(in)f(the)h(last)g(line)g(of)f(co)s(de\),)i
Fy(c)0 3601 y FF(has)e(b)s(een)g(assigned)g(an)h(in)m(teger;)h(the)e
(jump)f(is)h(still)i(w)m(ell-t)m(yp)s(ed)f(b)s(ecause)f
Fz(int)g FF(is)g(a)h(subt)m(yp)s(e)f(of)g Fz(ns)p FF(.)141
3714 y(A)f(function)g(with)g(similar)h(con)m(trol-\015o)m(w)h
(structure)e(but)f(more)i(complex)g(t)m(yping)f(is)g(the)h(p)s
(olymorphic)e(list)0 3827 y(rev)m(ersal)39 b(function)e(sho)m(wn)g(in)g
(Figure)h(12.)63 b(This)37 b(example)h(uses)f(the)h(p)s(olymorphic)f(t)
m(yp)s(e)h(constructor)g FB(list)9 b FF(,)0 3940 y(de\014ned)29
b(as)i(follo)m(ws:)1241 4053 y FB(list)j FF(=)25 b Fy(\025\013)p
FF(:)p Fy(T)8 b(:)31 b(\026\014)5 b(:)31 b FF([0)26 b(:)f
Fz(unit)o Fy(;)15 b FF(1)26 b(:)g Fw(h)p Fy(\013;)15
b(\014)5 b Fw(i)p FF(])0 4211 y(\(Note)24 b(that)g(the)e(t)m(yp)s(e)h
FB(list)32 b Fy(\034)g FF(is)23 b(recursiv)m(e;)j(this)c(recursion)h
(is)f(not)h(mark)m(ed)g(b)m(y)f(an)m(y)h(sp)s(ecial)g(syn)m(tax)h(in)e
(P)m(op)s(corn,)0 4324 y(but)33 b(m)m(ust)g(b)s(e)f(written)i(with)f(a)
g Fy(\026)p FF(-t)m(yp)s(e)h(in)f(Lilt.\))50 b(F)-8 b(or)34
b(con)m(v)m(enience,)j(the)c(constructor)h FB(listS)45
b FF(is)33 b(also)h(de\014ned)0 4437 y(in)g(the)h(\014gure;)i
FB(listS)46 b Fy(\034)f FF(is)34 b(simply)h(the)g(unrolling)f(of)h(the)
g(recursiv)m(e)g(t)m(yp)s(e)g FB(list)44 b Fy(\034)10
b FF(.)53 b(A)m(t)36 b(the)f(b)s(eginning)f(of)h(the)0
4550 y(function)g FB(r)-5 b(ev)11 b FF(,)37 b(the)f(v)-5
b(ariable)36 b Fy(M)46 b FF(is)36 b(initialized)i(with)d(an)h(empt)m(y)
g(list;)k(this)35 b(is)h(a)g(t)m(w)m(o-stage)j(pro)s(cess)d(in)f(Lilt,)
0 4663 y(consisting)h(of)e(an)h(injection)h(\(to)f(pro)s(duce)f(a)h(v)
-5 b(alue)35 b(of)g(t)m(yp)s(e)g FB(listS)46 b Fy(\013)p
FF(\))35 b(and)g(an)f(application)i(of)f(the)g(co)s(ercion)0
4775 y Fz(roll)191 4790 y Fq(list)h Fx(\013)403 4775
y FF(to)e(create)g(the)f(list)h(itself.)49 b(The)33 b(blo)s(c)m(k)g
(named)g FB(lo)-5 b(op)41 b FF(examines)33 b(the)g(list)h(curren)m(tly)
f(stored)g(in)g(the)0 4888 y(argumen)m(t)h(lo)s(cation)i
Fy(L)d FF(b)m(y)h(unrolling)g(it)g(and)g(p)s(erforming)e(a)i(case)h
(analysis.)52 b(In)33 b(the)h(case)h(where)f(the)g(tag)h(is)0
5001 y(0|that)e(is,)f Fy(L)f FF(is)h(the)f(empt)m(y)h(list|the)h
(curren)m(t)e(v)-5 b(alue)32 b(of)g Fy(M)41 b FF(is)32
b(returned)e(from)i(the)f(function.)44 b(In)31 b(the)h(case)0
5114 y(where)e(the)i(tag)g(is)f(not)g(0|)p FB(i.e.)p
FF(,)g(the)g(tag)h(is)f(1)h(meaning)f Fy(L)g FF(is)g(a)g(cons|the)g
(comp)s(onen)m(ts)g(of)g Fy(L)g FF(are)h(extracted)0
5227 y(b)m(y)e(outjection)h(and)e(pro)5 b(jection,)31
b(the)f(head)f(of)h Fy(L)g FF(is)f(added)h(to)g(the)g(fron)m(t)g(of)g
Fy(M)10 b FF(,)30 b(the)g(tail)h(is)f(stored)f(bac)m(k)i(in)m(to)0
5340 y Fy(L)p FF(,)f(and)g(the)h(lo)s(op)f(is)h(ev)-5
b(aluated)31 b(again.)1905 5589 y(18)p eop
%%Page: 19 21
19 20 bop 250 223 a Fz(int)47 b(fib\(int)f(n\))h Fw(f)432
336 y Fz(int)g(a,b,c;)432 449 y(a)g(=)h(1;)f(b)g(=)h(1;)432
562 y(while)e(\(n)h(!=)h(0\))f Fw(f)614 675 y Fz(c)g(=)h(a)f(+)g(b;)614
787 y(a)g(=)h(b;)614 900 y(b)f(=)h(c;)614 1013 y(n--;)432
1126 y Fw(g)432 1239 y Fz(return)e(a;)250 1352 y Fw(g)1739
223 y FB(\014b)31 b FF(=)25 b Fz(func)n FF(\()p Fw(\001)p
FF(;)15 b([)p Fy(n)p FF(:)p Fz(int)q FF(];)g Fz(int)p
FF(\))p Fy(:)p FF(\()1920 336 y Fz(enter)o FF(\()p Fy(a;)g(b;)g(c)p
FF(\))p Fy(:)2102 449 y Fz(let)30 b Fy(a)25 b FF(=)g(1)31
b Fz(in)2102 562 y(let)f Fy(b)25 b FF(=)g(1)31 b Fz(in)2102
675 y(goto)e FB(lo)-5 b(op)39 b Fy(;)1920 787 y FB(lo)-5
b(op)33 b FF(=)25 b Fz(block)o FF(\()p Fw(\001)p FF(;)15
b Fw(\001)p FF(;)g([)p Fy(n)p FF(:)p Fz(int)q Fy(;)g(a)p
FF(:)p Fz(int)p Fy(;)g(b)p FF(:)p Fz(int)p Fy(;)g(c)p
FF(:)p Fz(ns)p FF(]\))p Fy(:)2102 900 y Fz(if)30 b Fy(n)25
b FF(=)g(0)31 b Fz(then)2284 1013 y(return)e Fy(a)2102
1126 y Fz(else)2284 1239 y(let)h Fy(c)25 b FF(=)g(+\()p
Fy(a;)15 b(b)p FF(\))31 b Fz(in)2284 1352 y(let)f Fy(a)25
b FF(=)g Fy(b)30 b Fz(in)2284 1465 y(let)g Fy(b)25 b
FF(=)g Fy(c)30 b Fz(in)2284 1578 y(let)g Fy(n)24 b FF(=)h
Fw(\000)p FF(\()p Fy(n;)15 b FF(1\))31 b Fz(in)2284 1691
y(goto)e FB(lo)-5 b(op)8 b FF(\))557 1917 y(P)m(op)s(corn)1736
b(Lilt)1044 2180 y(Figure)31 b(11:)42 b(Lilt)31 b(Example:)41
b(Iterativ)m(e)32 b(Fib)s(onacci)427 2649 y Fz(union)47
b(list)e Fw(f)523 2762 y Fz(void)h(nil;)523 2875 y(*\(a,list\))e
(cons;)427 2988 y Fw(g)427 3200 y Fz(list)i(rev\(list)e(L\))j
Fw(f)523 3313 y Fz(list)f(M)h(=)g(^.nil)g(;)523 3426
y(while)f(\(true\))g Fw(f)618 3539 y Fz(switch)g(\(L\))h
Fw(f)714 3652 y Fz(case)f(nil:)h(return)f(M;)714 3765
y(case)g(cons*\(h,t\):)809 3878 y(M)i(=)f(^.cons\(^\(h,M\)\);)809
3991 y(L)h(=)f(t;)618 4104 y Fw(g)523 4216 y(g)523 4329
y Fz(//)g(\(Dead)f(code\))523 4442 y(return)g(M;)427
4555 y Fw(g)1851 2481 y FB(De\014ne:)2033 2594 y(listF)38
b FF(=)25 b Fy(\025\013)p FF(:)p Fy(T)8 b(:\025\014)d
FF(:)p Fy(T)j(:)31 b FF([0:)p Fz(unit)p Fy(;)15 b FF(1:)p
Fw(h)p Fy(\013;)g(\014)5 b Fw(i)p FF(])2033 2707 y FB(list)34
b FF(=)25 b Fy(\025\013)p FF(:)p Fy(T)8 b(:)31 b(\026\014)5
b(:)p FB(listF)28 b Fy(\013)16 b(\014)2033 2820 y FB(listS)36
b FF(=)25 b Fy(\025\013)p FF(:)p Fy(T)8 b(:)31 b FB(listF)e
Fy(\013)15 b FF(\()p FB(list)25 b Fy(\013)p FF(\))1851
3046 y FB(r)-5 b(ev)35 b FF(=)25 b Fz(func)o FF(\()p
Fy(\013)p FF(:)p Fy(T)13 b FF(;)i([)p Fy(L)p FF(:)p FB(list)26
b Fy(\013)p FF(];)15 b FB(list)25 b Fy(\013)p FF(\))p
Fy(:)p FF(\()2033 3159 y Fz(enter)n FF(\()p Fy(M)5 b(;)15
b(h)p FF(\))p Fy(:)2215 3272 y Fz(let)29 b Fy(M)35 b
FF(=)25 b Fz(inj)2751 3296 y Fq(listS)19 b Fx(\013)2952
3272 y FF(\(0)p Fy(;)c(?)p FF(\))33 b Fz(in)2215 3384
y(let)c Fy(M)35 b FF(=)25 b Fz(roll)2798 3399 y Fq(list)18
b Fx(\013)2959 3384 y FF(@)p Fy(M)40 b Fz(in)2215 3497
y(goto)29 b FB(lo)-5 b(op)38 b Fy(;)2033 3610 y FB(lo)-5
b(op)33 b FF(=)25 b Fz(block)n FF(\()p Fw(\001)p FF(;)15
b Fw(\001)p FF(;)g([)p Fy(L)p FF(:)p FB(list)27 b Fy(\013;)15
b(M)10 b FF(:)p FB(list)25 b Fy(\013;)15 b(h)p FF(:)p
Fz(ns)q FF(]\))p Fy(:)2215 3723 y Fz(case)29 b(unroll)n
FF(@)p Fy(L)h Fz(of)g(inj)o FF(\(0)p Fy(;)15 b(L)p FF(\))27
b Fw(\))2396 3836 y Fz(return)i Fy(M)2215 3949 y Fz(else)2396
4062 y(let)h Fy(L)25 b FF(=)g Fz(outj)o FF(\()p Fy(L)p
FF(\))31 b Fz(in)2396 4175 y(let)f Fy(h)c FF(=)e Fy(\031)2795
4189 y Fv(0)2835 4175 y FF(\()p Fy(L)p FF(\))31 b Fz(in)2396
4288 y(let)f Fy(h)c FF(=)e Fw(h)p Fy(h;)15 b(M)10 b Fw(i)32
b Fz(in)2396 4401 y(let)e Fy(M)35 b FF(=)25 b Fz(inj)2932
4425 y Fq(listS)20 b Fx(\013)3134 4401 y FF(\(1)p Fy(;)15
b(h)p FF(\))33 b Fz(in)2396 4514 y(let)d Fy(M)35 b FF(=)25
b Fz(roll)2980 4529 y Fq(list)18 b Fx(\013)3140 4514
y FF(@)p Fy(M)41 b Fz(in)2396 4626 y(let)30 b Fy(L)25
b FF(=)g Fy(\031)2805 4640 y Fv(1)2859 4626 y Fy(L)31
b Fz(in)2396 4739 y(goto)f FB(lo)-5 b(op)38 b FF(\))564
4965 y(P)m(op)s(corn)1810 b(Lilt)1161 5253 y(Figure)31
b(12:)41 b(Lilt)31 b(Example:)41 b(List)31 b(Rev)m(ersal)1905
5589 y(19)p eop
%%Page: 20 22
20 21 bop 0 91 a FC(4)135 b(Resource-Bound)44 b(Certifying)j
(Compilation)0 298 y FA(4.1)112 b(Yield)38 b(Placemen)m(t)0
469 y FF(The)k(ma)5 b(jor)44 b(no)m(v)m(el)g(elemen)m(t)g(in)f
(compiling)h(Lilt)g(to)f(BT)-8 b(AL)g(T-R)44 b(is,)i(naturally)-8
b(,)48 b(the)43 b(placemen)m(t)h(of)f Fz(yield)0 582
y FF(instructions)36 b(so)h(that)h(the)e(t)m(yping)i(conditions)f
(regarding)g(the)f(virtual)h(clo)s(c)m(k)h(are)f(satis\014ed.)60
b(One)36 b(p)s(ossible)0 695 y(strategy)d(is)e(to)h(place)h(a)f
Fz(yield)e FF(at)i(the)f(b)s(eginning)g(of)h(ev)m(ery)g(basic)g(blo)s
(c)m(k)g(in)f(the)g(program;)h(this)f(idea,)i(while)0
808 y(sound,)h(is)g(not)h(v)m(ery)f(app)s(ealing)h(b)s(ecause)f(w)m(e)g
(exp)s(ect)h(that)g(yielding)g(is)f(v)m(ery)g(exp)s(ensiv)m(e.)53
b(W)-8 b(e)35 b(will)g(describ)s(e)0 921 y(a)c(n)m(um)m(b)s(er)e(of)i
(simple)g(yield)g(placemen)m(t)h(heuristics)f(in)f(this)h(section,)h
(in)m(tended)e(to)i(increase)f(the)g(actual)h(time)0
1034 y(b)s(et)m(w)m(een)37 b(yields)g(executed)g(b)m(y)g(programs)f(as)
h(m)m(uc)m(h)f(as)h(p)s(ossible)f(\(while)h(k)m(eeping)g(it)h(less)e
(than)h Fy(Y)20 b FF(\).)59 b(These)0 1147 y(direct)43
b(placemen)m(t)g(strategies,)48 b(ho)m(w)m(ev)m(er,)f(all)c(fall)g
(short)f(of)g(optimal)h(p)s(erformance)f(if)g Fy(Y)62
b FF(is)42 b(large)i(\(as)e(w)m(e)0 1260 y(exp)s(ect)35
b(it)h(will)f(b)s(e\).)54 b(Later)35 b(on)g(in)f(this)h(section,)i(w)m
(e)f(will)f(explain)g(ho)m(w)g(the)g(singleton)g(and)g(guarded)f(t)m
(yp)s(es)0 1372 y(of)j(T)-8 b(AL)g(T-R)37 b(ma)m(y)g(b)s(e)f(used)g(to)
i(implemen)m(t)f(dynamic)g(c)m(hec)m(ks)h(that)f(a)m(v)m(oid)h(the)f
(limitations)i(of)d(direct)i(yield)0 1485 y(placemen)m(t)k(strategies)g
(and)e(whic)m(h)g(\(w)m(e)h(conjecture\))g(will)g(greatly)h(reduce)e
(the)h(n)m(um)m(b)s(er)e(of)h(actual)i(yields)0 1598
y(p)s(erformed.)68 b(Ho)m(w)m(ev)m(er,)45 b(ev)m(en)c(these)f(c)m(hec)m
(ks)i(are)e(not)h(free,)i(so)d(w)m(e)g(w)m(ould)g(lik)m(e)i(to)e
(minimize)h(the)f(n)m(um)m(b)s(er)0 1711 y(of)35 b(them)f(that)h(are)g
(needed.)52 b(Placemen)m(t)36 b(of)f(c)m(hec)m(kp)s(oin)m(ts)h(is)e
(essen)m(tially)j(the)d(same)h(problem)f(as)g(placemen)m(t)0
1824 y(of)40 b Fz(yield)f FF(instructions,)k(but)d(the)g(t)m(yp)s(es)g
(in)m(v)m(olv)m(ed)i(are)f(more)f(complicated.)72 b(Therefore,)43
b(for)d(the)g(sak)m(e)i(of)0 1937 y(clarit)m(y)-8 b(,)32
b(w)m(e)e(will)g(structure)f(the)g(discussion)g(as)h(follo)m(ws:)41
b(\014rst,)29 b(w)m(e)h(will)g(explain)g(some)g(strategies)h(for)e
(placing)0 2050 y(yield)g(instructions)f(with)g(no)h(dynamic)f(c)m(hec)
m(ks;)j(then,)e(w)m(e)g(will)g(explain)f(ho)m(w)h(dynamic)f(c)m(hec)m
(king)j(is)d(p)s(ossible.)0 2163 y(The)36 b(translation)h(of)f(Lilt)h
(to)g(BT)-8 b(AL)g(T-R)37 b(w)m(e)g(giv)m(e)h(later)f(will)f(com)m
(bine)h(these)g(ideas,)h(using)e(the)g(placemen)m(t)0
2276 y(strategies)c(w)m(e)f(discuss)f(to)h(place)g(dynamic)f(c)m(hec)m
(kp)s(oin)m(ts)i(rather)e(than)h(actual)g Fz(yield)e
FF(instructions.)141 2389 y(Yield)36 b(placemen)m(t)h(in)d(straigh)m
(t-line)k(co)s(de)d(is)g(not)h(in)m(teresting:)52 b(one)35
b(simply)g(ensures)f(that)i(there)f(are)h(no)0 2502 y(more)j(than)f
Fy(Y)58 b FF(non-yielding)39 b(instructions)f(in)g(b)s(et)m(w)m(een)h
(an)m(y)g(t)m(w)m(o)g(consecutiv)m(e)i(yields.)64 b(The)38
b(c)m(hallenge)j(of)0 2614 y(yield)g(placemen)m(t)i(is)d(fo)s(cused)h
(around)f(instructions)g(that)i(p)s(erform)d(transfers)h(of)h(con)m
(trol.)74 b(If)41 b(the)g(virtual)0 2727 y(clo)s(c)m(k)34
b(at)f(the)g(p)s(oin)m(t)f(of)h(a)g(jump)e(is)h(less)h(than)f(the)h(v)
-5 b(alue)33 b(exp)s(ected)g(b)m(y)f(the)h(co)s(de)f(b)s(eing)g(jump)s
(ed)f(to,)j(a)f(yield)0 2840 y(is)e(necessary)h(b)s(efore)e(the)h
(jump;)f(on)h(the)h(other)f(hand,)f(if)h(the)g(virtual)h(clo)s(c)m(k)g
(b)s(efore)f(a)g(jump)f(is)h(greater)h(than)0 2953 y(required,)42
b(the)e(next)g(yield)h(will)f(happ)s(en)f(so)s(oner)h(than)f(necessary)
-8 b(.)71 b(There)40 b(are)g(essen)m(tially)i(four)d(di\013eren)m(t)0
3066 y(kinds)d(of)h(jumps)e(in)h(Lilt)i(programs)e(\(function)h(call,)j
Fz(return)n FF(,)f Fz(goto)c FF(and)i Fz(raise)n FF(\),)i(whic)m(h)e
(sub)s(divide)e(yield)0 3179 y(placemen)m(t)d(in)m(to)f(three)g
(subproblems.)39 b FB(L)-5 b(o)g(c)g(al)p FF(,)33 b(or)d
FB(intr)-5 b(a)7 b FF(pro)s(cedural)31 b(placemen)m(t)h(is)f(the)f
(problem)g(of)h(ensuring)0 3292 y(that)24 b Fz(goto)e
FF(expressions)h(ob)s(ey)g(the)g(virtual)h(clo)s(c)m(k)g(rules;)i
FB(glob)-5 b(al)p FF(,)26 b(or)d FB(inter)10 b FF(pro)s(cedural)23
b(placemen)m(t)i(is)e(concerned)0 3405 y(with)29 b(function)f(calls)j
(and)d(returns;)h(and)f(\014nally)h FB(exc)-5 b(eptional)40
b FF(placemen)m(t)31 b(deals)e(with)g(the)g(timing)h(prop)s(erties)0
3518 y(of)h(exception)g(handling.)40 b(W)-8 b(e)32 b(will)e(discuss)g
(eac)m(h)i(of)e(these)h(subproblems)d(of)j(yield)g(placemen)m(t)g(in)g
(turn.)0 3758 y FE(4.1.1)105 b(Lo)s(cal)36 b(Placemen)m(t)0
3930 y FF(The)27 b(problem)g(of)g(lo)s(cal,)j(or)d FB(intr)-5
b(a)7 b FF(pro)s(cedural,)29 b(yield)e(placemen)m(t)i(is)e(concerned)h
(with)f(determining)g(the)h(initial)0 4042 y(virtual)e(clo)s(c)m(k)h
(assumptions)d(for)i(all)g(of)f(the)h(ordinary)f(blo)s(c)m(ks)h(in)f(a)
h(Lilt)g(function)f(\(that)h(is,)h(those)f(that)g(are)g(not)0
4155 y(exception)k(handlers)f(and)f(are)i(not)f(the)h(en)m(try)f(blo)s
(c)m(k\),)i(and)e(the)g(placemen)m(t)i(of)e(yield)h(p)s(oin)m(ts)f
(consisten)m(t)h(with)0 4268 y(these)k(assumptions.)49
b(This)33 b(task)h(is)f(simpli\014ed)g(b)m(y)g(the)h(fact)g(that)g(the)
g(targets)h(of)e(all)i(lo)s(cal)f(jumps)e(\(that)j(is,)0
4381 y Fz(goto)27 b FF(expressions\))h(are)h(kno)m(wn,)f(so)g(an)g
(accurate)i(\015o)m(w)e(graph)g(for)g(the)g(ordinary)g(blo)s(c)m(ks)g
(of)g(the)h(function)f(can)0 4494 y(b)s(e)34 b(built.)52
b(Ev)m(en)34 b(so,)h FB(optimal)46 b FF(yield)35 b(placemen)m(t)g(is)f
(lik)m(ely)i(to)f(b)s(e)f(tric)m(ky)-8 b(.)53 b(F)-8
b(or)35 b(our)f(protot)m(yp)s(e)h(compiler,)g(w)m(e)0
4607 y(desire)e(a)h(metho)s(d)f(of)g(lo)s(cal)i(yield)e(placemen)m(t)i
(that)f(do)s(es)f(not)g(require)g(complicated)i(analysis)f(of)g(a)f
(function)0 4720 y(b)s(efore)39 b(co)s(de)h(generation.)71
b(W)-8 b(e)41 b(will)f(describ)s(e)f(three)h(simple)g(heuristics)g
(here;)45 b(after)40 b(discussing)f(dynamic)0 4833 y(c)m(hec)m(ks)28
b(w)m(e)g(will)f(b)s(e)f(able)i(to)f(form)m(ulate)h(a)f(fourth.)39
b(The)26 b(initial)j(v)m(ersion)e(of)g(our)f(compiler)i(will)f
(implemen)m(t)h(one)0 4946 y(or)i(t)m(w)m(o)i(of)f(these.)1905
5589 y(20)p eop
%%Page: 21 23
21 22 bop 1171 1258 a @beginspecial 0 @llx 0 @lly 187
@urx 151 @ury 1870 @rwi @setspecial
%%BeginDocument: flow-join.eps
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 187 151
%%Pages: 0
%%Creator: Sun Microsystems, Inc.
%%Title: none
%%CreationDate: none
%%LanguageLevel: 2
%%EndComments
%%BeginPreview: 192 151 1 151
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000001FFFFFFFFFFFFFE0000000000000000
%000000000000000001FFFFFFFFFFFFFE0000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800002060000020000000000000000
%000000000000000001800003060000020000000000000000
%000000000000000001800005020000020000000000000000
%000000000000000001800005020000020000000000000000
%000000000000000001800009820000020000000000000000
%00000000000000000180000F820000020000000000000000
%000000000000000001800000C20000020000000000000000
%000000000000000001800030C20000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001FFFFFFFFFFFFFE0000000000000000
%000000000000000000000000FE0000000000000000000000
%000000000000000000000000EF0000000000000000000000
%00000000000000000000000383C000000000000000000000
%00000000000000000000000E00F000000000000000000000
%000000000000000000000038003800000000000000000000
%0000000000000000000000F0001E00000000000000000000
%000000000000000000000380000380000000000000000000
%000000000000000000000F000001E0000000000000000000
%000000000000000000001C00000070000000000000000000
%00000000000000000000F00000001E000000000000000000
%00000000000000000001E000000007000000000000000000
%000000000000000000078000000001C00000000000000000
%0000000000000000001E0000000000700000000000000000
%0000000000000000003800000000001C0000000000000000
%000000000000000000F000000000000F0000000000000000
%00000000000000000380000000000003C000000000000000
%00000000000000000F00000000000001F000000000000000
%00000000000000001C000000000000007800000000000000
%0000000000000000F0000000000000001E00000000000000
%0000000000000001C0000000000000000700000000000000
%0000000000000007000000000000000001C0000000000000
%000000000000001C00000000000000000070000000000000
%00000000000001F00000000000000000001E000000000000
%00000000000003C000000000000000000007000000000000
%00000000000003C000000000000000000007800000000000
%000000FFFFFFFFFFFFFF0000000003FFFFFFFFFFFFFC0000
%000000C00000000000010000000003000000000000040000
%000000800000000000010000000002000000000000040000
%000000800000000000010000000002000000000000040000
%000000800000000000010000000002000000000000040000
%000000800000000000010000000002000000000000040000
%000000800000000000010000000002000000000000040000
%000000800000000000010000000002000000000000040000
%000000800000000000010000000002000000838000040000
%000000800000000000010000000002000000844000040000
%000000800000030000010000000002000001804000040000
%000000800001848000010000000002000001408000040000
%00000080000184400001000000000200000241C000040000
%000000800000C04000010000000002000007E04000040000
%000000800002C08000010000000002000004300000040000
%00000080000660000001000000000200000C300000040000
%000000800004220000010000000002000000000000040000
%000000800008322000010000000002000000000000040000
%00000080000877C000010000000002000000000000040000
%000000800000000000010000000002000000000000040000
%000000800000000000010000000002000000000000040000
%000000800000000000010000000003FFFFFFFFFFFFFC0000
%000000800000000000010000000003FFFFFFFFFFFFFC0000
%000000800000000000010000000000000000C00000000000
%000000800000000000010000000000000003800000000000
%00000080000000000001000000000000000E000000000000
%00000080000000000001000000000000001C000000000000
%000000FFFFFFFFFFFFFF0000000000000070000000000000
%0000000000001C00000000000000000001C0000000000000
%000000000000070000000000000000000380000000000000
%00000000000000E000000000000000000E00000000000000
%000000000000003000000000000000003800000000000000
%000000000000000C00000000000000007000000000000000
%00000000000000030000000000000001C000000000000000
%0000000000000000C0000000000000070000000000000000
%0000000000000000300000000000000E0000000000000000
%00000000000000000C000000000000380000000000000000
%000000000000000007000000000000700000000000000000
%000000000000000001C00000000001C00000000000000000
%000000000000000000380000000007000000000000000000
%0000000000000000000C000000000E000000000000000000
%000000000000000000030000000038000000000000000000
%00000000000000000000C0000000E0000000000000000000
%0000000000000000000030000001C0000000000000000000
%000000000000000000000C00000700000000000000000000
%000000000000000000000100001C00000000000000000000
%0000000000000000000000C0003800000000000000000000
%00000000000000000000003801E000000000000000000000
%00000000000000000000000F038000000000000000000000
%000000000000000000000003878000000000000000000000
%000000000000000000000007CC0000000000000000000000
%000000000000000001FFFFFFFFFFFFFE0000000000000000
%000000000000000001FFFFFFFFFFFFFE0000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000440000020000000000000000
%000000000000000001800000420000020000000000000000
%000000000000000001800000420000020000000000000000
%000000000000000001800000780000020000000000000000
%000000000000000001800000440000020000000000000000
%000000000000000001800000420000020000000000000000
%000000000000000001800000460000020000000000000000
%000000000000000001800000FC0000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001800000000000020000000000000000
%000000000000000001FFFFFFFFFFFFFE0000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000000000000
%%EndPreview
%%BeginProlog
%%BeginResource: SDRes
/b4_inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath
/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if
/bdef {bind def} bind def
/c {setgray} bdef
/l {neg lineto} bdef
/rl {neg rlineto} bdef
/cl {currentlinewidth currentdash currentlinecap 2 setlinecap} bdef
/lc {setlinecap} bdef
/lw {setlinewidth} bdef
/ld {setdash} bdef
/m {neg moveto} bdef
/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef
/r {rotate} bdef
/t {neg translate} bdef
/s {scale} bdef
/sw {show} bdef
/gs {gsave} bdef
/gr {grestore} bdef
/f {findfont dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def
currentdict end /NFont exch definefont pop /NFont findfont} bdef
/p {closepath} bdef
/sf {scalefont setfont} bdef
/ef {eofill}bdef
/pc {closepath stroke}bdef
/ps {stroke}bdef
/pum {matrix currentmatrix}bdef
/pom {setmatrix}bdef
/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef
%%EndResource
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
pum
0.02831 0.0283 s
0 -5334 t
/tm matrix currentmatrix def
gs
0 0 m 6603 0 l 6603 5333 l 0 5333 l 0 0 l eoclip newpath
0.000 c 3427 1506 m 2474 1506 l 2474 1506 l 2470 1506 l 2466 1505 l
2462 1503 l 2459 1501 l 2455 1499 l 2453 1495 l 2451 1492 l 2449 1488 l
2448 1481 l 2474 1481 l 2474 1455 l 3427 1455 l 3427 1481 l 3427 1506 l
p ef
2448 1481 m 2448 423 l 2448 423 l 2448 419 l 2449 415 l 2451 411 l
2453 408 l 2455 404 l 2459 402 l 2462 400 l 2466 398 l 2474 397 l
2474 423 l 2499 423 l 2499 1481 l 2474 1481 l 2448 1481 l p ef
2474 397 m 4380 397 l 4380 397 l 4383 397 l 4387 398 l 4391 400 l
4394 402 l 4398 404 l 4400 408 l 4402 411 l 4404 415 l 4405 423 l
4380 423 l 4380 448 l 2474 448 l 2474 423 l 2474 397 l p ef
4405 423 m 4405 1481 l 4405 1481 l 4405 1484 l 4404 1488 l 4402 1492 l
4400 1495 l 4398 1499 l 4394 1501 l 4391 1503 l 4387 1505 l 4380 1506 l
4380 1481 l 4354 1481 l 4354 423 l 4380 423 l 4405 423 l p ef
4380 1481 m 4380 1506 l 3427 1506 l 3427 1481 l 3427 1455 l 4380 1455 l
4380 1481 l p ef
1798 3399 m 845 3399 l 845 3399 l 841 3399 l 837 3398 l 833 3396 l
830 3394 l 826 3392 l 824 3388 l 822 3385 l 820 3381 l 819 3374 l
845 3374 l 845 3348 l 1798 3348 l 1798 3374 l 1798 3399 l p ef
819 3374 m 819 2409 l 819 2409 l 819 2405 l 820 2401 l 822 2397 l
824 2394 l 826 2390 l 830 2388 l 833 2386 l 837 2384 l 845 2383 l
845 2409 l 870 2409 l 870 3374 l 845 3374 l 819 3374 l p ef
845 2383 m 2751 2383 l 2751 2383 l 2754 2383 l 2758 2384 l 2762 2386 l
2765 2388 l 2769 2390 l 2771 2394 l 2773 2397 l 2775 2401 l 2776 2409 l
2751 2409 l 2751 2434 l 845 2434 l 845 2409 l 845 2383 l p ef
2776 2409 m 2776 3374 l 2776 3374 l 2776 3377 l 2775 3381 l 2773 3385 l
2771 3388 l 2769 3392 l 2765 3394 l 2762 3396 l 2758 3398 l 2751 3399 l
2751 3374 l 2725 3374 l 2725 2409 l 2751 2409 l 2776 2409 l p ef
2751 3374 m 2751 3399 l 1798 3399 l 1798 3374 l 1798 3348 l 2751 3348 l
2751 3374 l p ef
5045 3199 m 4092 3199 l 4092 3199 l 4088 3199 l 4084 3198 l 4080 3196 l
4077 3194 l 4073 3192 l 4071 3188 l 4069 3185 l 4067 3181 l 4066 3174 l
4092 3174 l 4092 3148 l 5045 3148 l 5045 3174 l 5045 3199 l p ef
4066 3174 m 4066 2409 l 4066 2409 l 4066 2405 l 4067 2401 l 4069 2397 l
4071 2394 l 4073 2390 l 4077 2388 l 4080 2386 l 4084 2384 l 4092 2383 l
4092 2409 l 4117 2409 l 4117 3174 l 4092 3174 l 4066 3174 l p ef
4092 2383 m 5998 2383 l 5998 2383 l 6001 2383 l 6005 2384 l 6009 2386 l
6012 2388 l 6016 2390 l 6018 2394 l 6020 2397 l 6022 2401 l 6023 2409 l
5998 2409 l 5998 2434 l 4092 2434 l 4092 2409 l 4092 2383 l p ef
6023 2409 m 6023 3174 l 6023 3174 l 6023 3177 l 6022 3181 l 6020 3185 l
6018 3188 l 6016 3192 l 6012 3194 l 6009 3196 l 6005 3198 l 5998 3199 l
5998 3174 l 5972 3174 l 5972 2409 l 5998 2409 l 6023 2409 l p ef
5998 3174 m 5998 3199 l 5045 3199 l 5045 3174 l 5045 3148 l 5998 3148 l
5998 3174 l p ef
3427 5105 m 2474 5105 l 2474 5105 l 2470 5105 l 2466 5104 l 2462 5102 l
2459 5100 l 2455 5098 l 2453 5094 l 2451 5091 l 2449 5087 l 2448 5080 l
2474 5080 l 2474 5054 l 3427 5054 l 3427 5080 l 3427 5105 l p ef
2448 5080 m 2448 4233 l 2448 4233 l 2448 4229 l 2449 4225 l 2451 4221 l
2453 4218 l 2455 4214 l 2459 4212 l 2462 4210 l 2466 4208 l 2474 4207 l
2474 4233 l 2499 4233 l 2499 5080 l 2474 5080 l 2448 5080 l p ef
2474 4207 m 4380 4207 l 4380 4207 l 4383 4207 l 4387 4208 l 4391 4210 l
4394 4212 l 4398 4214 l 4400 4218 l 4402 4221 l 4404 4225 l 4405 4233 l
4380 4233 l 4380 4258 l 2474 4258 l 2474 4233 l 2474 4207 l p ef
4405 4233 m 4405 5080 l 4405 5080 l 4405 5083 l 4404 5087 l 4402 5091 l
4400 5094 l 4398 5098 l 4394 5100 l 4391 5102 l 4387 5104 l 4380 5105 l
4380 5080 l 4354 5080 l 4354 4233 l 4380 4233 l 4405 4233 l p ef
4380 5080 m 4380 5105 l 3427 5105 l 3427 5080 l 3427 5054 l 4380 5054 l
4380 5080 l p ef
1798 2409 m 1994 2369 l 1932 2259 l 1798 2409 l p ef
3439 1503 m 1943 2355 l 1917 2311 l 3414 1458 l 3439 1503 l p ef
3423 4212 m 3282 4068 l 3224 4181 l 3423 4212 l p ef
1809 3351 m 3299 4119 l 3275 4164 l 1786 3396 l 1809 3351 l p ef
3423 4212 m 3617 4162 l 3549 4055 l 3423 4212 l p ef
5058 3195 m 3565 4151 l 3537 4108 l 5031 3152 l 5058 3195 l p ef
5045 2409 m 4911 2259 l 4848 2369 l 5045 2409 l p ef
3439 1458 m 4925 2311 l 4900 2355 l 3414 1503 l 3439 1458 l p ef
gs
pum
3101 725 t
161 106 m 169 106 l 175 111 l 232 238 l 298 378 l 303 386 l 311 394 l
320 396 l 328 396 l 330 399 l 330 404 l 328 407 l 210 407 l 208 404 l
208 399 l 210 396 l 227 396 l 235 394 l 240 389 l 240 373 l 238 363 l
219 321 l 216 313 l 213 311 l 93 311 l 90 313 l 90 319 l 68 368 l
68 386 l 76 394 l 82 396 l 96 396 l 98 399 l 98 404 l 96 407 l 8 407 l
5 404 l 5 399 l 8 396 l 16 396 l 22 394 l 33 384 l 85 272 l 153 119 l
158 109 l p
153 174 m 156 176 l 205 285 l 205 290 l 101 290 l p ef
pom
pum
3406 725 t
126 106 m 131 106 l 134 109 l 134 384 l 137 389 l 139 391 l 144 394 l
155 396 l 173 396 l 176 399 l 176 404 l 173 407 l 52 407 l 50 404 l
50 399 l 52 396 l 73 396 l 81 394 l 89 386 l 92 378 l 92 153 l 89 148 l
87 145 l 81 142 l 79 142 l 76 145 l 58 150 l 50 153 l 47 150 l 47 148 l
52 142 l p ef
pom
gr
gs
pum
1493 2656 t
161 106 m 169 106 l 175 111 l 232 238 l 298 378 l 303 386 l 311 394 l
320 396 l 328 396 l 330 399 l 330 404 l 328 407 l 210 407 l 208 404 l
208 399 l 210 396 l 227 396 l 235 394 l 240 389 l 240 373 l 238 363 l
219 321 l 216 313 l 213 311 l 93 311 l 90 313 l 90 319 l 68 368 l
68 386 l 76 394 l 82 396 l 96 396 l 98 399 l 98 404 l 96 407 l 8 407 l
5 404 l 5 399 l 8 396 l 16 396 l 22 394 l 33 384 l 85 272 l 153 119 l
158 109 l p
153 174 m 156 176 l 205 285 l 205 290 l 101 290 l p ef
pom
pum
1798 2656 t
87 106 m 126 106 l 152 117 l 160 122 l 179 140 l 192 171 l 192 199 l
184 225 l 176 241 l 160 264 l 108 321 l 58 371 l 176 371 l 184 368 l
200 352 l 200 350 l 207 342 l 210 342 l 213 345 l 213 350 l 210 355 l
192 404 l 189 407 l 13 407 l 11 404 l 11 402 l 16 394 l 97 311 l
118 285 l 139 246 l 150 215 l 150 189 l 147 179 l 139 163 l 129 153 l
113 145 l 105 142 l 68 142 l 60 145 l 52 150 l 39 163 l 39 166 l
37 171 l 32 176 l 26 187 l 26 192 l 21 197 l 16 197 l 13 194 l 13 184 l
18 166 l 26 150 l 32 142 l 52 122 l 60 117 l 71 111 l p ef
pom
gr
gs
pum
4823 2577 t
161 106 m 169 106 l 175 111 l 232 238 l 298 378 l 303 386 l 311 394 l
320 396 l 328 396 l 330 399 l 330 404 l 328 407 l 210 407 l 208 404 l
208 399 l 210 396 l 227 396 l 235 394 l 240 389 l 240 373 l 238 363 l
219 321 l 216 313 l 213 311 l 93 311 l 90 313 l 90 319 l 68 368 l
68 386 l 76 394 l 82 396 l 96 396 l 98 399 l 98 404 l 96 407 l 8 407 l
5 404 l 5 399 l 8 396 l 16 396 l 22 394 l 33 384 l 85 272 l 153 119 l
158 109 l p
153 174 m 156 176 l 205 285 l 205 290 l 101 290 l p ef
pom
pum
5128 2577 t
87 106 m 129 106 l 152 117 l 171 135 l 176 145 l 179 156 l 179 179 l
171 197 l 165 205 l 155 215 l 142 225 l 139 225 l 137 228 l 142 228 l
152 233 l 160 238 l 181 259 l 194 293 l 194 324 l 192 337 l 189 345 l
181 360 l 176 368 l 155 389 l 147 394 l 131 402 l 108 409 l 95 412 l
47 412 l 24 402 l 21 399 l 21 396 l 18 391 l 16 389 l 16 384 l 18 378 l
26 371 l 45 371 l 66 381 l 71 386 l 81 391 l 89 394 l 116 394 l
118 391 l 126 389 l 129 389 l 137 384 l 147 373 l 152 365 l 160 342 l
160 316 l 155 301 l 152 295 l 147 288 l 131 272 l 108 262 l 76 262 l
68 259 l 66 256 l 66 254 l 68 251 l 71 251 l 87 246 l 108 236 l
118 228 l 129 218 l 134 210 l 142 189 l 142 168 l 139 161 l 137 156 l
121 140 l 116 137 l 108 135 l 76 135 l 58 142 l 34 166 l 32 171 l
32 174 l 24 181 l 18 176 l 18 174 l 32 145 l 58 119 l p ef
pom
gr
gs
pum
3304 4482 t
8 111 m 166 111 l 223 127 l 231 132 l 248 148 l 256 163 l 259 174 l
259 202 l 256 205 l 253 215 l 253 220 l 248 228 l 240 236 l 231 241 l
221 246 l 212 249 l 207 249 l 204 251 l 245 267 l 267 288 l 278 313 l
278 337 l 272 355 l 267 365 l 259 376 l 253 381 l 234 394 l 185 407 l
8 407 l 5 404 l 5 399 l 8 396 l 22 396 l 35 394 l 41 391 l 46 386 l
49 381 l 52 373 l 52 142 l 49 135 l 41 127 l 35 124 l 22 122 l 8 122 l
5 119 l 5 114 l p
106 130 m 150 130 l 188 142 l 201 156 l 207 166 l 210 176 l 210 202 l
201 220 l 191 231 l 166 241 l 101 241 l 101 135 l p
101 262 m 136 262 l 161 264 l 196 277 l 212 293 l 221 313 l 221 339 l
218 350 l 212 360 l 196 376 l 185 381 l 169 386 l 152 389 l 114 389 l
106 386 l 103 384 l 101 378 l p ef
pom
pum
3304 4482 t
8 111 m 166 111 l 223 127 l 231 132 l 248 148 l 256 163 l 259 174 l
259 202 l 256 205 l 253 215 l 253 220 l 248 228 l 240 236 l 231 241 l
221 246 l 212 249 l 207 249 l 204 251 l 245 267 l 267 288 l 278 313 l
278 337 l 272 355 l 267 365 l 259 376 l 253 381 l 234 394 l 185 407 l
8 407 l 5 404 l 5 399 l 8 396 l 22 396 l 35 394 l 41 391 l 46 386 l
49 381 l 52 373 l 52 142 l 49 135 l 41 127 l 35 124 l 22 122 l 8 122 l
5 119 l 5 114 l p
106 130 m 150 130 l 188 142 l 201 156 l 207 166 l 210 176 l 210 202 l
201 220 l 191 231 l 166 241 l 101 241 l 101 135 l p
101 262 m 136 262 l 161 264 l 196 277 l 212 293 l 221 313 l 221 339 l
218 350 l 212 360 l 196 376 l 185 381 l 169 386 l 152 389 l 114 389 l
106 386 l 103 384 l 101 378 l p ef
pom
gr
gr
0 5334 t
pom
count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore
%%PageTrailer
%%Trailer
%%EOF
%%EndDocument
@endspecial 296 x FF(Figure)31 b(13:)41 b(A)31 b(Flo)m(w)g(Graph)f
(With)h(a)g(Join)0 1826 y FE(Yield-on-Jump)91 b FF(The)24
b(most)g(na)-10 b(\177)-35 b(\020v)m(e)25 b(lo)s(cal)g(yield)f
(placemen)m(t)h(strategy)-8 b(,)27 b(but)c(the)h(simplest)g(to)h
(implemen)m(t,)h(is)0 1939 y(to)k(assume)e(that)i(ev)m(ery)f(lo)s(cal)i
(jump)c(will)i(in)m(v)m(olv)m(e)i(a)f(yield.)40 b(This)28
b(can)h(b)s(e)g(accomplished)g(either)h(b)m(y)e(assuming)0
2052 y(a)34 b(virtual)g(clo)s(c)m(k)i(of)e(zero)g(at)h(the)f(start)g
(of)g(ev)m(ery)h(blo)s(c)m(k,)g(or)f(b)m(y)f(assuming)h(a)g(virtual)g
(clo)s(c)m(k)h(of)f Fy(Y)43 b Fw(\000)22 b FF(1)34 b(at)h(the)0
2165 y(start)30 b(of)h(ev)m(ery)f(blo)s(c)m(k.)41 b(In)29
b(the)i(former)e(case,)i(the)f(\014rst)g(instruction)f(in)h(ev)m(ery)h
(blo)s(c)m(k)f(m)m(ust)g(b)s(e)f(a)i(yield;)f(in)g(the)0
2278 y(latter,)i(the)f(last)g(instruction)f(b)s(efore)g(ev)m(ery)h
(jump)e(m)m(ust)h(b)s(e)g(a)h(yield.)141 2391 y(Because)i(these)f
FB(yield-on-jump)37 b FF(strategies)d(treat)e(ev)m(ery)g(blo)s(c)m(k)g
(and)f(ev)m(ery)h(jump)e(the)h(same,)h(making)g(no)0
2504 y(use)k(of)g(one's)g(static)h(kno)m(wledge)g(of)f(eac)m(h)h
(jump's)e(target,)k(it)d(is)g(easy)g(to)h(see)f(that)h(they)f(place)h
(more)f(yields)0 2617 y(than)31 b(necessary)-8 b(.)43
b(Figure)32 b(13,)g(for)f(example,)h(sho)m(ws)f(a)g(\015o)m(w)g(graph)g
(corresop)s(onding)f(to)i(t)m(w)m(o)g(Lilt)g(blo)s(c)m(ks)g(and)0
2729 y(con)m(taining)g(one)e(join)g(p)s(oin)m(t.)40 b(\(In)30
b(Lilt,)h(the)f(extended)g(basic)h(blo)s(c)m(k)f(consisting)h(of)f
(basic)h(blo)s(c)m(ks)f(A1,)h(A2)g(and)0 2842 y(A3)d(is)g(though)m(t)g
(of)g(as)f(a)h(single)g(blo)s(c)m(k.\))41 b(If)27 b(all)i(of)e(these)h
(basic)g(blo)s(c)m(ks)g(are)g(short,)g(and)f(none)h(of)f(them)h(con)m
(tains)0 2955 y(an)m(y)f(function)g(calls)h(\(so)g(that)f(the)g(global)
h(yield)g(placemen)m(t)g(strategy)g(do)s(es)f(not)g(a\013ect)i(the)e
(example\),)i(then)d(it)0 3068 y(ma)m(y)j(b)s(e)f(unnecessary)g(to)i
(yield)f(at)g(the)g(start)g(of)g(blo)s(c)m(k)g(B.)h(In)e(general,)i
(yield-on-jump)e(app)s(ears)g(to)h(b)s(e)f(badly)0 3181
y(b)s(eha)m(v)m(ed)35 b(for)g(acyclic)i(Lilt)e(functions)f(that)i(con)m
(tain)g(sev)m(eral)g(blo)s(c)m(ks.)55 b(The)34 b(next)h(t)m(w)m(o)h
(candidate)g(strategies)0 3294 y(attempt)29 b(to)g(do)f(b)s(etter)g(on)
g(acyclic)i(functions)d(b)m(y)h(propagating)h(appro)m(ximate)g(timing)g
(information)f(b)s(et)m(w)m(een)0 3407 y(blo)s(c)m(ks.)0
3646 y FE(F)-9 b(orw)m(ard)41 b(Propagation)92 b FF(F)-8
b(or)36 b(the)h(other)f(t)m(w)m(o)h(lo)s(cal)g(yield)f(placemen)m(t)h
(heuristics)f(discussed)f(here,)i(it)g(is)0 3759 y(necessary)42
b(to)g(distinguish)e(b)s(et)m(w)m(een)i FB(forwar)-5
b(d)53 b FF(and)41 b FB(b)-5 b(ackwar)g(d)53 b FF(jumps.)72
b(Sp)s(eci\014cally)-8 b(,)45 b(w)m(e)c(assume)g(a)h(total)0
3872 y(ordering)31 b(on)g(the)h(blo)s(c)m(ks)g(in)f(a)h(function;)g(a)g
(jump)e(whose)h(target)i(is)e(a)h FB(later)42 b FF(blo)s(c)m(k)32
b(than)f(the)h(one)g(where)f(the)0 3985 y(jump)h(app)s(ears)i(is)f
(called)j(a)e(forw)m(ard)f(jump,)h(and)f(one)h(whose)g(target)h(is)f
(an)g(earlier)h(blo)s(c)m(k,)g(or)f(the)g(v)m(ery)h(one)0
4098 y(in)d(whic)m(h)f(the)i(jump)d(o)s(ccurs,)i(is)g(called)i(a)e(bac)
m(kw)m(ard)g(jump.)44 b(Note)34 b(that)e(if)g(the)g(\015o)m(w)g(graph)g
(of)g(a)g(function)g(is)0 4211 y(acyclic,)38 b(then)c(it)h(is)g(p)s
(ossible)f(to)i(arrange)f(the)f(ordering)h(suc)m(h)f(that)h(all)h
(jumps)d(are)i(forw)m(ard;)h(in)e(a)h(function)0 4324
y(con)m(taining)f(lo)s(ops,)g(ev)m(ery)f(lo)s(op)g(necessarily)h(con)m
(tains)g(at)f(least)h(one)f(bac)m(kw)m(ard)g(jump.)46
b(Lo)s(ops)33 b(are)g(a)g(source)0 4437 y(of)k(di\016cult)m(y)h(for)f
(lo)s(cal)h(yield)f(placemen)m(t,)k(since)c(our)g(system)g
(\(probably\))g(lac)m(ks)h(the)f(expressiv)m(e)h(p)s(o)m(w)m(er)f(to)0
4550 y(a)m(v)m(oid)30 b(yielding)f(at)g(least)h(once)f(p)s(er)f
(iteration,)i(so)f(w)m(e)g(exp)s(ect)g(that)g(our)f(heuristics)h(will)f
(giv)m(e)i(the)f(b)s(est)f(results)0 4663 y(when)34 b(the)h(ordering)f
(on)h(blo)s(c)m(ks)g(minimizes)g(the)g(n)m(um)m(b)s(er)f(of)g(bac)m(kw)
m(ard)i(jumps.)52 b(Rather)35 b(than)f(attempt)i(to)0
4775 y(\014nd)27 b(suc)m(h)i(an)g(ordering,)g(ho)m(w)m(ev)m(er,)i(w)m
(e)f(will)f(simply)g(use)f(the)h(order)g(in)g(whic)m(h)f(the)i(blo)s(c)
m(ks)f(app)s(ear)f(in)h(the)g(Lilt)0 4888 y(represen)m(tation)i(of)g
(the)g(function.)141 5001 y(The)39 b(\014rst)g(non)m(trivial)i(lo)s
(cal)g(yield)f(placemen)m(t)h(heuristic)f(is)g(based)f(on)h(the)g(op)s
(eration)g(of)g(propagating)0 5114 y(clo)s(c)m(k)45 b(information)f
(forw)m(ard)e(through)h(a)h(blo)s(c)m(k)g(as)f(co)s(de)h(for)f(the)h
(blo)s(c)m(k)g(is)f(generated.)81 b(The)43 b(pro)s(cess)g(is)0
5227 y(basically)35 b(in)m(tuitiv)m(e:)50 b(starting)35
b(with)f(an)g(initial)h(assumption)e(ab)s(out)h(the)g(virtual)h(clo)s
(c)m(k)g(at)g(the)f(start)h(of)f(the)0 5340 y(blo)s(c)m(k,)40
b(generate)f(the)f(instructions)f(for)h(the)f(blo)s(c)m(k,)j(trac)m
(king)f(the)f(decremen)m(ts)g(to)h(the)e(virtual)h(clo)s(c)m(k)h(with)
1905 5589 y(21)p eop
%%Page: 22 24
22 23 bop 0 91 a FF(eac)m(h)30 b(instruction.)40 b(\(The)28
b(global)i(yield)e(placemen)m(t)i(strategy)g(will)f(determine)f(the)h
(e\013ect)h(function)e(calls)i(ha)m(v)m(e)0 204 y(on)37
b(the)f(clo)s(c)m(k.\))62 b(If)36 b(the)h(clo)s(c)m(k)h(ev)m(er)f(reac)
m(hes)h(zero)f(\(or)g(b)s(ecomes)g(incon)m(v)m(enien)m(tly)i(small)e
(for)f(an)m(y)h(op)s(eration)0 317 y(that)29 b(m)m(ust)f(b)s(e)g
(compiled\),)h(insert)g(a)f Fz(yield)f FF(and)h(reset)h(it)g(to)g
Fy(Y)20 b FF(.)39 b(A)m(t)30 b(eac)m(h)f(leaf)g(of)g(the)f(extended)g
(basic)h(blo)s(c)m(k,)0 430 y(one)35 b(is)f(faced)g(with)g(either)h(a)g
Fz(return)n FF(,)g(a)g Fz(raise)e FF(or)h(a)h Fz(goto)e
FF(and)g(a)i(certain)g(predicted)f(v)-5 b(alue)35 b(on)f(the)g(clo)s(c)
m(k.)0 543 y(In)h(eac)m(h)h(of)g(these)g(cases)g(it)g(ma)m(y)h(or)e(ma)
m(y)h(not)g(b)s(e)f(necessary)h(to)g(yield)g(b)s(efore)f(the)g
(transfer)g(of)h(con)m(trol.)58 b(In)0 656 y(the)28 b(case)i(of)e
Fz(return)f FF(and)g Fz(raise)o FF(,)i(the)f(decision)h(is)f(made)h
(based)f(on)g(the)g(global)i(and)d(exceptional)j(placemen)m(t)0
769 y(strategies)i(in)e(use,)h(resp)s(ectiv)m(ely)-8
b(.)42 b(It)31 b(therefore)f(remains)h(only)f(to)h(sho)m(w)f(ho)m(w)h
(to)g(handle)f Fz(goto)o FF(.)141 882 y(The)i FB(forwar)-5
b(d-pr)g(op)g(agation)45 b FF(metho)s(d)32 b(generates)h(co)s(de)g(for)
f(a)h(function)f(as)g(follo)m(ws.)48 b(Compile)32 b(the)h(blo)s(c)m(ks)
0 995 y(in)g(order,)g(starting)h(with)f(the)g(en)m(try)g(blo)s(c)m(k)h
(of)f(the)g(function.)49 b(The)33 b(initial)h(condition)g(of)f(the)g
(en)m(try)g(blo)s(c)m(k)h(is)0 1108 y(determined)27 b(b)m(y)h(the)g
(global)h(placemen)m(t)g(strategy;)h(the)e(initial)h(condition)f(of)g
(a)g(handler)f(blo)s(c)m(k)i(is)e(determined)0 1220 y(b)m(y)36
b(the)g(exceptional)i(placemen)m(t)f(strategy)-8 b(.)60
b(F)-8 b(or)36 b(ordinary)f(blo)s(c)m(ks,)j(note)f(that)g(b)m(y)e(the)i
(time)f(w)m(e)h(compile)g(a)0 1333 y(blo)s(c)m(k)e(\(lab)s(eled)g(b)m
(y\))f Fy(`)p FF(,)i(all)f(forw)m(ard)f(jumps)e(to)j
Fy(`)f FF(ha)m(v)m(e)i(already)f(b)s(een)e(compiled.)53
b(Therefore,)36 b(these)f(blo)s(c)m(ks)0 1446 y(ma)m(y)c(b)s(e)f
(handled)f(using)h(three)h(rules:)136 1607 y Fw(\017)46
b FF(Do)38 b(not)e(yield)h(b)s(efore)g(a)f(forw)m(ard)g(jump,)h(unless)
f(a)h(yield)g(is)g(necessary)g(to)g(accomo)s(date)i(the)d
Fz(jmp)g FF(in-)227 1720 y(struction)31 b(itself.)136
1897 y Fw(\017)46 b FF(The)26 b(initial)i(condition)g(for)e(eac)m(h)i
(ordinary)e(blo)s(c)m(k)h Fy(`)g FF(is)f(the)h(minim)m(um)f(virtual)h
(clo)s(c)m(k)h(v)-5 b(alue)27 b(seen)g(at)h(an)m(y)227
2010 y(forw)m(ard)i(jump)f(to)i Fy(`)p FF(,)g(adjusted)e(to)i(accoun)m
(t)h(for)e(the)h(jump)e(instruction.)136 2187 y Fw(\017)46
b FF(F)-8 b(or)28 b(bac)m(kw)m(ard)g(jumps,)f(the)g(target)i(blo)s(c)m
(k)f(has)f(already)h(b)s(een)e(compiled;)j(determine)f(whether)f(to)h
(yield)227 2300 y(b)s(efore)i(jumping)f(based)h(on)h(the)f(target)i
(blo)s(c)m(k's)f(initial)h(condition.)141 2461 y(This)d(approac)m(h)h
(has)f(the)h(adv)-5 b(an)m(tage)31 b(that,)g(although)f(ev)m(ery)g(lo)s
(op)g(needs)f(at)i(least)f(one)g(yield,)h(there)e(ma)m(y)0
2574 y(not)35 b(need)g(to)h(b)s(e)f(a)h(yield)f(at)h(ev)m(ery)g(bac)m
(kw)m(ard)g(edge)g(if)f(the)h(initial)g(assumption)f(at)h(the)f(top)h
(of)f(the)h(lo)s(op)f(is)0 2687 y(small)27 b(enough.)39
b(It)27 b(also)g(ma)m(y)g(b)s(e)f(more)g(algorithmically)j(con)m(v)m
(enien)m(t)g(to)e(use)f(this)g(heuristic,)i(whic)m(h)e(pro)s(cesses)0
2800 y(blo)s(c)m(ks)31 b(in)f(a)h(forw)m(ard)e(direction,)j(than)e(the)
g(next)h(one)g(in)f(whic)m(h)g(blo)s(c)m(ks)h(are)f(scanned)g(bac)m(kw)
m(ards.)0 3035 y FE(Bac)m(kw)m(ard)42 b(Propagation)92
b FF(The)36 b(forw)m(ard)g(propagation)h(metho)s(d)f(started)h(with)f
(an)g(initial)h(assumption)0 3148 y(ab)s(out)c(eac)m(h)i(blo)s(c)m(k)f
(and)f(determined)g(what)g(the)h(blo)s(c)m(k)g(could)g(guaran)m(tee)h
(at)f(eac)m(h)h(leaf.)51 b(It)33 b(is)h(also)g(p)s(ossible)0
3260 y(to)d(place)h(yields)f(b)m(y)g(starting)g(with)f(the)h
FB(r)-5 b(e)g(quir)g(ement)41 b FF(at)31 b(eac)m(h)h(leaf)g(of)e(a)h
(blo)s(c)m(k,)h(and)e(propagating)i FB(b)-5 b(ackwar)g(d)0
3373 y FF(to)33 b(determine)f(the)g(requiremen)m(t)g(at)g(the)g(blo)s
(c)m(k's)h(b)s(eginning.)44 b(T)-8 b(o)32 b(do)g(this,)g(the)g
(instructions)g(for)g(eac)m(h)h(basic)0 3486 y(blo)s(c)m(k)28
b(m)m(ust)g(b)s(e)f(generated)i(in)e(rev)m(erse)i(order,)f(incremen)m
(ting)g(the)g(requiremen)m(t)g(\(rather)g(than)g(decremen)m(ting)0
3599 y(an)36 b(assumption\))f(with)h(eac)m(h)h(instruction)f(un)m(til)g
(the)g(v)-5 b(alue)36 b(reac)m(hes)h Fy(Y)20 b FF(.)57
b(When)36 b(this)g(happ)s(ens,)f(a)h Fz(yield)f FF(is)0
3712 y(inserted)27 b(and)f(the)h(requiremen)m(t)g(is)g(reset)h(to)f
(zero.)41 b(Conditional)27 b(expressions)g(within)f(extended)h(basic)h
(blo)s(c)m(ks)0 3825 y(require)22 b(conserv)-5 b(ativ)m(e)25
b(appro)m(ximation:)38 b(the)22 b(requiremen)m(t)h(b)s(efore)f(an)h
Fz(if)f FF(or)g(a)h Fz(case)f FF(instruction)g(is)h(computed)0
3938 y(based)30 b(on)g(the)h(maxim)m(um)f(of)h(the)f(requiremen)m(ts)h
(of)f(the)h(branc)m(hes.)141 4051 y(T)-8 b(o)29 b(generate)h(co)s(de)f
(for)g(a)g(function)f(using)g(the)h(bac)m(kw)m(ard)g(propagation)h
(metho)s(d,)f(compile)g(the)g(blo)s(c)m(ks)g(in)0 4164
y(rev)m(erse)j(order.)44 b(F)-8 b(or)32 b(eac)m(h)g(leaf)h(of)e(eac)m
(h)i(blo)s(c)m(k,)f(determine)g(the)f FB(\014nal)k(r)-5
b(e)g(quir)g(ement)9 b FF(:)44 b(for)31 b Fz(return)f
FF(and)g Fz(raise)0 4277 y FF(this)f(comes)g(from)g(the)g(global)h(and)
e(exceptional)j(placemen)m(t)f(p)s(olicies,)g(as)f(b)s(efore.)40
b(F)-8 b(or)30 b(jumps,)d(there)i(are)h(t)m(w)m(o)0 4390
y(cases.)136 4550 y Fw(\017)46 b FF(If)33 b(the)h(jump)e(is)h(forw)m
(ard,)h(then)g(its)f(target)i(has)f(already)g(b)s(een)f(compiled.)50
b(The)33 b(\014nal)g(requiremen)m(t)h(of)227 4663 y(the)29
b(curren)m(t)g(basic)g(blo)s(c)m(k)g(is)g(then)g(the)g(target)h(blo)s
(c)m(k's)g(initial)g(requiremen)m(t,)f(plus)f(the)h(cost)h(of)f(the)g
Fz(jmp)227 4776 y FF(instruction.)41 b(If)30 b(this)g(is)h(greater)g
(than)f Fy(Y)20 b FF(,)31 b(insert)f(a)h(yield)g(b)s(efore)f(the)g
(jump.)136 4953 y Fw(\017)46 b FF(If)30 b(the)h(jump)e(is)h(bac)m(kw)m
(ard,)h(then)f(insert)g(a)h(yield)g(and)f(assume)g(a)h(\014nal)f
(requiremen)m(t)g(of)h(zero.)0 5114 y(Since)26 b(the)f(initial)i
(conditions)f(of)g(the)g(exception)g(handler)f(blo)s(c)m(ks)h(and)f(of)
h(the)f(function's)h(en)m(try)g(blo)s(c)m(k)g(are)g(not)0
5227 y(determined)35 b(b)m(y)g(lo)s(cal)h(placemen)m(t,)i(it)e(ma)m(y)g
(b)s(e)e(necessary)i(to)f(insert)h(a)f Fz(yield)f FF(at)i(the)f(b)s
(eginnings)f(of)h(these)0 5340 y(blo)s(c)m(ks)c(if)f(the)h(computed)f
(initial)h(requiremen)m(t)g(exceeds)g(this)g(initial)g(condition.)1905
5589 y(22)p eop
%%Page: 23 25
23 24 bop 141 91 a FF(The)40 b(bac)m(kw)m(ard)g(propagation)h(metho)s
(d)e(has)h(the)g(adv)-5 b(an)m(tage)42 b(that)f(it)g(do)s(es)e(not)h
(require)g(trac)m(king)i(an)m(y)0 204 y(additional)32
b(information,)f(whereas)f(for)h(forw)m(ard)f(propagation)h(one)g(has)g
(to)g(remem)m(b)s(er)f(the)h(minim)m(um)f(clo)s(c)m(k)0
317 y(v)-5 b(alue)30 b(asso)s(ciated)h(with)e(eac)m(h)i(forw)m(ard)e
(jump)f(un)m(til)i(the)g(target)h(blo)s(c)m(k)f(is)g(compiled.)41
b(Ho)m(w)m(ev)m(er,)32 b(the)e(assump-)0 430 y(tion)37
b(that)g(ev)m(ery)g Fz(return)e FF(has)h(the)h(same)f(requiremen)m(t)h
(do)s(es)f(not)h(mesh)f(w)m(ell)h(with)f(the)h(global)g(placemen)m(t)0
543 y(strategy)32 b(w)m(e)f(in)m(tend)f(to)h(use.)40
b(W)-8 b(e)32 b(therefore)f(do)f(not)h(exp)s(ect)g(to)g(implemen)m(t)g
(bac)m(kw)m(ard)f(propagation.)0 783 y FE(4.1.2)105 b(Global)36
b(Placemen)m(t)f(with)f(Call-Return)h(Yielding)0 955
y FF(Global,)g(or)e FB(inter)10 b FF(pro)s(cedural,)33
b(yield)g(placemen)m(t)h(di\013ers)f(from)f(lo)s(cal)i(placemen)m(t)h
(in)d(that)i(function)e(p)s(oin)m(ters)0 1068 y(are)c(\014rst-class)g
(v)-5 b(alues)28 b(in)f(Lilt,)i(and)e(therefore)h(for)g(some)g(call)h
(sites)f(it)g(ma)m(y)g(not)g(b)s(e)f(statically)j(ob)m(vious)e(whic)m
(h)0 1181 y(function)i(is)g(b)s(eing)f(called.)42 b(Th)m(us,)29
b(\014nding)f(a)j(guaran)m(teed)g(optimal)g(placemen)m(t)g(of)f(yield)g
(p)s(oin)m(ts)g(w)m(ould)g(seem)0 1293 y(to)j(require)f(in)m(terpro)s
(cedural)h(con)m(trol)h(\015o)m(w)e(analysis.)48 b(F)-8
b(ortunately)g(,)35 b(w)m(e)e(kno)m(w)f(of)h(at)g(least)h(t)m(w)m(o)g
(global)g(yield)0 1406 y(placemen)m(t)d(strategies)g(that)f(do)f(not)g
(require)g(this)g(complexit)m(y:)42 b(these)30 b(metho)s(ds)e(treat)j
(all)f(functions)e(and)h(all)0 1519 y(function)f(call)j(sites)e
(equally)-8 b(,)30 b(a)m(v)m(oiding)h(the)e(need)f(to)i(matc)m(h)g(up)d
(function)i(calls)h(with)e(their)h(targets.)42 b(W)-8
b(e)30 b(will)0 1632 y(describ)s(e)g(these)h(t)m(w)m(o)g(strategies,)i
(whic)m(h)d(w)m(e)h(call)g FB(c)-5 b(al)5 b(l-r)-5 b(eturn)34
b(yielding)39 b FF(and)30 b FB(F)-7 b(e)i(eley)33 b(yielding)p
FF(.)141 1745 y(It)i(is)g(p)s(ossible)g(to)h(devise)f(a)h(global)g
(placemen)m(t)h(heuristic)e(that)h(relies)f(on)g(only)h(a)f(small)h(p)s
(ortion)e(of)i(the)0 1858 y(T)-8 b(AL)g(T-R)29 b(t)m(yp)s(e)g(system.)
40 b(First,)29 b(note)g(that)h(the)e(inclusion)h(of)f(a)h(term)g(for)f
Fz(ck)g FF(in)g(the)h(register)g(\014le)g(t)m(yp)s(e)g(allo)m(ws)0
1971 y(one)g(to)h(sp)s(ecify)f(the)g(time)h(on)f(the)h(virtual)f(clo)s
(c)m(k)i(at)e(the)h(start)f(and)g(end)f(of)i(a)f(function,)g(similarly)
h(to)g(T)-8 b(ALres)0 2084 y([10)q(].)41 b(F)-8 b(or)31
b(instance,)g(the)g(t)m(yp)s(e)661 2288 y Fw(8)p Fy(\032)p
FF(:)p Fs(TD)o Fy(:)g Fw(f)p Fz(eax)o FF(:)p Fz(B4)p
Fy(;)15 b Fz(esp)p FF(:\()p Fw(f)p Fz(eax)p FF(:)p Fz(B4)p
Fy(;)g Fz(esp)o FF(:)p Fy(\032;)g Fz(ck)p FF(:)p 2246
2214 87 4 v Fy(k)2293 2302 y Fv(2)2333 2288 y Fw(g)26
b(!)f FF(0\))c Fw(\002)f Fy(\032;)15 b Fz(ck)p FF(:)p
2920 2214 V Fy(k)2967 2302 y Fv(1)3007 2288 y Fw(g)26
b(!)f FF(0)0 2492 y(describ)s(es)31 b(a)h(function)f(that)i(tak)m(es)g
(an)e(in)m(teger)j(argumen)m(t)e(\(in)f Fz(eax)p FF(\))h(and)f(returns)
f(an)i(in)m(teger)h(\(also)g(in)e Fz(eax)o FF(\);)0 2605
y(further,)k(this)h(function)e(ma)m(y)i(b)s(e)f(called)h(whenev)m(er)f
(there)h(is)f(at)h(least)h Fy(k)2592 2619 y Fv(1)2655
2605 y FF(+)23 b(1)36 b(on)f(the)g(virtual)h(clo)s(c)m(k)g(and)f(is)0
2718 y(guaran)m(teed)c(to)g(return)e(with)h(at)g(least)i
Fy(k)1433 2732 y Fv(2)1503 2718 y FF(remaining.)40 b(Unlik)m(e)31
b(in)f(T)-8 b(ALres,)30 b(ho)m(w)m(ev)m(er,)i(this)e(function)g(ma)m(y)
h(b)s(e)0 2831 y(called)h(at)f(an)m(y)g(time)g(\(assuming)f(that)i(0)26
b Fw(\024)f Fy(k)1590 2845 y Fv(1)1655 2831 y Fy(<)g(Y)20
b FF(\):)41 b(if)31 b(the)g(v)-5 b(alue)31 b(of)f(the)h(virtual)g(clo)s
(c)m(k)h(at)f(the)g(desired)f(call)0 2944 y(site)f(is)f(not)g(kno)m(wn)
f(to)i(b)s(e)e(at)h(least)i Fy(k)1294 2958 y Fv(1)1349
2944 y FF(+)14 b(1,)29 b(the)f(caller)i(simply)d(yields)h(b)s(efore)g
(making)g(the)g(call,)i(resetting)f(the)0 3057 y(virtual)e(clo)s(c)m(k)
h(to)f Fy(Y)20 b FF(.)39 b(Similarly)-8 b(,)29 b(if)d
Fy(k)1290 3071 y Fv(2)1356 3057 y FF(is)h(not)g(enough)f(time)h(for)f
(the)h(caller)h(to)f(complete)h(its)f(o)m(wn)f(w)m(ork,)i(it)f(has)0
3170 y(only)34 b(to)h(yield)f(after)h(the)f(function)g(returns.)50
b(F)-8 b(urthermore,)35 b(b)m(y)f(similar)h(argumen)m(ts)f(\(and)g
(with)f(the)i(added)0 3283 y(assumption)i(that)h(0)g
Fw(\024)f Fy(k)930 3297 y Fv(2)1007 3283 y Fy(<)h(Y)20
b FF(\),)40 b FB(any)46 b FF(function)37 b(ma)m(y)h(b)s(e)f(made)h(to)h
(satisfy)f(these)g(timing)g(prop)s(erties)f(b)m(y)0 3396
y(prop)s(er)30 b(lo)s(cal)j(yield)e(placemen)m(t)i(\(whic)m(h,)f(as)g
(discussed)e(ab)s(o)m(v)m(e,)j(ma)m(y)f(include)g(inserting)f
Fz(yield)f FF(instructions)0 3508 y(at)h(the)g(function's)f(b)s
(eginning)g(and)f(end\).)141 3621 y(As)36 b(an)g(in)m(teresting)i(sp)s
(ecial)f(case,)i(consider)d(setting)h Fy(k)2105 3635
y Fv(1)2180 3621 y FF(=)e Fy(k)2333 3635 y Fv(2)2407
3621 y FF(=)g(0)i(for)f(ev)m(ery)h(function)e(in)h(a)h(program.)0
3734 y(This)29 b(forces)i(the)f(\014rst)f(instruction)h(of)g(eac)m(h)h
(function's)f(b)s(o)s(dy)-8 b(,)29 b(and)g(the)h(instruction)g
(immediately)h(follo)m(wing)0 3847 y(eac)m(h)j Fz(call)e
FF(instruction,)j(to)f(b)s(e)e(a)i Fz(yield)n FF(,)h(so)e(w)m(e)h(call)
g(this)f(sc)m(heme)h FB(c)-5 b(al)5 b(l-r)-5 b(eturn)37
b(yielding)p FF(.)49 b(\(Cho)s(osing)34 b Fy(k)3760 3861
y Fv(1)3829 3847 y FF(=)0 3960 y Fy(k)47 3974 y Fv(2)124
3960 y FF(=)j Fy(Y)45 b Fw(\000)24 b FF(1)38 b(w)m(ould)g(ha)m(v)m(e)g
(a)g(similar)g(e\013ect,)j(except)e(that)f(the)f(yields)h(w)m(ould)f
(need)h(to)g(o)s(ccur)f(just)g(b)s(efore,)0 4073 y(rather)30
b(than)h(just)e(after,)j(the)e(jumps.\))40 b(Call-return)30
b(yielding)h(is)g(simple,)f(but)g(it)h(is)g(far)f(from)g(optimal)h(if)g
Fy(Y)50 b FF(is)0 4186 y(large)35 b(compared)f(to)h(the)g(running)d
(time)j(of)f(most)h(functions)e(\(whic)m(h)i(w)m(e)f(exp)s(ect)h(to)g
(b)s(e)e(the)h(case\).)54 b(If)34 b(some)0 4299 y(functions)27
b(are)g(v)m(ery)h(short)f(compared)g(to)h Fy(Y)20 b FF(,)28
b(it)g(w)m(ould)f(b)s(e)g(safe)h(to)g(p)s(erform)e(sev)m(eral)i(calls)h
(to)f(these)f(functions)0 4412 y(in)e(succession)i(with)e(no)h(yields)g
(at)g(all,)i(but)d(the)h(call-return)h(strategy)g(incurs)e(the)h(cost)g
(of)g(the)g(yield)g(op)s(eration)0 4525 y(at)31 b(least)h(t)m(wice)g(p)
s(er)d(call.)0 4765 y FE(4.1.3)105 b(Global)36 b(Placemen)m(t)f(with)f
(F)-9 b(eeley)35 b(Yielding)0 4936 y FF(It)d(is)g(p)s(ossible)g(to)g
(impro)m(v)m(e)h(o)m(v)m(er)h(call-return)e(yielding)h(b)m(y)f(giving)g
(t)m(yp)s(es)g(to)h(functions)f(that)g(more)g(precisely)0
5049 y(capture)f(their)f(timing)h(b)s(eha)m(vior.)41
b(F)-8 b(or)31 b(example,)g(b)m(y)f(analogy)i(with)e(T)-8
b(ALres,)31 b(w)m(e)g(migh)m(t)g(write)f(the)h(t)m(yp)s(e)512
5254 y Fw(8)p Fy(a)p FF(:)p Fs(N)p Fy(:)p Fw(8)p Fy(\032)p
FF(:)p Fs(TD)p Fy(:)f Fw(f)p Fz(eax)p FF(:)p Fz(B4)p
Fy(;)15 b Fz(esp)o FF(:\()p Fw(f)p Fz(eax)q FF(:)p Fz(B4)o
Fy(;)g Fz(esp)p FF(:)p Fy(\032;)g Fz(ck)p FF(:)p Fy(a)p
Fw(g)26 b(!)f FF(0\))c Fw(\002)f Fy(\032;)15 b Fz(ck)p
FF(:)p 2946 5179 51 4 v Fy(k)24 b FF(+)19 b Fy(a)p Fw(g)26
b(!)f FF(0)1905 5589 y(23)p eop
%%Page: 24 26
24 25 bop 0 91 a FF(to)28 b(describ)s(e)f(a)i(function)e(that)h(tak)m
(es)h(time)g Fy(k)s FF(.)40 b(Quan)m(tifying)27 b(o)m(v)m(er)i(the)f
(amoun)m(t)g(of)g(time)h(remaining)e(on)h(return)0 204
y(expresses)37 b(the)g(fact)h(that)g(this)f(function)g(returns)f(with)h
(all)h(but)e Fy(k)k FF(of)e(its)f(initial)i(virtual)e(clo)s(c)m(k)i
(remaining,)0 317 y(whatev)m(er)c(that)g(v)-5 b(alue)35
b(happ)s(ens)d(to)j(b)s(e.)52 b(There)33 b(is)i(a)f(problem,)h(ho)m(w)m
(ev)m(er:)50 b(a)34 b(function)g(of)h(this)f(t)m(yp)s(e)g(cannot)0
430 y(yield!)41 b(T)-8 b(o)30 b(see)h(wh)m(y)-8 b(,)30
b(note)g(that)h(the)f(function)f(m)m(ust)h(execute)h(its)f(return)f
(instruction)h(with)g Fy(a)19 b FF(+)g(1)30 b(remaining)0
543 y(on)25 b(the)g(virtual)g(clo)s(c)m(k;)k(but)24 b(as)h(far)g(as)g
(the)g(function)g(kno)m(ws,)h Fy(a)f FF(could)g(b)s(e)f
FB(any)k(natur)-5 b(al)30 b(numb)-5 b(er)p FF(.)39 b(In)24
b(particular,)0 656 y Fy(a)j FF(migh)m(t)h(b)s(e)e(larger)i(than)e
Fy(Y)20 b FF(|but)26 b Fy(Y)47 b FF(is)27 b(the)g(largest)i(clo)s(c)m
(k)f(v)-5 b(alue)27 b(the)g(function)g(can)g(ev)m(er)h(ensure)e(after)i
(it)f(has)0 769 y(p)s(erformed)i(a)i(yield)f(instruction.)141
882 y(In)i(realit)m(y)-8 b(,)36 b(of)c(course,)i Fy(a)e
FF(will)h(nev)m(er)g(b)s(e)f(larger)i(than)e Fy(Y)20
b FF(;)34 b(in)e(fact,)i(the)f(initial)h(clo)s(c)m(k)g(v)-5
b(alue)33 b(of)g Fy(k)25 b FF(+)c Fy(a)33 b FF(can)0
995 y(b)s(e)d(at)i(most)f Fy(Y)40 b Fw(\000)20 b FF(1.)43
b(Hence,)32 b(if)f(the)g(function)f(yields,)h(the)g(resulting)g(clo)s
(c)m(k)h(v)-5 b(alue)32 b(of)f Fy(Y)50 b FF(is)31 b(guaran)m(teed)h(to)
g(b)s(e)0 1108 y(greater)j(than)e(or)h(equal)g(to)g Fy(a)23
b FF(+)f(1,)35 b(allo)m(wing)g(the)f(function)f(to)h(return.)50
b(As)33 b(w)m(e)h(discussed)f(in)g(Section)i(2.2.3,)0
1220 y(co)s(de)26 b(blo)s(c)m(ks)h(in)f(BT)-8 b(AL)g(T-R)27
b(are)g(p)s(ermitted)f(to)g(dep)s(end)f(on)h(constrain)m(t)i
(assumptions;)f(the)f(addresses)g(of)g(suc)m(h)0 1333
y(blo)s(c)m(ks)h(are)h(giv)m(en)g(guarded)e(t)m(yp)s(es)h(so)h(that)f
(they)h(cannot)f(b)s(e)g(executed)g(unless)g(the)g(constrain)m(ts)h
(are)g(satis\014ed.)0 1446 y(F)-8 b(or)31 b(example,)g(if)g(w)m(e)g
(decide)f(the)h(t)m(yp)s(e)g(of)f(a)h(function)f(should)f(b)s(e)126
1650 y Fw(8)p Fy(a)p FF(:)p Fs(N)p Fy(:)p Fw(8)p Fy(\032)p
FF(:)p Fs(TD)p Fy(:)h FF(\()p 680 1576 51 4 v Fy(k)24
b FF(+)c Fy(a)25 b Fw(\024)p 1011 1577 230 4 v 25 w Fy(Y)40
b Fw(\000)20 b FF(1)q(\))25 b Fw(\))h(f)p Fz(eax)o FF(:)p
Fz(B4)p Fy(;)15 b Fz(esp)o FF(:\()p Fw(f)p Fz(eax)q FF(:)p
Fz(B4)o Fy(;)g Fz(esp)p FF(:)p Fy(\032;)g Fz(ck)p FF(:)p
Fy(a)p Fw(g)26 b(!)f FF(0\))c Fw(\002)f Fy(\032;)15 b
Fz(ck)p FF(:)p 3332 1576 51 4 v Fy(k)24 b FF(+)c Fy(a)p
Fw(g)25 b(!)h FF(0)0 1855 y(\(the)j(same)h(t)m(yp)s(e)f(as)g(the)g
(previous)f(attempt)i(at)f(a)h(function)e(of)h(cost)h
Fy(k)s FF(,)f(except)h(for)f(the)g(guard\),)g(then)f(w)m(e)i(add)0
1968 y(the)36 b(h)m(yp)s(othesis)e(\()p 649 1894 V Fy(k)28
b FF(+)23 b Fy(a)33 b Fw(\024)p 1004 1895 230 4 v 34
w Fy(Y)40 b Fw(\000)20 b FF(1\))36 b Fs(true)f FF(to)h(the)g(static)h
(con)m(text)g(when)d(t)m(yping)i(the)g(function's)f(co)s(de.)56
b(This)0 2081 y(h)m(yp)s(othesis)39 b(will)g(then)g(b)s(e)f(a)m(v)-5
b(ailable)41 b(for)e(use)g(in)g(pro)m(ving)g(form)m(ulas)g(true)g
(within)f(the)h(function)g(b)s(o)s(dy)-8 b(.)66 b(In)0
2193 y(particular,)32 b(in)e(order)h(for)f(the)h(function)g(to)h
(return)e(after)h(a)g(yield,)h(w)m(e)f(need)g(to)h(sho)m(w)f(that)p
3254 2124 46 4 v 31 w(1)21 b(+)f Fy(a)27 b Fw(\024)p
3582 2120 73 4 v 25 w Fy(Y)20 b FF(.)43 b(This)0 2306
y(is)31 b(esp)s(ecially)h(easy)f(when)f Fy(k)f Fw(\025)d
FF(1,)31 b(since)h(\(using)e(the)h(ordering)g(axioms,)h(monotonicit)m
(y)h(and)d(transitivit)m(y\))i(w)m(e)0 2419 y(can)f(reason)f(as)h
(follo)m(ws:)p 1410 2463 46 4 v 1410 2532 a(1)21 b(+)e
Fy(a)26 b Fw(\024)p 1736 2458 51 4 v 25 w Fy(k)d FF(+)d
Fy(a)25 b Fw(\024)p 2066 2459 230 4 v 25 w Fy(Y)41 b
Fw(\000)19 b FF(1)26 b Fw(\024)p 2417 2459 73 4 v 25
w Fy(Y)0 2699 y FF(As)33 b(a)g(matter)h(of)f(fact,)h(a)f(function)g
(with)f(the)h(ab)s(o)m(v)m(e)h(t)m(yp)s(e)f(need)g(not)g(yield)g
(immediately)h(b)s(efore)f(it)g(returns,)0 2812 y(b)s(ecause)d(a)h
(stronger)g(fact)g(holds:)0 3000 y FE(Prop)s(osition)36
b(1)46 b FB(If)32 b FF(0)26 b Fy(<)f(k)k Fw(\024)24 b
Fy(Y)c FB(,)33 b(then)g FF(\()p Fy(a)p FF(:)p Fs(N)p
Fy(;)15 b FF(\()p 1679 2926 51 4 v Fy(k)25 b FF(+)20
b Fy(a)25 b Fw(\024)p 2011 2927 230 4 v 25 w Fy(Y)41
b Fw(\000)19 b FF(1)q(\))33 b Fs(true)p FF(\))26 b Fw(`)p
2601 2930 46 4 v 24 w FF(1)21 b(+)f Fy(a)25 b Fw(\024)p
2927 2926 235 4 v 25 w Fy(Y)40 b Fw(\000)20 b Fy(k)36
b Fs(true)p FB(.)0 3187 y FE(Pro)s(of)42 b(Sk)m(etc)m(h:)52
b FF(Let)37 b(\001)e(b)s(e)h(the)g(con)m(text)i(in)d(the)i(judgmen)m(t)
e(to)i(b)s(e)e(deriv)m(ed.)58 b(Using)36 b(comm)m(utativit)m(y)-8
b(,)41 b(the)0 3300 y(addition)34 b(axiom)i(and)d(re\015exivit)m(y)j
(of)e(ordering,)h(\001)d Fw(`)p 1937 3226 207 4 v 31
w Fy(k)23 b Fw(\000)d FF(1)j(+)g(\()p 2295 3231 46 4
v(1)h(+)e Fy(a)p FF(\))32 b Fw(\024)p 2675 3226 51 4
v 32 w Fy(k)26 b FF(+)c Fy(a)34 b Fs(true)q FF(.)52 b(Using)34
b(the)h(addition)0 3413 y(axiom)f(and)e(re\015exivit)m(y)i(of)f
(ordering,)g(\001)c Fw(`)p 1562 3340 230 4 v 29 w Fy(Y)40
b Fw(\000)20 b FF(1)30 b Fw(\024)p 1921 3339 207 4 v
29 w Fy(k)23 b Fw(\000)d FF(1)i(+)p 2242 3339 235 4 v
22 w Fy(Y)40 b Fw(\000)20 b Fy(k)36 b Fs(true)p FF(.)48
b(In)m(v)m(oking)33 b(the)g(h)m(yp)s(othesis)g(in)f(\001)0
3526 y(and)e(using)g(transitivit)m(y)i(t)m(wice,)g(w)m(e)f(get)h(\001)
25 b Fw(`)p 1616 3452 207 4 v 25 w Fy(k)e Fw(\000)d FF(1)h(+)f(\()p
1969 3456 46 4 v(1)h(+)f Fy(a)p FF(\))26 b Fw(\024)p
2331 3452 207 4 v 25 w Fy(k)d Fw(\000)d FF(1)h(+)p 2649
3452 235 4 v 20 w Fy(Y)40 b Fw(\000)20 b Fy(k)34 b Fs(true)p
FF(.)41 b(By)31 b(the)f(cancellation)0 3639 y(rule,)g(\001)25
b Fw(`)p 389 3569 46 4 v 25 w FF(1)c(+)f Fy(a)25 b Fw(\024)p
715 3565 235 4 v 25 w Fy(Y)40 b Fw(\000)20 b Fy(k)34
b FF(as)c(required.)141 3851 y(A)f(consequence)h(of)g(this)f(prop)s
(osition)g(is)g(that)h(a)f(function)g(with)g(the)h(t)m(yp)s(e)f(giv)m
(en)h(ab)s(o)m(v)m(e)h(ma)m(y)e(execute)i(up)0 3964 y(to)c
Fy(k)i FF(instructions)c(b)s(et)m(w)m(een)i(its)f(last)h
Fz(yield)d FF(and)h(its)h(\014nal)g Fz(ret)o FF(.)39
b(If)26 b Fy(j)31 b FF(instructions)26 b(ha)m(v)m(e)h(b)s(een)e
(executed)i(since)0 4077 y(the)c(last)h Fz(yield)d FF(and)h
Fy(j)31 b Fw(\024)25 b Fy(k)s FF(,)g(then)d(the)i(virtual)f(clo)s(c)m
(k)h(will)f(read)g Fy(Y)i Fw(\000)5 b Fy(j)g FF(.)39
b(It)23 b(follo)m(ws)h(that)f Fy(Y)i Fw(\000)5 b Fy(j)31
b Fw(\025)25 b Fy(Y)g Fw(\000)5 b Fy(k)28 b Fw(\025)d
FF(1)5 b(+)g Fy(a)p FF(,)0 4190 y(making)31 b(a)f(return)g(instruction)
g(w)m(ell-t)m(yp)s(ed.)141 4303 y(As)21 b(w)m(as)h(the)f(case)h(in)f
(our)f(discussion)h(of)g(call-return)g(yielding,)j(the)d(function)g(t)m
(yp)s(e)g(just)g(examined)g(do)s(es)g(not)0 4416 y(b)s(ound)30
b(the)i(n)m(um)m(b)s(er)e(of)i(instructions)f(executed)i(b)m(y)e(a)i
(function.)44 b(It)32 b(merely)g(guaran)m(tees)h(that)f(an)m(y)g
(function)0 4529 y(of)g(that)h(t)m(yp)s(e)g(that)g(tak)m(es)g(more)g
(than)f Fy(k)j FF(instructions)d(will)h(yield)g(after)f(executing)i(at)
f(most)f Fy(k)k FF(instructions,)0 4642 y(and)e(that)g(if)g(suc)m(h)g
(a)h(function)f(do)s(es)g(yield,)h(the)g(last)g(time)g(it)f(do)s(es)g
(so)h(is)f(at)h(most)f Fy(k)k FF(instructions)c(b)s(efore)f(it)0
4755 y(returns.)39 b(By)31 b(placing)g(yields)g(appropriately)-8
b(,)31 b(an)m(y)g(function)f(can)h(b)s(e)e(made)i(to)g(ob)s(ey)f(these)
h(criteria.)141 4868 y(Once)k(again,)j(an)d(in)m(teresting)i(sp)s
(ecial)e(case)i(arises)e(if)g(the)h(v)-5 b(alue)36 b(of)f
Fy(k)j FF(is)d(\014xed)g(for)g(all)h(functions)f(in)g(the)0
4980 y(program:)58 b(in)40 b(this)f(case,)k(the)c(result)h(is)f(essen)m
(tially)i(the)f(yield-placemen)m(t)h(strategy)g(describ)s(ed)e(b)m(y)g
(F)-8 b(eeley)0 5093 y([14)q(].)52 b(F)-8 b(eeley)g(,)38
b(whose)c(motiv)-5 b(ation)36 b(w)m(as)e(placing)h(c)m(hec)m(kp)s(oin)m
(ts)g(in)f(a)h(program)f(to)g(detect)i(in)m(terrupts,)e(named)0
5206 y(his)f(strategy)i FB(b)-5 b(alanc)g(e)g(d)37 b(p)-5
b(ol)5 b(ling)p FF(.)51 b(\(F)-8 b(eeley)36 b(also)f(inspired)d(our)h
(use)g(of)g(the)h(term)g(`call-return)g(yielding'.\))51
b(W)-8 b(e)0 5319 y(c)m(ho)s(ose)41 b(to)g(refer)f(to)h(the)f(yielding)
h(sc)m(heme)g(w)m(e)f(ha)m(v)m(e)h(just)f(describ)s(ed)f(as)h
FB(F)-7 b(e)i(eley)42 b(yielding)p FF(,)i(and)39 b(w)m(e)i(follo)m(w)
1905 5589 y(24)p eop
%%Page: 25 27
25 26 bop 725 781 a FB(Note:)41 b(this)34 b(example)g(assumes)f(that)h
Fy(E)c Fw(\025)25 b FF(4)33 b FB(and)h(that)g Fy(Y)45
b Fw(\025)25 b FF(2)p Fy(E)h FF(+)20 b(8)p FB(.)677 1042
y Fz(fib:)916 1155 y(//)47 b(ck)g(:)p 1298 1082 73 4
v 48 w Fy(E)25 b FF(+)20 b Fy(a)p Fz(,)48 b FF(\()p 1660
1082 V Fy(E)26 b FF(+)19 b Fy(a)74 b Fw(\024)p 2108 1082
230 4 v 72 w Fy(Y)40 b Fw(\000)20 b FF(1)q(\))96 b Fs(true)916
1267 y Fz(cmp)47 b(eax,1)916 1380 y(ja)g(L1)1097 b(//)47
b Fy(n)73 b Fw(\024)g FF(1)p Fz(?)916 1493 y(mov)47 b(eax,1)916
1606 y(//)g(ck)g(:)p 1298 1533 229 4 v 48 w Fy(E)25 b
Fw(\000)20 b FF(3)h(+)f Fy(a)916 1719 y Fz(ret)1192 b(//)143
b(Return)46 b FF(1)677 1832 y Fz(L1:)916 1945 y(//)h(ck)g(:)p
1298 1872 V 48 w Fy(E)25 b Fw(\000)20 b FF(2)h(+)f Fy(a)916
2058 y Fz(push)47 b(eax)916 2171 y(sub)g(eax,1)916 2284
y(//)g(ck)g(:)p 1298 2211 V 48 w Fy(E)25 b Fw(\000)20
b FF(4)h(+)f Fy(a)916 2397 y Fz(yield)916 2509 y(//)47
b(ck)g(:)p 1298 2436 73 4 v 48 w Fy(Y)916 2622 y Fz(call)g(fib)953
b(//)47 b(Compute)f(fib\(n-1\))916 2735 y(//)h(ck)g(:)p
1298 2662 414 4 v 48 w Fy(Y)40 b Fw(\000)20 b Fy(E)25
b Fw(\000)20 b FF(1)916 2848 y Fz(pop)47 b(ecx)916 2961
y(push)g(eax)916 3074 y(mov)g(eax,ecx)916 3187 y(sub)g(eax,2)916
3300 y(//)g(ck)g(:)p 1298 3227 V 48 w Fy(Y)40 b Fw(\000)20
b Fy(E)25 b Fw(\000)20 b FF(5)916 3413 y Fz(call)47 b(fib)953
b(//)47 b(Compute)f(fib\(n-2\))916 3526 y(//)h(ck)g(:)p
1298 3453 459 4 v 48 w Fy(Y)40 b Fw(\000)20 b FF(2)p
Fy(E)26 b Fw(\000)20 b FF(6)916 3639 y Fz(pop)47 b(ecx)916
3751 y(add)g(eax,ecx)809 b(//)47 b(eax)g(:=)h(fib\(n-1\)+fib\(n-2\))916
3864 y(//)f(ck)g(:)p 1298 3791 V 48 w Fy(Y)40 b Fw(\000)20
b FF(2)p Fy(E)26 b Fw(\000)20 b FF(8)916 3977 y Fz(yield)916
4090 y(//)47 b(ck)g(:)p 1298 4017 73 4 v 48 w Fy(Y)916
4203 y Fz(ret)1192 b(//)47 b(Return)1083 4604 y FF(Figure)31
b(14:)41 b(Fib)s(onacci)32 b(using)e(F)-8 b(eeley)32
b(Yielding)1905 5589 y(25)p eop
%%Page: 26 28
26 27 bop 0 91 a FF(F)-8 b(eeley)32 b(in)d(using)g(the)h(letter)g
Fy(E)35 b FF(to)c(denote)f(the)f(\014xed)g(v)-5 b(alue)30
b(c)m(hosen)g(for)g Fy(k)s FF(.)40 b(The)29 b(ma)5 b(jor)30
b(adv)-5 b(an)m(tage)31 b(of)f(F)-8 b(eeley)0 204 y(yielding)39
b(is)g(that)g(functions)f(\(more)h(accurately)-8 b(,)43
b(lo)s(op-free)d(leaf)f(functions\))g(shorter)f(than)g
Fy(E)44 b FF(instructions)0 317 y(need)39 b(not)g(yield)g(at)h(all)g
(\(whereas)f(in)g(call-return)g(yielding)h FB(every)47
b FF(function)38 b(m)m(ust)h(yield\).)67 b(F)-8 b(urther,)41
b(from)0 430 y(the)33 b(caller's)g(p)s(oin)m(t)g(of)f(view,)i(an)m(y)e
(function)g(app)s(ears)g(to)h(cost)g(exactly)i Fy(E)i
FF(instructions.)47 b(Th)m(us)31 b(if)h Fy(E)38 b FF(is)32
b(small)0 543 y(enough)d(compared)h(to)g Fy(Y)20 b FF(,)29
b(sev)m(eral)i(function)e(calls)i(ma)m(y)f(o)s(ccur)f(in)g(succession)h
(without)f(the)h(caller)g(ha)m(ving)g(to)0 656 y(yield)h(in)f(b)s(et)m
(w)m(een.)141 769 y(A)c(sample)g(BT)-8 b(AL)g(T-R)26
b(program)g(fragmen)m(t)g(using)g(the)g(F)-8 b(eeley)28
b(yielding)e(strategy)h(is)f(sho)m(wn)f(in)h(Figure)g(14.)0
882 y(The)f(function)g(in)g(the)h(\014gure)f(is)h(a)f(recursiv)m(e)h
(function)g(to)g(compute)g(Fib)s(onacci)g(n)m(um)m(b)s(ers;)g(it)g(w)m
(as)g(hand-co)s(ded)0 995 y(in)i(BT)-8 b(AL)g(T-R)30
b(and)e(is)h(displa)m(y)m(ed)g(in)g(appro)m(ximately)h(In)m(tel)f
(assem)m(bler)h(syn)m(tax.)40 b(Note)30 b(that)g(the)f(function)f(has)0
1108 y(a)e(\\short)h(path")f(corresp)s(onding)f(to)i(the)f(case)h
(where)e(the)i(argumen)m(t)f(is)g(less)g(than)g(or)g(equal)h(to)g(1,)g
(and)e(a)i(\\long)0 1220 y(path")36 b(that)g(p)s(erforms)e(t)m(w)m(o)j
(recursiv)m(e)f(calls)h(if)f(it)g(is)f(not.)57 b(Notice)38
b(that)e(the)g(short)f(path)h(do)s(es)f(not)h(need)f(to)0
1333 y(yield)f(\(of)g(course,)g(this)f(dep)s(ends)f(on)h
Fy(E)39 b FF(b)s(eing)33 b(c)m(hosen)g(large)i(enough\).)50
b(The)32 b(long)i(path)f(m)m(ust)h(yield)f(b)s(efore)0
1446 y(the)c(\014rst)g(recursiv)m(e)h(call,)h(and)d(b)s(et)m(w)m(een)i
(the)f(last)h(call)h(and)e(the)g(\014nal)g(return)f(instruction.)40
b(This)29 b(is)g(t)m(ypical)i(of)0 1559 y(F)-8 b(eeley)34
b(yielding,)f(since)f(an)m(y)g(function)f(migh)m(t)h(start)g(out)g
(with)g(as)g(little)h(as)f Fy(E)37 b FF(on)31 b(the)h(clo)s(c)m(k,)i
(but)d(an)m(y)h(callee)0 1672 y(requires)c(at)h(least)h
Fy(E)5 b FF(;)30 b(similarly)-8 b(,)30 b(no)f(callee)h(can)f(b)s(e)f
(assumed)g(to)h(return)f(with)g(more)h(than)f Fy(Y)37
b Fw(\000)16 b Fy(E)22 b Fw(\000)16 b FF(1)29 b(on)g(the)0
1785 y(clo)s(c)m(k,)g(but)d(the)g(caller)i(cannot)f(return)f(without)g
(at)h(least)h Fy(Y)k Fw(\000)12 b Fy(E)5 b FF(.)40 b(Notice,)30
b(ho)m(w)m(ev)m(er,)f(that)e(no)f(yield)h(is)f(needed)0
1898 y(in)k(b)s(et)m(w)m(een)h(the)g(t)m(w)m(o)g(recursiv)m(e)g(calls)h
(\(again)f(assuming)f(appropriate)h(v)-5 b(alues)31 b(for)f
Fy(Y)50 b FF(and)30 b Fy(E)5 b FF(\).)0 2138 y FE(4.1.4)105
b(Exceptional)36 b(Placemen)m(t)0 2310 y FF(W)-8 b(e)31
b(b)s(eliev)m(e)h(it)e(is)h(sensible)f(to)h(adopt)f(a)h(simple)f
(heuristic)g(for)g(exceptional)i(yield)f(placemen)m(t.)42
b(In)29 b(particular,)0 2423 y(since)39 b(it)h(is)f(often)g(unkno)m(wn)
f(at)h(the)g(site)h(of)f(a)h Fz(raise)d FF(expression)i(whic)m(h)f
(handler)g(is)h(b)s(eing)g(in)m(v)m(ok)m(ed,)k(the)0
2535 y(b)s(est)35 b(solution)g(is)g(probably)f(to)i(use)f(a)g(\014xed)f
(initial)i(assumption)f(for)g(all)g(handler)g(blo)s(c)m(ks)g(and)f
(treat)i Fz(raise)0 2648 y FF(expressions)27 b(accordingly)-8
b(.)42 b(If)27 b(the)h(initial)h(condition)f(of)g(all)h(exception)g
(handlers)e(is)g(tak)m(en)i(to)g(b)s(e)e Fy(H)7 b FF(,)28
b(then)g(the)0 2761 y(requiremen)m(t)g(to)g(generate)i(a)e
Fz(raise)e FF(is)i(simply)f Fy(H)35 b FF(plus)27 b(the)h(cost)h(of)f
(raising)g(the)g(exception)h(\(probably)e(a)h(few)0 2874
y(instructions\).)141 2987 y(There)h(is)g(ro)s(om)f(for)h(clev)m(er)h
(impro)m(v)m(emen)m(t)h(of)e(this)g(metho)s(d:)39 b(if)29
b(a)g Fz(raise)f FF(o)s(ccurs)g(in)h(a)g(con)m(text)i(where)e(the)0
3100 y(curren)m(t)e(handler)g(can)h(b)s(e)f(statically)j(predicted,)f
(then)e(it)h(ma)m(y)g(b)s(e)f(p)s(ossible)h(to)g(a)m(v)m(oid)h
(yielding)f(b)s(efore)g(raising)0 3213 y(the)38 b(exception)h(if)e(the)
h(handler)f(blo)s(c)m(k)h(is)f(short;)k(ho)m(w)m(ev)m(er,)g(if)d(a)g
(handler)f(migh)m(t)h(b)s(e)f(in)m(v)m(ok)m(ed)i(in)e(a)h(con)m(text)0
3326 y(where)33 b(its)h(iden)m(tit)m(y)h(is)f(unkno)m(wn,)f(its)h
(initial)h(requiremen)m(t)f(had)f(b)s(etter)h(b)s(e)f(at)h(most)g
Fy(H)7 b FF(.)51 b(It)33 b(do)s(es)h(not)g(seem)0 3439
y(lik)m(ely)27 b(that)f(an)m(y)g(serious)f(adv)-5 b(an)m(tage)28
b(can)d(b)s(e)g(gained)h(from)f(this)h(\015exibilit)m(y)-8
b(,)28 b(so)e(due)f(to)h(the)f(added)g(complexit)m(y)0
3552 y(it)31 b(w)m(ould)f(in)m(tro)s(duce)g(to)h(the)g(t)m(yp)s(e)g
(asp)s(ects)f(of)h(compilation)h(w)m(e)f(do)f(not)g(plan)g(to)i(in)m(v)
m(estigate)h(it.)0 3792 y FE(4.1.5)105 b(Clo)s(c)m(ks)36
b(and)f(P)m(olling)0 3963 y FF(The)26 b(yield)i(placemen)m(t)g
(strategies)h(discussed)d(so)h(far)g(are)g(straigh)m(tforw)m(ard)h(and)
e(easy)i(to)f(implemen)m(t,)i(but)d(\(w)m(e)0 4076 y(predict\))31
b(they)g(fall)g(far)g(short)f(of)h(the)g(ideal)g(goal)i(of)d(yielding)i
(exactly)g(once)g(for)e(ev)m(ery)i Fy(Y)50 b FF(other)31
b(instructions)0 4189 y(executed.)48 b(The)32 b(reason)h(is)f(that,)i
(while)e(the)h(c)m(hanges)g(in)g(the)f(virtual)h(clo)s(c)m(k)h(can)f(b)
s(e)e(precisely)j(trac)m(k)m(ed)g(o)m(v)m(er)0 4302 y(straigh)m(t-line)
39 b(co)s(de)e(or)g(tree-structured)f(co)s(de,)j(this)e(precision)g
(cannot)g(b)s(e)f(carried)h(across)h(extended)f(basic)0
4415 y(blo)s(c)m(k)32 b(b)s(oundaries.)42 b(Once)32 b(the)f(yield)h(p)s
(erio)s(d)e Fy(Y)51 b FF(is)32 b(larger)g(than)f(the)h(length)f(of)h
(the)g(longest)g(extended)g(basic)0 4528 y(blo)s(c)m(k)25
b(in)e(the)h(program,)i(w)m(e)e(cannot)h(exp)s(ect)f(that)h(increasing)
g(it)f(an)m(y)h(more)f(will)g(con)m(tin)m(ue)h(to)g(lo)m(w)m(er)g(the)g
(actual)0 4641 y(frequency)30 b(with)g(whic)m(h)g(the)h(program)f(will)
g(yield)h(under)e(these)i(strategies.)141 4754 y(The)h(next)g(lev)m(el)
i(of)e(re\014nemen)m(t)g(is)g(based)g(on)g(the)g(follo)m(wing)h(idea.)
47 b(Assume)31 b(that)i Fy(Y)48 b FF(=)28 b Fy(M)j Fw(\001)22
b Fy(L)p FF(,)33 b(where)e Fy(L)0 4867 y FF(is)h(close)h(to,)h(but)d
(safely)i(larger)f(than,)h(the)f(length)g(of)g(most)h(extended)e(basic)
i(blo)s(c)m(ks)f(in)g(the)g(program.)45 b(Eac)m(h)0 4980
y(yield)30 b(p)s(erio)s(d)d(\(of)j Fy(Y)49 b FF(instructions\))30
b(can)f(then)g(b)s(e)g(though)m(t)g(of)h(as)f Fy(M)39
b FB(minor)33 b(yield)f(p)-5 b(erio)g(ds)39 b FF(of)29
b Fy(L)g FF(instructions)0 5092 y(eac)m(h.)49 b(If)32
b(the)h(language)h(had)e(a)h FB(minor)j(yield)42 b FF(op)s(eration)33
b(suc)m(h)f(that)i(ev)m(ery)f Fy(M)10 b FF('th)33 b(minor)f(yield)h(p)s
(erforms)e(an)0 5205 y(ordinary)26 b(yield)h(\(whic)m(h)g(w)m(e)g
(hereafter)h(call)g(a)f FB(major)k(yield)36 b FF(for)27
b(the)g(sak)m(e)h(of)f(con)m(trast\),)i(then)e(a)g(new)f(su\016cien)m
(t)0 5318 y(condition)36 b(for)e(safet)m(y)j(is)e(that)g(the)h(program)
f(p)s(erforms)e(a)i FB(minor)46 b FF(yield)36 b(ev)m(ery)g
Fy(L)e FF(instructions.)55 b(Since)35 b Fy(L)g FF(is)1905
5589 y(26)p eop
%%Page: 27 29
27 28 bop 227 56 a Fz(YIELD)47 b(=)466 168 y(//)g Fy(a)p
Fz(:)p Fs(N)p Fz(,)h(rck:)p Fw(S)7 b FF(\()p Fy(a)p FF(\))p
Fz(,)47 b(ck:)p 1476 99 46 4 v FF(2)20 b(+)f Fy(a)466
281 y Fz(subjae)46 b(rck,rck,)p FF(\()p Fy(L)18 b FF(+)i(2\))p
Fz(,end)466 394 y(//)47 b(rck:int,)f(ck:)p Fy(a)466 507
y Fz(yield)466 620 y(//)h(ck:)p 753 547 73 4 v Fy(Y)466
733 y Fz(mov)g(rck,\(Y-L-3\))466 846 y(//)g Fy(a)657
813 y Ft(0)753 846 y Fw(7!)73 b Fy(Y)40 b Fw(\000)20
b Fy(L)g Fw(\000)g FF(3)p Fz(;)48 b(rck:)f Fw(S)7 b FF(\()p
1751 773 403 4 v Fy(Y)40 b Fw(\000)20 b Fy(L)g Fw(\000)g
FF(3)q(\))p Fz(,)47 b(ck:)p 2428 773 230 4 v Fy(Y)40
b Fw(\000)20 b FF(1)73 b(=)p 2874 773 62 4 v 73 w Fy(L)20
b FF(+)g(\()p 3082 776 46 4 v(2)h(+)f Fy(a)3287 813 y
Ft(0)3310 846 y FF(\))227 959 y Fz(end:)466 1072 y(//)47
b Fy(a)657 1039 y Ft(0)680 1072 y Fz(:)p Fs(N)p Fz(,)h(rck:)p
Fw(S)7 b FF(\()p Fy(a)1225 1039 y Ft(0)1247 1072 y FF(\))p
Fz(,)48 b(ck:)p 1522 999 62 4 v Fy(L)20 b FF(+)f(\()p
1729 1002 46 4 v(2)i(+)f Fy(a)1934 1039 y Ft(0)1958 1072
y FF(\))1248 1367 y(Figure)31 b(15:)42 b(Co)s(de)30 b(for)g(a)g(Minor)h
(Yield)0 1642 y(m)m(uc)m(h)f(closer)h(to)f(the)h(lengths)f(of)g(actual)
h(basic)f(blo)s(c)m(ks)h(than)e Fy(Y)20 b FF(,)30 b(eac)m(h)i(join)d(p)
s(oin)m(t)h(will)h(in)m(tro)s(duce)e(less)i(w)m(aste;)0
1755 y(pro)m(vided)f(the)h(cost)h(of)f(the)g(remaining)g
Fy(M)f Fw(\000)20 b FF(1)31 b(out)g(of)g Fy(M)41 b FF(minor)30
b(yields)h(is)g(small)g(enough)g(compared)f(to)i(the)0
1868 y(one)f(ma)5 b(jor)30 b(yield,)h(w)m(e)g(b)s(eliev)m(e)g(programs)
f(will)h(b)s(e)f(more)g(e\016cien)m(t)i(this)e(w)m(a)m(y)-8
b(.)141 1981 y(Using)27 b(the)g(singleton)g(and)f(guarded)g(t)m(yp)s
(es)h(of)g(T)-8 b(AL)g(T-R,)27 b(minor)f(yielding)h(can)g(actually)h(b)
s(e)e(implemen)m(ted)0 2094 y FB(within)31 b(the)g(language)k
FF(and)28 b(do)s(es)f(not)i(need)e(to)i(b)s(e)f(added)f(as)h(a)h(new)e
(primitiv)m(e.)41 b(This)27 b(is)h(v)m(ery)g(imp)s(ortan)m(t,)h(b)s(e-)
0 2207 y(cause)d(it)f(means)g(that)h(di\013eren)m(t)f(compilers)h
(targeting)h(T)-8 b(AL)g(T-R,)25 b(or)g(h)m(uman)f(programmers)h(w)m
(orking)g(directly)0 2320 y(in)32 b(T)-8 b(AL)g(T-R,)33
b(are)g(free)f(to)h(c)m(ho)s(ose)h(whether)e(they)g(wish)g(to)h(use)f
(a)h(minor)f(yielding)h(strategy)g(or)g(not.)47 b(If)32
b(they)0 2433 y(do)g(c)m(ho)s(ose)h(to)g(use)f(minor)f(yields,)i(they)f
(are)h(still)g(free)f(to)h(c)m(ho)s(ose)g(the)f(v)-5
b(alue)33 b(of)f Fy(L)g FF(ho)m(w)m(ev)m(er)h(they)g(wish|the)0
2546 y(c)m(hoice)j(ma)m(y)e(di\013er)g(b)s(et)m(w)m(een)g(compilers)h
(or)f(ev)m(en)g(b)s(et)m(w)m(een)h(individual)e(T)-8
b(AL)g(T-R)34 b(programs.)51 b(It)34 b(also)h(turns)0
2659 y(out)25 b(that)g(the)g(yield)g(placemen)m(t)i(strategies)f(w)m(e)
g(ha)m(v)m(e)g(already)f(discussed)f(w)m(ork)h(just)f(as)h(w)m(ell)h
(\(in)e(principle\))h(for)0 2771 y(placing)h(minor)e(yields)i(ev)m(ery)
f Fy(L)g FF(instructions)g(as)g(for)g(placing)h(ma)5
b(jor)25 b(yields)g(ev)m(ery)h Fy(Y)45 b FF(instructions,)26
b(but)f(there)0 2884 y(are)36 b(a)h(couple)f(of)h(\\tric)m(ks")h(one)e
(can)g(do)g(with)g(the)g(implemen)m(tation)i(of)e(minor)g(yields)g
(that)h(are)f(imp)s(ossible)0 2997 y(with)30 b(ma)5 b(jor)30
b(yields.)41 b(W)-8 b(e)32 b(will)f(discuss)e(these)i(shortly)-8
b(.)141 3110 y(First,)42 b(ho)m(w)m(ev)m(er,)g(w)m(e)d(m)m(ust)g
(explain)g(ho)m(w)g(minor)f(yields)h(can)g(b)s(e)f(implemen)m(ted)h(in)
g(the)g(T)-8 b(AL)g(T-R)39 b(t)m(yp)s(e)0 3223 y(system.)46
b(The)32 b(most)g(ob)m(vious)h(w)m(a)m(y)g(to)g(implemen)m(t)g(the)f
(in)m(tended)g(b)s(eha)m(vior)g(for)g(the)g(minor)g(yield)g(op)s
(eration)0 3336 y(itself)d(is)f(probably)f(to)i(ha)m(v)m(e)g(a)f(coun)m
(ter,)i(stored)e(in)g(a)g(register)h(or)f(global)h(v)-5
b(ariable,)30 b(represen)m(ting)e(the)g(n)m(um)m(b)s(er)0
3449 y(of)f(minor)g(yields)h(remaining)f(b)s(efore)g(the)g(next)g(ma)5
b(jor)28 b(yield.)40 b(The)26 b(coun)m(ter)i(is)g(decremen)m(ted)f(for)
g(ev)m(ery)h(minor)0 3562 y(yield;)h(when)d(the)h(coun)m(ter)h(reac)m
(hes)g(zero,)h(a)e(ma)5 b(jor)27 b(yield)h(is)f(p)s(erformed)e(and)i
(the)g(coun)m(ter)h(is)f(reset)g(to)h Fy(M)10 b FF(.)40
b(W)-8 b(e)0 3675 y(prefer,)36 b(ho)m(w)m(ev)m(er,)i(to)e(ha)m(v)m(e)h
(a)f(register)g(coun)m(t)g(do)m(wn)f(from)g Fy(Y)55 b
FF(to)36 b(zero)h(in)e(incremen)m(ts)g(of)h Fy(L)p FF(;)i(a)e(minor)f
(yield)0 3788 y(that)28 b(\014nds)d(the)j(coun)m(ter)f(less)h(than)f
Fy(L)g FF(p)s(erforms)e(a)j(ma)5 b(jor)27 b(yield)h(and)e(resets)i(it.)
40 b(Coun)m(ting)27 b(do)m(wn)g Fy(L)g FF(at)h(a)f(time)0
3901 y(instead)38 b(of)h(one)f(at)h(a)g(time)f(mak)m(es)h(the)g
(arithmetic)g(reasoning)g(simpler|in)e(particular,)k(it)d(means)g(w)m
(e)h(do)0 4013 y(not)e(need)f(m)m(ultiplication)i(in)e(T)-8
b(AL)g(T-R's)37 b(constrain)m(t)g(language|and)g(p)s(ermits)f(some)g
(useful)g(tric)m(ks)h(whic)m(h)0 4126 y(w)m(e)31 b(will)g(discuss)e
(later)i(on.)41 b(No)m(w)31 b(w)m(e)g(are)g(in)f(a)h(p)s(osition)f(to)h
(explain)g(ho)m(w)f(minor)g(yields)h(w)m(ork.)0 4366
y FE(Clo)s(c)m(ks)92 b FF(In)28 b(what)i(follo)m(ws)g(w)m(e)g(will)g
(assume)g(that)g(a)g(particular)g(register)g(is)f(reserv)m(ed)h(for)f
(timing)i(purp)s(oses.)0 4479 y(W)-8 b(e)38 b(will)g(use)e(the)h(name)h
Fz(rck)e FF(for)g(this)h(register)h(and)f(refer)f(to)i(it)g(as)f(the)g
FB(clo)-5 b(ck)39 b(r)-5 b(e)g(gister)48 b FF(\(to)38
b(distinguish)e(it)0 4592 y(from)e(the)g(pseudoregister)g
Fz(ck)o FF(,)h(the)g FB(virtual)h(clo)-5 b(ck)10 b FF(\).)52
b(Note)36 b(that)e(although)h(w)m(e)f(giv)m(e)i(a)e(descriptiv)m(e)h
(name)f(to)0 4705 y(the)d(clo)s(c)m(k)h(register)f(for)f(the)h(sak)m(e)
g(of)g(presen)m(tation,)h(there)f(is)f(nothing)h(sp)s(ecial)g(ab)s(out)
f(this)g(register)i(as)e(far)h(as)0 4818 y(the)37 b(t)m(yp)s(e)f
(system)h(is)g(concerned.)59 b(In)36 b(fact,)j(it)e(is)g(not)f
(strictly)i(necessary)f(to)g(store)g(the)g(v)-5 b(alue)37
b(of)g(the)g(clo)s(c)m(k)0 4931 y(register)29 b(in)e(a)i(register)g(at)
f(all:)41 b(it)28 b(w)m(ould)g(also)h(b)s(e)e(reasonable)i(to)g(stac)m
(k-allo)s(cate)j(it)c(and)g(sa)m(v)m(e)h(the)f(register)h(for)0
5044 y(other)i(uses.)1905 5589 y(27)p eop
%%Page: 28 30
28 29 bop 0 91 a FE(Minor)32 b(Yields)92 b FF(A)27 b(BT)-8
b(AL)g(T-R)28 b(implemen)m(tation)h(of)f(a)g(minor)f(yield)h(is)f(sho)m
(wn)g(in)h(Figure)g(15.)40 b(Ignoring)28 b(the)0 204
y(t)m(yp)s(e)h(annotations)g(for)f(a)h(momen)m(t,)g(the)g(e\013ect)h
(of)e(this)h(co)s(de)f(is)g(clear.)42 b(The)27 b Fz(subjae)g
FF(instruction)h(decremen)m(ts)0 317 y(the)i(clo)s(c)m(k)h(register)g
(b)m(y)e Fy(L)19 b FF(+)g(2.)41 b(If)29 b(the)h(result)f(is)h
(nonnegativ)m(e,)i(then)d(execution)i(con)m(tin)m(ues)g(at)g(the)f(lab)
s(el)g Fz(end)p FF(;)0 430 y(if)j(the)f(result)h(of)g(the)f
(subtraction)h(is)g(negativ)m(e,)i(a)e(ma)5 b(jor)33
b(yield)g(is)g(p)s(erformed)e(b)s(efore)h Fz(end)g FF(is)g(reac)m(hed.)
48 b(The)0 543 y(t)m(yping)31 b(annotations)h(sho)m(w)f(that)h(if,)f
(for)g(some)g(static)i(term)e Fy(a)p FF(,)g(the)g(clo)s(c)m(k)i
(register)e(initially)i(holds)d(the)h(v)-5 b(alue)0 656
y Fy(a)30 b FF(and)g(the)h(virtual)g(clo)s(c)m(k)h(sho)m(ws)p
1199 586 46 4 v 30 w(2)20 b(+)g Fy(a)31 b FF(remaining,)g(then)f(the)g
(co)s(de)h(after)g(the)g Fz(end)e FF(lab)s(el)i(ma)m(y)g(assume)f(that)
0 769 y(the)g(clo)s(c)m(k)g(register)h(con)m(tains)f(some)g(v)-5
b(alue)30 b Fy(a)1572 736 y Ft(0)1625 769 y FF(suc)m(h)f(that)h(the)f
(virtual)h(clo)s(c)m(k)h(reads)p 2941 696 62 4 v 29 w
Fy(L)18 b FF(+)g(\()p 3145 699 46 4 v(2)h(+)f Fy(a)p
FF(\).)41 b(W)-8 b(e)30 b(will)g(use)0 882 y(the)h(name)f
Fz(YIELD)f FF(to)i(refer)f(to)h(this)g(co)s(de)f(sequence.)0
1119 y FE(The)41 b(Minor)i(Clo)s(c)m(k)91 b FF(In)36
b(a)g(register)h(\014le)g(\000)f(with)g(\000\()p Fz(rck)o
FF(\))f(=)g Fw(S)7 b FF(\()p Fy(t)p FF(\))37 b(and)e(\000\()p
Fz(ck)p FF(\))g(=)g(\()p Fy(t)3110 1086 y Ft(0)3158 1119
y FF(+)24 b(\()p 3288 1050 V(2)h(+)e Fy(t)p FF(\)\),)39
b(w)m(e)e(will)0 1232 y(sa)m(y)32 b(that)h Fy(t)390 1199
y Ft(0)444 1232 y FF(is)f(the)g(v)-5 b(alue)32 b(of)g(the)g
FB(minor)j(clo)-5 b(ck)p FF(.)45 b(In)m(tuitiv)m(ely)-8
b(,)34 b Fy(t)2220 1199 y Ft(0)2275 1232 y FF(captures)e(the)g(n)m(um)m
(b)s(er)e(of)i(instructions)f(that)0 1345 y(ma)m(y)37
b(b)s(e)e(executed)i(b)s(efore)f(the)h(next)f(minor)g(yield.)58
b(Notice)38 b(that)f(in)f(straigh)m(t-line)i(co)s(de,)g(the)f(minor)f
(clo)s(c)m(k)0 1458 y(b)s(eha)m(v)m(es)30 b(just)f(lik)m(e)i(the)f
(virtual)g(clo)s(c)m(k)h(in)e(the)h(sense)g(that)g(it)g(decremen)m(ts)h
(with)e(ev)m(ery)h(instruction)g(\(pro)m(vided)0 1571
y(it)h(is)f(initially)i(p)s(ositiv)m(e\).)42 b(More)31
b(formally)-8 b(,)32 b(the)e(follo)m(wing)i(rule)e(for)g(the)h
Fz(add)f FF(instruction)g(is)g(deriv)-5 b(able:)1065
1755 y(\(\000\()p Fz(rck)p FF(\))26 b(=)f Fw(S)7 b FF(\()p
Fy(t)p FF(\)\))31 b(\(\000\()p Fz(ck)p FF(\))25 b(=)g(\()p
2138 1685 V(1)c(+)f Fy(t)2328 1722 y Ft(0)2351 1755 y
FF(\))h(+)f(\()p 2533 1685 V(2)h(+)f Fy(t)p FF(\)\))1191
1868 y(\001;)15 b(\011;)g(\000)26 b Fw(`)e Fy(o)1625
1882 y Fv(1)1690 1868 y FF(:)i Fz(int)90 b FF(\001;)15
b(\011;)g(\000)25 b Fw(`)g Fy(o)2409 1882 y Fv(2)2474
1868 y FF(:)g Fz(int)895 1983 y FF(\001;)15 b(\011;)g(\000)25
b Fw(`)g Fy(d)h FF(:)f Fz(int)g Fw(!)g FF(\000)1750 1950
y Ft(0)1864 1983 y FF(\001;)15 b(\011;)g(\000)2148 1950
y Ft(0)2171 1983 y Fw(f)p Fz(ck)p FF(:)p 2337 1909 57
4 v Fy(t)2370 1957 y Ft(0)2414 1983 y FF(+)20 b(\()p
2540 1913 46 4 v(2)h(+)f Fy(t)p FF(\))p Fw(g)26 b(`)e
Fy(I)p 854 2037 2152 4 v 1456 2116 a FF(\001;)15 b(\011;)g(\000)25
b Fw(`)g Fz(add)30 b Fy(d;)15 b(o)2151 2130 y Fv(1)2191
2116 y Fy(;)g(o)2275 2130 y Fv(2)2315 2116 y FF(;)g Fy(I)0
2303 y FF(This)42 b(rule)h(sho)m(ws)g(ho)m(w)g(to)g(t)m(yp)s(e)h(an)e
Fz(add)h FF(instruction)g(when)f(the)h(assumption)f(that)i(the)f(minor)
f(clo)s(c)m(k)j(is)p 0 2347 46 4 v 0 2416 a(1)17 b(+)g
Fy(t)183 2383 y Ft(0)206 2416 y FF(;)29 b(note)h(that)f(as)g(long)g(as)
g(the)g(destination)h Fy(d)f FF(is)f(not)h Fz(rck)p FF(,)g(the)g(con)m
(tin)m(uation)h Fy(I)36 b FF(will)29 b(b)s(e)f(t)m(yp)s(ed)h(under)e
(the)0 2529 y(assumption)f(that)g Fz(rck)f FF(still)i(has)f(t)m(yp)s(e)
g Fw(S)7 b FF(\()p Fy(t)p FF(\),)28 b(meaning)e(that)h(the)f(new)g
(minor)f(clo)s(c)m(k)j(is)e(just)g Fy(t)3254 2496 y Ft(0)3277
2529 y FF(.)39 b(W)-8 b(e)27 b(conjecture)0 2642 y(that)41
b(similar)f(\\minor)g(clo)s(c)m(k)h(rules")g(can)f(b)s(e)f(deriv)m(ed)h
(for)g(all)h(the)f(instructions)g(of)g(BT)-8 b(AL)g(T-R)41
b(except)g(for)0 2755 y Fz(yield)o FF(.)f(F)-8 b(urthermore,)29
b(the)h(t)m(yping)f(annotations)h(in)f(Figure)g(15)h(suggest)g(that)g
(\(if)f(one)h(ignores)f(the)g(fact)h(that)0 2868 y(it)35
b(in)m(v)m(olv)m(es)h(m)m(ultiple)f(blo)s(c)m(ks)g(in)f(BT)-8
b(AL)g(T-R\),)36 b Fz(YIELD)d FF(essen)m(tially)j(acts)f(lik)m(e)h(an)e
(instruction)h(with)f(a)g(t)m(yping)0 2981 y(rule)c(lik)m(e)i(the)e
(follo)m(wing:)337 3161 y(\(\000\()p Fz(ck)p FF(\))c(=)p
717 3091 V 25 w(2)21 b(+)e Fy(t)p FF(\))92 b(\001;)15
b(\011;)g(\000)25 b Fw(`)g Fz(rck)f FF(:)i Fw(S)7 b FF(\()p
Fy(t)p FF(\))91 b(\(\001)p Fy(;)15 b(a)p FF(:)p Fs(N)p
FF(\);)g(\011;)g(\000)p Fw(f)p Fz(rck)q FF(:)p Fw(S)7
b FF(\()p Fy(a)p FF(\))p Fy(;)15 b Fz(ck)q FF(:)p 2986
3088 62 4 v Fy(L)21 b FF(+)p 3159 3091 46 4 v 19 w(2)g(+)f
Fy(a)p Fw(g)26 b(`)f Fy(I)p 337 3203 3226 4 v 1592 3283
a FF(\001;)15 b(\011;)g(\000)25 b Fw(`)g Fz(YIELD)o FF(;)15
b Fy(I)0 3470 y FF(This)33 b(rule)h(states)h(that)g Fz(YIELD)e
FF(has)g(the)i(e\013ect)g(of)f(turning)g(a)g(state)h(with)f
FB(any)43 b FF(minor)34 b(clo)s(c)m(k)h(v)-5 b(alue)35
b(in)m(to)g(one)0 3583 y(where)30 b(the)g(minor)g(clo)s(c)m(k)i(is)f
Fy(L)p FF(|but)e(it)i(ma)m(y)g(c)m(hange)g(the)g(v)-5
b(alue)31 b(of)f(the)h(clo)s(c)m(k)h(register.)141 3696
y(As)h(w)m(e)h(ha)m(v)m(e)g(men)m(tioned,)g(the)f(fact)h(that)g
Fz(YIELD)d FF(b)s(eha)m(v)m(es)j(so)f(m)m(uc)m(h)g(lik)m(e)h
Fz(yield)e FF(means)h(that)g(the)g(lo)s(cal,)0 3809 y(global)f(and)f
(exceptional)i(placemen)m(t)g(strategies)g(w)m(e)e(ha)m(v)m(e)i
(already)f(discussed)e(for)h Fz(yield)f FF(should)g(also)i(w)m(ork)0
3922 y(for)j Fz(YIELD)o FF(,)h(trac)m(king)h(the)e(minor)g(clo)s(c)m(k)
i(instead)e(of)h(the)f(virtual)h(clo)s(c)m(k)h(and)d(placing)i(yield)g
(p)s(oin)m(ts)f(ev)m(ery)h Fy(L)0 4035 y FF(instructions)e(instead)g
(of)g(ev)m(ery)h Fy(Y)20 b FF(.)52 b(When)33 b(a)i(yielding)f(strategy)
i(is)e(adapted)g(to)h(placing)g(minor)e(yields,)i(w)m(e)0
4147 y(call)d(it)f(a)f FB(p)-5 b(ol)5 b(ling)34 b(str)-5
b(ate)g(gy)p FF(.)43 b(F)-8 b(or)31 b(example,)g(recalling)h(the)e(t)m
(yp)s(e)h(of)g(a)f(function)g(under)f(F)-8 b(eeley)33
b(yielding,)104 4334 y Fw(8)p Fy(a)p FF(:)p Fs(N)p Fy(:)p
Fw(8)p Fy(\032)p FF(:)p Fs(TD)p Fy(:)d FF(\()p 658 4261
73 4 v Fy(E)c FF(+)20 b Fy(a)25 b Fw(\024)p 1011 4261
230 4 v 25 w Fy(Y)40 b Fw(\000)20 b FF(1)q(\))25 b Fw(\))h(f)p
Fz(eax)o FF(:)p Fz(B4)p Fy(;)15 b Fz(esp)o FF(:\()p Fw(f)p
Fz(eax)q FF(:)p Fz(B4)o Fy(;)g Fz(esp)p FF(:)p Fy(\032;)g
Fz(ck)p FF(:)p Fy(a)p Fw(g)26 b(!)f FF(0\))c Fw(\002)f
Fy(\032;)15 b Fz(ck)p FF(:)p 3332 4261 73 4 v Fy(E)26
b FF(+)20 b Fy(a)p Fw(g)26 b(!)f FF(0)0 4521 y(and)h(mo)s(difying)h(it)
g(so)h(that)f(it)h(sp)s(eci\014es)f(the)g(function's)g(b)s(eha)m(vior)g
(with)g(resp)s(ect)g(to)g(the)h(minor)e(clo)s(c)m(k)j(instead)0
4634 y(of)i(the)f(virtual)h(clo)s(c)m(k,)h(one)f(gets)g(the)f(t)m(yp)s
(e)h(of)g(a)f(function)g(under)f FB(F)-7 b(e)i(eley)33
b(p)-5 b(ol)5 b(ling)j FF(:)263 4821 y Fw(8)p Fy(a)p
FF(:)p Fs(N)p Fy(:)p Fw(8)p Fy(b)p FF(:)p Fs(N)p Fy(:)p
Fw(8)p Fy(\032)p FF(:)p Fs(TD)q Fy(:)30 b FF(\()p 1022
4748 V Fy(E)c FF(+)20 b Fy(a)25 b Fw(\024)p 1375 4748
219 4 v 25 w Fy(L)20 b Fw(\000)g FF(1)q(\))25 b Fw(\))445
4934 y(f)p Fz(eax)p FF(:)p Fz(B4)p Fy(;)15 b Fz(rck)o
FF(:)p Fw(S)7 b FF(\()p Fy(b)p FF(\))p Fy(;)15 b Fz(esp)q
FF(:\()p Fw(8)p Fy(b)1469 4901 y Ft(0)1492 4934 y FF(:)p
Fs(N)p Fy(:)p Fw(f)p Fz(eax)p FF(:)p Fz(B4)p Fy(;)g Fz(rck)p
FF(:)p Fw(S)7 b FF(\()p Fy(b)2261 4901 y Ft(0)2285 4934
y FF(\))p Fy(;)15 b Fz(esp)o FF(:)p Fy(\032;)g Fz(ck)q
FF(:)p Fy(a)20 b FF(+)g(\()p 2931 4864 46 4 v(2)h(+)f
Fy(b)3127 4901 y Ft(0)3150 4934 y FF(\))p Fw(g)26 b(!)f
FF(0\))c Fw(\002)f Fy(\032;)445 5048 y Fz(ck)p FF(:\()p
601 4975 73 4 v Fy(E)26 b FF(+)20 b Fy(a)p FF(\))g(+)g(\()p
1014 4978 46 4 v(2)h(+)f Fy(b)p FF(\))p Fw(g)26 b(!)f
FF(0)0 5227 y(Notice)34 b(that,)g(while)e(under)e(F)-8
b(eeley)35 b(yielding)d(a)h(function)f(called)h(with)f
Fy(E)27 b FF(+)21 b Fy(a)32 b FF(on)g(the)g(virtual)h(clo)s(c)m(k)g
(returns)0 5340 y(with)f Fy(a)f FF(on)h(the)g(virtual)g(clo)s(c)m(k,)i
(under)c(F)-8 b(eeley)34 b(p)s(olling)e(a)h(function)e(called)i(with)f
Fy(E)26 b FF(+)21 b Fy(a)32 b FF(on)g(the)g FB(minor)43
b FF(clo)s(c)m(k)1905 5589 y(28)p eop
%%Page: 29 31
29 30 bop 730 499 a FB(Note:)42 b(this)33 b(example)h(assumes)g(that)f
Fy(E)e Fw(\025)25 b FF(4)33 b FB(and)h(that)f Fy(L)26
b Fw(\025)e FF(2)p Fy(E)i FF(+)20 b(8)p FB(.)677 759
y Fz(fib:)916 872 y(//)47 b Fy(a;)15 b(b)1186 886 y Fv(0)1251
872 y FF(:)26 b Fs(N)p Fz(,)48 b(rck:)p Fw(S)7 b FF(\()p
Fy(b)1790 886 y Fv(0)1828 872 y FF(\))p Fz(,)916 985
y(//)47 b(ck)g(:)h FF(\()p 1333 912 73 4 v Fy(E)26 b
FF(+)20 b Fy(a)p FF(\))g(+)g(\()p 1746 916 46 4 v(2)h(+)f
Fy(b)1942 999 y Fv(0)1981 985 y FF(\))p Fz(,)48 b FF(\()p
2147 912 73 4 v Fy(E)26 b FF(+)20 b Fy(a)73 b Fw(\024)p
2596 912 219 4 v 73 w Fy(L)20 b Fw(\000)g FF(1\))96 b
Fs(true)916 1098 y Fz(cmp)47 b(eax,1)916 1211 y(ja)g(L1)1097
b(//)47 b Fy(n)73 b Fw(\024)g FF(1)p Fz(?)916 1324 y(mov)47
b(eax,1)916 1437 y(//)g(ck)g(:)h FF(\()p 1333 1364 229
4 v Fy(E)26 b Fw(\000)20 b FF(3)g(+)g Fy(a)p FF(\))h(+)f(\()p
1903 1367 46 4 v(2)h(+)f Fy(b)2099 1451 y Fv(0)2138 1437
y FF(\))916 1550 y Fz(ret)1192 b(//)143 b(Return)46 b
FF(1)677 1663 y Fz(L1:)916 1776 y(//)h(ck)g(:)h FF(\()p
1333 1703 229 4 v Fy(E)26 b Fw(\000)20 b FF(2)g(+)g Fy(a)p
FF(\))h(+)f(\()p 1903 1706 46 4 v(2)h(+)f Fy(b)2099 1790
y Fv(0)2138 1776 y FF(\))916 1888 y Fz(push)47 b(eax)916
2001 y(sub)g(eax,1)916 2114 y(//)g(ck)g(:)h FF(\()p 1333
2041 229 4 v Fy(E)26 b Fw(\000)20 b FF(4)g(+)g Fy(a)p
FF(\))h(+)f(\()p 1903 2045 46 4 v(2)h(+)f Fy(b)2099 2128
y Fv(0)2138 2114 y FF(\))916 2227 y Fz(YIELD)916 2340
y(//)47 b Fy(b)1098 2354 y Fv(1)1163 2340 y FF(:)25 b
Fs(N)p Fz(,)48 b(rck:)p Fw(S)7 b FF(\()p Fy(b)1701 2354
y Fv(1)1740 2340 y FF(\))916 2453 y Fz(//)47 b(ck)g(:)p
1298 2380 62 4 v 48 w Fy(L)20 b FF(+)g(\()p 1506 2384
46 4 v(2)h(+)f Fy(b)1702 2467 y Fv(1)1741 2453 y FF(\))916
2566 y Fz(call)47 b(fib)953 b(//)47 b(Compute)f(fib\(n-1\))916
2679 y(//)h Fy(b)1098 2693 y Fv(2)1163 2679 y FF(:)25
b Fs(N)p Fz(,)48 b(rck:)p Fw(S)7 b FF(\()p Fy(b)1701
2693 y Fv(2)1740 2679 y FF(\))916 2792 y Fz(//)47 b(ck)g(:)p
1298 2719 402 4 v 48 w Fy(L)20 b Fw(\000)g Fy(E)25 b
Fw(\000)20 b FF(1)h(+)f(\()p 1846 2722 46 4 v(2)h(+)f
Fy(b)2042 2806 y Fv(2)2081 2792 y FF(\))916 2905 y Fz(pop)47
b(ecx)916 3018 y(push)g(eax)916 3130 y(mov)g(eax,ecx)916
3243 y(sub)g(eax,2)916 3356 y(//)g(ck)g(:)p 1298 3283
402 4 v 48 w Fy(L)20 b Fw(\000)g Fy(E)25 b Fw(\000)20
b FF(5)h(+)f(\()p 1846 3287 46 4 v(2)h(+)f Fy(b)2042
3370 y Fv(2)2081 3356 y FF(\))916 3469 y Fz(call)47 b(fib)953
b(//)47 b(Compute)f(fib\(n-2\))916 3582 y(//)h Fy(b)1098
3596 y Fv(3)1163 3582 y FF(:)25 b Fs(N)p Fz(,)48 b(rck:)p
Fw(S)7 b FF(\()p Fy(b)1701 3596 y Fv(3)1740 3582 y FF(\))916
3695 y Fz(//)47 b(ck)g(:)p 1298 3622 448 4 v 48 w Fy(L)20
b Fw(\000)g FF(2)p Fy(E)26 b Fw(\000)20 b FF(6)g(+)g(\()p
1891 3626 46 4 v(2)h(+)f Fy(b)2087 3709 y Fv(3)2127 3695
y FF(\))916 3808 y Fz(pop)47 b(ecx)916 3921 y(add)g(eax,ecx)809
b(//)47 b(eax)g(:=)h(fib\(n-1\)+fib\(n-2\))916 4034 y(//)f(ck)g(:)p
1298 3961 448 4 v 48 w Fy(L)20 b Fw(\000)g FF(2)p Fy(E)26
b Fw(\000)20 b FF(8)g(+)g(\()p 1891 3964 46 4 v(2)h(+)f
Fy(b)2087 4048 y Fv(3)2127 4034 y FF(\))916 4147 y Fz(YIELD)916
4260 y(//)47 b Fy(b)1098 4274 y Fv(4)1163 4260 y FF(:)25
b Fs(N)p Fz(,)48 b(rck:)p Fw(S)7 b FF(\()p Fy(b)1701
4274 y Fv(4)1740 4260 y FF(\))916 4372 y Fz(//)47 b(ck)g(:)p
1298 4299 62 4 v 48 w Fy(L)20 b FF(+)g(\()p 1506 4303
46 4 v(2)h(+)f Fy(b)1702 4386 y Fv(4)1741 4372 y FF(\))916
4485 y Fz(ret)1192 b(//)47 b(Return)1110 4886 y FF(Figure)31
b(16:)41 b(Fib)s(onacci)32 b(using)e(F)-8 b(eeley)32
b(P)m(olling)1905 5589 y(29)p eop
%%Page: 30 32
30 31 bop 227 68 a Fz(YIELD)o FF(\()p Fy(F)13 b FF(\))74
b(=)466 181 y Fz(//)47 b Fy(a)p Fz(:)p Fs(N)p Fz(,)h(rck:)p
Fw(S)7 b FF(\()p Fy(a)p FF(\))p Fz(,)47 b(ck:)p 1476
108 72 4 v Fy(F)32 b FF(+)20 b(\()p 1692 112 46 4 v(2)h(+)f
Fy(a)p FF(\))466 294 y Fz(subjae)46 b(rck,rck,)p FF(\()p
Fy(L)18 b Fw(\000)i Fy(F)33 b FF(+)20 b(2\))p Fz(,end)466
407 y(//)47 b(if)g(taken:)f(rck:)p Fw(S)7 b FF(\()p Fy(a)1423
374 y Ft(0)1446 407 y FF(\))p Fz(,)48 b Fy(a)73 b FF(=)f
Fy(a)1889 374 y Ft(0)1933 407 y FF(+)p 2024 334 401 4
v 20 w Fy(L)20 b Fw(\000)g Fy(F)33 b FF(+)20 b(2)48 b
Fs(true)p Fz(,)466 520 y(//)524 b(ck:)p FF(\()p 1265
447 72 4 v Fy(F)33 b FF(+)20 b Fy(a)p FF(\))26 b(=)p
1652 447 V 25 w Fy(F)33 b FF(+)p 1834 447 401 4 v 20
w Fy(L)20 b Fw(\000)g Fy(F)33 b FF(+)20 b(2)h(+)f Fy(a)2394
487 y Ft(0)2442 520 y FF(=)p 2538 447 62 4 v 25 w Fy(L)g
FF(+)g(\()p 2746 450 46 4 v(2)h(+)f Fy(a)2951 487 y Ft(0)2974
520 y FF(\))466 633 y Fz(//)47 b(otherwise:)e(rck:int,)h(ck:)p
1708 560 72 4 v Fy(F)32 b FF(+)20 b Fy(a)466 746 y Fz(yield)466
859 y(//)47 b(ck:)p 753 786 73 4 v Fy(Y)466 971 y Fz(mov)g
(rck,\(Y-L-3\))466 1084 y(//)g Fy(a)657 1051 y Ft(0)753
1084 y Fw(7!)p 917 1011 403 4 v 73 w Fy(Y)40 b Fw(\000)20
b Fy(L)g Fw(\000)g FF(3)q Fz(;)47 b(rck:)g Fw(S)7 b FF(\()p
1751 1011 V Fy(Y)40 b Fw(\000)20 b Fy(L)g Fw(\000)g FF(3)q(\))p
Fz(,)47 b(ck:)p 2428 1011 230 4 v Fy(Y)40 b Fw(\000)20
b FF(1)73 b(=)p 2874 1011 62 4 v 73 w Fy(L)20 b FF(+)g(\()p
3082 1015 46 4 v(2)h(+)f Fy(a)3287 1051 y Ft(0)3310 1084
y FF(\))227 1197 y Fz(end:)466 1310 y(//)47 b Fy(a)657
1277 y Ft(0)680 1310 y Fz(:)p Fs(N)p Fz(,)h(rck:)p Fw(S)7
b FF(\()p Fy(a)1225 1277 y Ft(0)1247 1310 y FF(\))p Fz(,)48
b(ck:)p 1522 1237 62 4 v Fy(L)20 b FF(+)f(\()p 1729 1241
46 4 v(2)i(+)f Fy(a)1934 1277 y Ft(0)1958 1310 y FF(\))1001
1606 y(Figure)31 b(17:)41 b(A)31 b(Minor)f(Yield)h(with)f
Fy(F)43 b FF(on)31 b(the)f(Clo)s(c)m(k)227 1791 y Fz(YIELD)o
FF(\()p Fy(F)s(;)15 b(R)q FF(\))74 b(=)466 1904 y Fz(//)47
b Fy(a)p Fz(:)p Fs(N)p Fz(,)h(rck:)p Fw(S)7 b FF(\()p
Fy(a)p FF(\))p Fz(,)47 b(ck:)p 1476 1831 72 4 v Fy(F)32
b FF(+)20 b(\()p 1692 1835 46 4 v(2)h(+)f Fy(a)p FF(\))466
2017 y Fz(subjae)46 b(rck,rck,)p FF(\()p Fy(R)19 b Fw(\000)h
Fy(F)33 b FF(+)20 b(2\))p Fz(,end)466 2130 y(//)47 b(if)g(taken:)f
(rck:)p Fw(S)7 b FF(\()p Fy(a)1423 2097 y Ft(0)1446 2130
y FF(\))p Fz(,)48 b Fy(a)73 b FF(=)f Fy(a)1889 2097 y
Ft(0)1933 2130 y FF(+)p 2024 2057 409 4 v 20 w Fy(R)21
b Fw(\000)f Fy(F)33 b FF(+)20 b(2)48 b Fs(true)p Fz(,)466
2243 y(//)524 b(ck:)p FF(\()p 1265 2170 72 4 v Fy(F)33
b FF(+)20 b Fy(a)p FF(\))26 b(=)p 1652 2170 V 25 w Fy(F)33
b FF(+)p 1834 2170 409 4 v 20 w Fy(R)21 b Fw(\000)f Fy(F)33
b FF(+)20 b(2)h(+)f Fy(a)2402 2210 y Ft(0)2450 2243 y
FF(=)p 2546 2170 70 4 v 25 w Fy(R)h FF(+)f(\()p 2762
2173 46 4 v(2)h(+)f Fy(a)2967 2210 y Ft(0)2990 2243 y
FF(\))466 2356 y Fz(//)47 b(otherwise:)e(rck:int,)h(ck:)p
1708 2283 72 4 v Fy(F)32 b FF(+)20 b Fy(a)466 2469 y
Fz(yield)466 2582 y(//)47 b(ck:)p 753 2509 73 4 v Fy(Y)466
2695 y Fz(mov)g(rck,\(Y-F-3\))466 2807 y(//)g Fy(a)657
2774 y Ft(0)753 2807 y Fw(7!)p 917 2734 411 4 v 73 w
Fy(Y)40 b Fw(\000)20 b Fy(R)h Fw(\000)f FF(3)q Fz(;)47
b(rck:)g Fw(S)7 b FF(\()p 1759 2734 V Fy(Y)40 b Fw(\000)20
b Fy(R)h Fw(\000)f FF(3\))p Fz(,)48 b(ck:)p 2444 2734
230 4 v Fy(Y)40 b Fw(\000)19 b FF(1)74 b(=)p 2890 2734
70 4 v 73 w Fy(R)21 b FF(+)e(\()p 3105 2738 46 4 v(2)i(+)f
Fy(a)3310 2774 y Ft(0)3334 2807 y FF(\))227 2920 y Fz(end:)466
3033 y(//)47 b Fy(a)657 3000 y Ft(0)680 3033 y Fz(:)p
Fs(N)p Fz(,)h(rck:)p Fw(S)7 b FF(\()p Fy(a)1225 3000
y Ft(0)1247 3033 y FF(\))p Fz(,)48 b(ck:)p 1522 2960
70 4 v Fy(R)20 b FF(+)g(\()p 1737 2964 46 4 v(2)h(+)f
Fy(a)1942 3000 y Ft(0)1966 3033 y FF(\))1056 3329 y(Figure)31
b(18:)41 b(Resetting)32 b(the)f(Clo)s(c)m(k)g(from)f
Fy(F)43 b FF(to)31 b Fy(R)0 3604 y FF(returns)c(with)h
Fy(a)g FF(on)g(the)h(minor)f(clo)s(c)m(k.)41 b(Notice)30
b(also)g(that)f(the)f(function)g(ma)m(y)h(c)m(hange)g(the)g(v)-5
b(alue)29 b(of)f(the)h(clo)s(c)m(k)0 3717 y(register;)46
b(the)40 b(co)s(de)g(at)g(the)g(return)f(address)g(m)m(ust)g(b)s(e)h(w)
m(ell-t)m(yp)s(ed)g(for)g(an)m(y)g(p)s(ossible)g(v)-5
b(alue)40 b(on)g(the)g(clo)s(c)m(k)0 3830 y(register,)31
b(assuming)e(only)h(the)g(relationship)g(b)s(et)m(w)m(een)h(the)f
(register)g(and)f(the)h(virtual)g(clo)s(c)m(k)i(that)e(de\014nes)f(the)
0 3943 y(minor)h(clo)s(c)m(k.)141 4055 y(Figure)h(16)h(sho)m(ws)e(the)h
(Fib)s(onacci)h(function)e(from)g(Figure)h(14)h(implemen)m(ted)f(with)f
(F)-8 b(eeley)33 b(p)s(olling.)42 b(This)0 4168 y(new)27
b(function)h(has)f(the)h(t)m(yp)s(e)g(giv)m(en)h(ab)s(o)m(v)m(e,)h(and)
d(its)h(co)s(de)g(is)g(exactly)i(the)e(same)g(except)g(that)h
Fz(yield)d FF(instruc-)0 4281 y(tions)34 b(ha)m(v)m(e)h(b)s(een)e
(replaced)i(b)m(y)e(the)h Fz(YIELD)f FF(macro.)51 b(Notice)36
b(that)e(ev)m(ery)h Fz(YIELD)o FF(,)f(and)g(ev)m(ery)g(recursiv)m(e)g
(call,)0 4394 y(ma)m(y)d(c)m(hange)g(the)g(v)-5 b(alue)31
b(of)f(the)h(clo)s(c)m(k)h(register.)0 4634 y FE(T)-9
b(ric)m(ks)29 b(With)e(P)m(olling)93 b FF(In)23 b(addition)i(to)g
(reducing)e(the)i(di\013erence)f(b)s(et)m(w)m(een)h(the)g(\\yield")g(p)
s(erio)s(d)e(and)h(basic)0 4747 y(blo)s(c)m(k)34 b(size,)h(p)s(olling)e
(allo)m(ws)h(more)g(precision)f(than)g(ordinary)g(yielding)g(b)s
(ecause)g(one)h(has)f(con)m(trol)h(o)m(v)m(er)h(ho)m(w)0
4860 y(m)m(uc)m(h)k(the)g(clo)s(c)m(k)h(register)f(is)g(decremen)m(ted)
g(with)f(ev)m(ery)i(minor)e(yield.)66 b(F)-8 b(or)39
b(example,)j(it)d(seems)g(to)g(o)s(ccur)0 4973 y(frequen)m(tly)31
b(that)h(a)f(yield)h(m)m(ust)f(b)s(e)f(placed)i(at)g(a)f(lo)s(cation)i
(where)e(there)g(is)g(kno)m(wn)g(to)g(b)s(e)g(some)g(time)h(left)g(on)0
5086 y(the)f(clo)s(c)m(k.)42 b(In)29 b(an)i(explicit)g(p)s(olling)g(sc)
m(heme,)g(one)g(can)f(tak)m(e)i(adv)-5 b(an)m(tage)33
b(of)d(this)g(b)m(y)h(decremen)m(ting)g(the)g(clo)s(c)m(k)0
5199 y(register)36 b(b)m(y)f(a)h(smaller)f(amoun)m(t|in)g(e\013ect,)j
(sa)m(ving)f(the)e(un)m(used)f(cycles)i(so)f(that)h(they)f(can)h(b)s(e)
e(used)h(later.)0 5312 y(The)30 b(co)s(de)g(in)h(Figure)f(17)i
(illustrates)f(this.)1905 5589 y(30)p eop
%%Page: 31 33
31 32 bop 141 91 a FF(Of)29 b(course,)h(it)g(is)g(also)h(p)s(ossible)e
(to)h(decremen)m(t)g(the)g(clo)s(c)m(k)h(register)g(b)m(y)e
FB(mor)-5 b(e)38 b FF(than)29 b Fy(L)19 b FF(+)f(2.)41
b(In)29 b(fact,)i(there)0 204 y(is)d(no)g(reason)g(at)h(all)g(that)g
(the)f(minor)g(clo)s(c)m(k)h(m)m(ust)f(b)s(e)g(reset)g(to)h
Fy(L)f FF(at)h(ev)m(ery)g(minor)e(yield;)j(if)e(one)g(\014nds)e
(oneself)0 317 y(at)g(the)f(b)s(eginning)f(of)i(a)f(basic)h(blo)s(c)m
(k)f(that)h(is)f(of)g(length)h Fy(R)f FF(\(where)g Fy(R)h
Fw(\024)f Fy(Y)30 b Fw(\000)10 b FF(3\),)26 b(then)f(one)g(can)h
(subtract)f Fy(R)10 b FF(+)g(2)0 430 y(from)28 b Fz(rck)g
FF(and)h(set)g(the)g(minor)g(clo)s(c)m(k)h(to)g(exactly)g(what)f(the)g
(curren)m(t)g(blo)s(c)m(k)g(requires.)40 b(This)28 b(is)h(accomplished)
0 543 y(b)m(y)38 b(the)g(co)s(de)g(sequence)h Fz(YIELD)n
FF(\()p Fy(F)s(;)15 b(R)q FF(\))39 b(de\014ned)e(in)h(Figure)g(18.)65
b(Note)39 b(that)g(the)f(\014rst)f(t)m(w)m(o)j(forms)d(of)h(minor)0
656 y(yield)30 b(are)g(really)h(sp)s(ecial)f(cases)h(of)f(this)g(last)g
(one:)41 b Fz(YIELD)o FF(\()p Fy(F)13 b FF(\))30 b(is)g(simply)f
Fz(YIELD)o FF(\()p Fy(F)s(;)15 b(L)p FF(\),)31 b(and)e(the)h
Fz(YIELD)e FF(from)0 769 y(Figure)40 b(15)g(is)f Fz(YIELD)o
FF(\(0)p Fy(;)15 b(L)p FF(\).)68 b(The)39 b(formal)g(translation)h(in)f
(the)g(next)h(section)g(will)g(use)e(the)i(t)m(w)m(o-argumen)m(t)0
882 y(notation)32 b(exclusiv)m(ely)-8 b(.)141 995 y(Using)24
b(this)f(precise)h(minor)e(yield)i(in)f(conjunction)g(with)g
(yield-on-jump)g(and)g(call-return)h(yield)f(placemen)m(t)0
1108 y(strategies)31 b(results)d(in)g(a)h(p)s(olling)g(strategy)h(that)
g(w)m(e)f(ma)m(y)g(call)h FB(pr)-5 b(e)g(cise)32 b(yield-on-jump)p
FF(.)41 b(Under)27 b(this)i(strategy)-8 b(,)0 1220 y(ev)m(ery)25
b(basic)g(blo)s(c)m(k)f(in)g(the)h(program)e(b)s(egins)h(with)g(a)h
(minor)e(yield)i(that)g(\\reserv)m(es")g(exactly)h(the)e(righ)m(t)h(n)m
(um)m(b)s(er)0 1333 y(of)34 b(minor)f(clo)s(c)m(k)j(cycles)f(for)f
(that)g(blo)s(c)m(k.)52 b(While)35 b(this)e(do)s(es)h(in)m(tro)s(duce)g
(more)g(minor)f(yields)h(than)g(w)m(ould)g(b)s(e)0 1446
y(needed)29 b(under,)g(sa)m(y)-8 b(,)31 b(forw)m(ard)e(propagation)h
(and)f(F)-8 b(eeley)32 b(p)s(olling,)e(it)g(eliminates)h(all)f(of)g
(the)f(error)g(asso)s(ciated)0 1559 y(with)j(join)h(p)s(oin)m(ts.)47
b(The)33 b(only)f(\\lost)i(cycles")h(no)m(w)d(o)s(ccur)h(at)g(ma)5
b(jor)33 b(yields.)48 b(A)32 b(ma)5 b(jor)33 b(yield)g(happ)s(ens)e
(when)0 1672 y(the)38 b(cycles)i(remaining)e(on)h(the)f(virtual)h(clo)s
(c)m(k)h(\(there)e(will)h(nearly)f(alw)m(a)m(ys)i(b)s(e)e(some)h
(left\))g(are)g(insu\016cien)m(t)0 1785 y(for)30 b(the)h(curren)m(t)g
(basic)g(blo)s(c)m(k;)g(these)g(left-o)m(v)m(er)i(cycles)f(cannot)f(b)s
(e)f(used,)h(but)e(the)i(w)m(aste)h(is)f(b)s(ounded)d(b)m(y)j(the)0
1898 y(length)26 b(of)g(the)h(longest)g(basic)f(blo)s(c)m(k)h(in)e(the)
h(program.)39 b(It)27 b(w)m(ould)e(b)s(e)h(in)m(teresting)h(to)g(in)m
(v)m(estigate)i(the)d(trade-o\013)0 2011 y(b)s(et)m(w)m(een)31
b(precision)g(and)e(time)i(sp)s(en)m(t)f(on)h(p)s(olling.)0
2254 y FA(4.2)112 b(Compilation)39 b(of)f(Lilt)0 2426
y FF(In)27 b(this)g(section,)j(w)m(e)e(will)g(\014nally)g(giv)m(e)h(a)f
(formal)g(translation)h(from)e(Lilt)h(to)g(BT)-8 b(AL)g(T-R.)29
b(The)e(purp)s(ose)f(of)i(this)0 2539 y(formal)35 b(translation)h(is)e
(t)m(w)m(ofold.)55 b(First,)37 b(since)e(it)g(relates)h(an)m(y)f(w)m
(ell-t)m(yp)s(ed)h(Lilt)f(program)f(to)i(an)e(equiv)-5
b(alen)m(t)0 2652 y(assem)m(bly)24 b(language)g(program,)h(it)e(resolv)
m(es)i(an)m(y)e(am)m(biguitiy)i(there)e(ma)m(y)h(ha)m(v)m(e)g(b)s(een)f
(in)f(our)h(prose)g(description)0 2765 y(of)35 b(the)f(seman)m(tics)i
(of)e(Lilt)h(language)h(constructs.)53 b(\(Of)34 b(course,)i(giving)f
(an)f(op)s(erational)i(seman)m(tics)f(for)f(Lilt)0 2877
y(directly)i(w)m(ould)f(ha)m(v)m(e)h(serv)m(ed)f(the)h(same)f(need.\))
56 b(Second,)36 b(and)e(more)i(imp)s(ortan)m(tly)-8 b(,)37
b(it)f(allo)m(ws)g(us)f(to)h(argue)0 2990 y(that)31 b(the)g(t)m(yp)s(e)
f(system)h(w)m(e)g(prop)s(ose)f(for)g(BT)-8 b(AL)g(T-R)31
b(is)g(su\016cien)m(tly)g(general)h(to)f(supp)s(ort)e(all)i(the)g
(constructs)0 3103 y(and)d(idioms)g(of)g(a)h(t)m(ypical)g(\(high-lev)m
(el\))i(programming)d(language.)41 b(In)28 b(particular,)h(it)f
(demonstrates)h(that)g(the)0 3216 y(p)s(olling)h(tec)m(hnique)h(w)m(e)g
(describ)s(ed)d(in)i(Section)h(4.1.5)h(is)e(\015exible)g(enough)g(that)
h(resource)f(b)s(ound)e(certi\014cation)0 3329 y(need)i(not)h(get)g(in)
f(the)h(programmer's)f(w)m(a)m(y)-8 b(.)141 3442 y(The)37
b(translation)i(w)m(e)f(giv)m(e)h(here)e(uses)h(F)-8
b(eeley)39 b(p)s(olling)f(for)f(global)i(yield)f(placemen)m(t,)j(but)c
(is)h(nondeter-)0 3555 y(ministic)f(with)e(resp)s(ect)h(to)h(lo)s(cal)g
(yield)f(placemen)m(t.)59 b(In)35 b(other)h(w)m(ords,)i(there)e(are)g
(man)m(y)g(di\013eren)m(t)g(w)m(a)m(ys)h(to)0 3668 y(translate)d(an)m
(y)f(Lilt)g(function,)g(di\013ering)g(in)f(the)h(n)m(um)m(b)s(er)e(and)
h(lo)s(cation)i(of)f(minor)f(yields)h(in)f(the)h(BT)-8
b(AL)g(T-R)0 3781 y(co)s(de.)39 b(An)23 b(actual)j(implemen)m(tation)f
(of)f(this)g(translation,)j(suc)m(h)c(as)i(the)f(one)g(w)m(e)g(plan)g
(to)h(create,)i(w)m(ould)d(resolv)m(e)0 3894 y(the)31
b(nondeterminism)e(using)h(a)h(heuristic)f(suc)m(h)g(as)h(the)f(ones)h
(w)m(e)g(ha)m(v)m(e)g(already)g(describ)s(ed.)141 4007
y(Although)36 b(the)g(implications)i(of)e(p)s(olling)g(are)g(the)g
(main)g(p)s(oin)m(t)g(of)g(this)g(pap)s(er,)h(the)f(formal)g
(translation)0 4120 y(w)m(e)c(giv)m(e)g(in)f(this)g(section)h
(addresses)e FB(al)5 b(l)41 b FF(asp)s(ects)32 b(of)f(t)m(yp)s
(e-directed)h(compilation)h(of)e(Lilt.)43 b(In)31 b(particular,)g(w)m
(e)0 4232 y(giv)m(e)h(a)e(complete)i(translation)f(from)f(Lilt)h(t)m
(yp)s(es)f(to)h(T)-8 b(AL)g(T-R)30 b(t)m(yp)s(es,)h(and)f(w)m(e)g(sho)m
(w)g(ho)m(w)h(to)f(compile)i(all)f(the)0 4345 y(primitiv)m(e)g(op)s
(erations)g(of)f(Lilt.)42 b(This)29 b(mak)m(es)i(the)g(translation)g
(as)g(a)f(whole)h(rather)f(tec)m(hnical.)43 b(Before)31
b(giving)0 4458 y(the)e(translation)h(rules)f(themselv)m(es,)i
(therefore,)f(w)m(e)f(m)m(ust)g(tak)m(e)i(some)e(time)h(to)g(in)m(tro)s
(duce)e(some)i(con)m(v)m(en)m(tions)0 4571 y(and)g(notation.)0
4811 y FE(4.2.1)105 b(T)m(yp)s(e-Directedness)0 4983
y FF(F)-8 b(ormal)39 b(translations)g(b)s(et)m(w)m(een)f(languages)h
(generally)g(come)g(in)f(t)m(w)m(o)h(\015a)m(v)m(ors:)56
b(syn)m(tax-directed)39 b(and)e(t)m(yp)s(e-)0 5096 y(directed.)76
b(Syn)m(tax-directed)43 b(translations)g(are)g(the)f(more)g(na)-10
b(\177)-35 b(\020v)m(e)43 b(v)-5 b(ariet)m(y:)66 b(they)42
b(are)g(de\014ned)f(recursiv)m(ely)0 5209 y(\(that)33
b(is,)g(b)m(y)f(induction\))g(o)m(v)m(er)h(the)g(syn)m(tax)f(of)g(the)h
(source)f(language,)i(generally)g(using)d(little)j(or)e(no)g(con)m
(text)0 5322 y(information.)75 b(A)42 b(syn)m(tax-directed)i
(translation)e(usually)g(applies)g(to)h(an)m(y)f(term,)j(w)m(ell-t)m
(yp)s(ed)e(or)f(not;)48 b(the)1905 5589 y(31)p eop
%%Page: 32 34
32 33 bop 0 91 a FF(static)39 b(correctness)f(theorem)g(for)f(the)g
(translation)i(states)f(that)g(if)f(a)h(source)f(term)h(is)f(w)m(ell-t)
m(yp)s(ed,)k(then)c(its)0 204 y(translation)k(is)f(w)m(ell-t)m(yp)s
(ed.)71 b(On)39 b(the)h(other)h(hand,)g(t)m(yp)s(e-directed)g
(translations)g(are)g(\(roughly)f(sp)s(eaking\))0 317
y(de\014ned)g(b)m(y)i(inference)g(rules)f(that)i(are)f(constructed)g
(to)g(closely)i(mirror)d(the)g(t)m(yping)i(rules)e(of)h(the)g(source)0
430 y(language;)c(they)c(are)h(often)f(though)m(t)h(of)g(as)f(b)s(eing)
g(de\014ned)f(b)m(y)h(induction)g(o)m(v)m(er)h(t)m(yping)g(deriv)-5
b(ations,)36 b(rather)0 543 y(than)f(o)m(v)m(er)h(terms.)54
b(Because)36 b(of)f(this,)h(it)g(is)e(usually)h(v)m(ery)g(easy)h(to)f
(pro)m(v)m(e)h(that)f(a)h(term)f(ma)m(y)g(b)s(e)f(translated)0
656 y(if)39 b(and)f(only)h(if)g(it)h(is)f(w)m(ell-t)m(yp)s(ed,)j(and)d
(not)g(v)m(ery)g(di\016cult)g(in)g(principle)f(to)i(pro)m(v)m(e)g(that)
g(its)f(translation)h(is)0 769 y(w)m(ell-t)m(yp)s(ed)31
b(in)f(the)h(target)h(language.)141 882 y(Although)44
b(a)g(syn)m(tax-directed)h(translation)g(is)f(often)g(simpler)g(to)g
(de\014ne)f(and)g(implemen)m(t,)49 b(there)44 b(are)0
995 y(man)m(y)38 b(cases)g(where)f(it)h(simply)f(do)s(es)g(not)h(mak)m
(e)g(sense)g(to)g(use)f(one.)63 b(F)-8 b(or)38 b(instance,)i(if)d(the)h
(w)m(a)m(y)g(a)g(term)g(is)0 1108 y(translated)e(ev)m(er)g(dep)s(ends)d
(on)i(the)g(t)m(yp)s(e)h(of)f(one)g(of)h(its)f(subterms,)h(then)e(it)i
(is)f(usually)g(advisable)h(to)g(de\014ne)0 1220 y(the)41
b(translation)h(b)m(y)f(induction)g(on)g(t)m(yping)g(rather)g(than)g
(syn)m(tax.)73 b(T)m(yp)s(e-directed)41 b(translations)h(are)f(also)0
1333 y(called)e(for)e(when)g(the)g(target)i(language)g(is)f(explicitly)
h(t)m(yp)s(ed,)g(particularly)f(if)g(the)f(target)i(requires)e(t)m
(yping)0 1446 y(annotations)k(in)f(places)h(where)f(the)g(source)h
(language)g(do)s(es)f(not.)71 b(This)39 b(latter)j(case)f(clearly)g
(arises)g(when)0 1559 y(translating)34 b(a)g(t)m(yp)s(ed)f(language)h
(lik)m(e)h(Lilt)f(in)m(to)g(explicitly-t)m(yp)s(ed)h(assem)m(bly)f
(language:)48 b(the)33 b(assem)m(bly)h(co)s(de)0 1672
y(for,)i(sa)m(y)-8 b(,)37 b(a)e(conditional)i(statemen)m(t)f(will)f
(con)m(tain)i(at)e(least)h(one)f(lab)s(el,)i(whic)m(h)d(m)m(ust)h(b)s
(e)f(annotated)i(with)f(a)0 1785 y(t)m(yp)s(e)c(ev)m(en)g(though)f(the)
g(relev)-5 b(an)m(t)32 b(t)m(yping)f(information)f(is)h(not)f
(explicitly)i(presen)m(t)f(in)f(the)g(source)h(program.)141
1898 y(It)d(ma)m(y)h(b)s(e)f(a)g(little)i(surprising,)e(then,)g(that)h
(Lilt)g(ma)m(y)f(\(w)m(e)i(conjecture\))f(b)s(e)e(translated)i(to)g(BT)
-8 b(AL)g(T-R)29 b(b)m(y)0 2011 y(a)e(syn)m(tax-directed)i
(translation.)40 b(This)27 b(is)g(so)g(b)s(ecause)g(BT)-8
b(AL)g(T-R)28 b(\(as)g(opp)s(osed)e(to)i(XT)-8 b(AL)g(T-R\))28
b(is)f(implicitly)0 2124 y(t)m(yp)s(ed,)c(so)f(the)g(translation)g(do)s
(es)f(not)h(ha)m(v)m(e)h(to)f(generate)h(an)m(y)f(t)m(yping)f
(annotations.)39 b(F)-8 b(urthermore,)24 b(it)e(happ)s(ens)0
2237 y(to)36 b(b)s(e)f(the)g(case)i(that)f(the)f(\(concrete\))j(mac)m
(hine)e(instructions)f(implemen)m(ting)h(an)m(y)g(Lilt)g(expression)f
(can)h(b)s(e)0 2350 y(computed)d(indep)s(enden)m(tly)g(of)h(the)g(t)m
(yp)s(es)f(of)h(an)m(y)g(of)g(its)g(subterms.)49 b(Ho)m(w)m(ev)m(er,)37
b(the)c(translation)i(w)m(e)f(giv)m(e)h(in)0 2462 y(this)27
b(section)h(is)g(supp)s(osed)d(to)j(b)s(e)e(the)i(basis)f(for)g(the)g
(one)h(w)m(e)f(plan)g(to)h(implemen)m(t,)h(and)e(that)g(implemen)m
(tation)0 2575 y(m)m(ust)32 b(target)i(XT)-8 b(AL)g(T-R,)32
b(not)h(BT)-8 b(AL)g(T-R;)33 b(b)s(ecause)f(of)g(the)g(explicit)h(t)m
(yping)g(annotations)g(\(and)f(co)s(ercions\))0 2688
y(needed)23 b(in)h(XT)-8 b(AL)g(T-R,)24 b(our)f(actual)i(Lilt)f
(compiler)g(m)m(ust)g(b)s(e)f(t)m(yp)s(e-directed.)39
b(Therefore,)25 b(w)m(e)f(will)g(giv)m(e)h(a)f(t)m(yp)s(e-)0
2801 y(directed)35 b(translation)g(in)e(this)i(pap)s(er)e(ev)m(en)h
(though)g(doing)h(so)f(renders)f(the)h(presen)m(tation)h(a)g(go)s(o)s
(d)f(deal)h(less)0 2914 y(concise.)42 b(W)-8 b(e)32 b(will)f(use)f(the)
g(con)m(text)j(and)d(t)m(yping)h(information)f(a)m(v)-5
b(ailable)33 b(in)d(the)h(setting)h(of)e(a)h(t)m(yp)s(e-directed)0
3027 y(translation)e(to)g(annotate)g(the)f(BT)-8 b(AL)g(T-R)29
b(output)f(with)f(t)m(yping)i(information)f(for)g(lab)s(els,)h(ev)m(en)
g(though)e(suc)m(h)0 3140 y(annotations)d(are)g(not)f(o\016cially)i
(part)e(of)h(BT)-8 b(AL)g(T-R.)24 b(This)e(will)i(hop)s(efully)e(help)h
(mak)m(e)h(the)g(in)m(tended)f(meaning)0 3253 y(of)31
b(the)f(generated)h(co)s(de)g(more)g(clear.)0 3485 y
FE(4.2.2)105 b(V)-9 b(ariable)35 b(Naming)0 3657 y FF(F)-8
b(or)28 b(the)f(purp)s(oses)f(of)h(our)g(translation)h(from)f(Lilt)h
(to)g(T)-8 b(AL)g(T,)27 b(w)m(e)h(will)f(mak)m(e)i(some)e(assumptions)g
(ab)s(out)g(lo)s(cal)0 3770 y(v)-5 b(ariable)31 b(names.)41
b(First,)31 b(w)m(e)g(assume)f(that)h(lo)s(cal)g(v)-5
b(ariable)32 b(names)e(ha)m(v)m(e)h(the)g(follo)m(wing)h(syn)m(tax:)
1560 3926 y Fy(s)25 b FF(::=)g Fz(arg)o FF(\()p Fy(i)p
FF(\))i Fw(j)e Fz(loc)o FF(\()p Fy(i)p FF(\))0 4082 y(Second,)34
b(w)m(e)f(assume)g(that)h(the)f(con)m(text)i(sp)s(ecifying)e(a)g
(function's)g(formal)g(parameters)h(has)e(the)i(form)e(\000)3758
4096 y Fx(a)3829 4082 y FF(=)0 4195 y([)p Fz(arg)o FF(\(1\):)p
Fy(\034)348 4209 y Fv(1)389 4195 y Fy(;)15 b(:)g(:)g(:)i(;)e
Fz(arg)o FF(\()p Fy(m)p FF(\):)p Fy(\034)949 4209 y Fx(m)1016
4195 y FF(])27 b(and)e(that)i(the)f(list)h(of)f(lo)s(cal)i(v)-5
b(ariables)26 b(declared)h(b)m(y)f(the)g(function's)g(en)m(try)g(blo)s
(c)m(k)0 4308 y(is)k(alw)m(a)m(ys)h Fz(loc)o FF(\(1\))p
Fy(;)15 b(:)g(:)g(:)j(;)d Fz(loc)p FF(\()p Fy(n)p FF(\).)40
b(Note)31 b(that)g(w)m(e)f(mak)m(e)g(these)h(assumptions)e(without)g
(an)m(y)h(loss)g(of)g(generalit)m(y)-8 b(,)0 4421 y(since)30
b(an)m(y)h(Lilt)f(function)g(ma)m(y)h(b)s(e)e Fy(\013)p
FF(-v)-5 b(aried)31 b(in)m(to)g(this)f(form.)40 b(With)30
b(these)h(con)m(v)m(en)m(tions)h(in)d(place,)j(the)e(name)0
4533 y(of)24 b(a)g(lo)s(cal)h(storage)g(lo)s(cation)g
Fy(s)e FF(iden)m(ti\014es)h(it)g(as)g(either)g(a)g(function)f(argumen)m
(t)h(or)g(a)g(lo)s(cal)h(v)-5 b(ariable,)26 b(and)d(w)m(e)h(will)0
4646 y(sho)m(w)i(shortly)f(ho)m(w)h(the)g(T)-8 b(AL)g(T)26
b(op)s(erand)f(or)g(destination)i(corresp)s(onding)e(to)h(a)g(lo)s
(cation)i(ma)m(y)e(b)s(e)f(determined)0 4759 y(based)i(on)g(its)h
(name.)40 b(F)-8 b(urthermore,)28 b(it)g(is)f(no)h(longer)f(necessary)h
(to)g(write)g(the)f(names)h(of)f(the)h(argumen)m(ts)g(and)0
4872 y(lo)s(cal)k(v)-5 b(ariables)31 b(where)f(they)g(are)h(declared)g
(at)g(the)f(start)h(of)g(the)f(function,)h(so)f(to)h(sa)m(v)m(e)h
(space)f(w)m(e)g(will)g(write)779 5028 y Fz(func)o FF(\(\001;)15
b([)p Fy(\034)1186 5042 y Fv(1)1226 5028 y Fy(;)g(:)g(:)g(:)h(;)f(\034)
1467 5042 y Fx(A)1525 5028 y FF(];)g Fy(\034)10 b FF(\))p
Fy(:)p FF(\()p Fz(enter)p FF(\()p Fy(L)p FF(\))p Fy(:e;)15
b(`)2252 5042 y Fv(1)2318 5028 y FF(=)25 b Fy(B)2483
5042 y Fv(1)2522 5028 y Fy(;)15 b(:)g(:)g(:)i(;)e(`)2762
5042 y Fx(m)2854 5028 y FF(=)25 b Fy(B)3019 5042 y Fx(m)3086
5028 y FF(\))0 5184 y(instead)31 b(of)145 5340 y Fz(func)o
FF(\(\001;)15 b([)p Fz(arg)p FF(\(1\):)p Fy(\034)836
5354 y Fv(1)877 5340 y Fy(;)g(:)g(:)g(:)i(;)e Fz(arg)o
FF(\()p Fy(A)p FF(\):)p Fy(\034)1425 5354 y Fx(A)1483
5340 y FF(];)g Fy(\034)10 b FF(\))p Fy(:)p FF(\()p Fz(enter)p
FF(\()p Fz(loc)p FF(\(1\))p Fy(;)15 b(:)g(:)g(:)j(;)d
Fz(loc)o FF(\()p Fy(L)p FF(\)\))p Fy(:e;)g(`)2885 5354
y Fv(1)2952 5340 y FF(=)25 b Fy(B)3117 5354 y Fv(1)3156
5340 y Fy(;)15 b(:)g(:)g(:)i(;)e(`)3396 5354 y Fx(m)3488
5340 y FF(=)25 b Fy(B)3653 5354 y Fx(m)3719 5340 y FF(\))1905
5589 y(32)p eop
%%Page: 33 35
33 34 bop 1162 204 a Fw(j)p Fy(T)13 b Fw(j)83 b FF(=)g
Fs(T)p FF(4)913 342 y Fw(j)p Fy(k)985 356 y Fv(1)1050
342 y Fw(!)25 b Fy(k)1213 356 y Fv(2)1253 342 y Fw(j)83
b FF(=)g Fw(j)p Fy(k)1587 356 y Fv(1)1627 342 y Fw(j)25
b(!)g(j)p Fy(k)1865 356 y Fv(2)1905 342 y Fw(j)1169 618
y(j)p Fy(\013)p Fw(j)84 b FF(=)f Fy(\013)1084 756 y Fw(j)p
Fz(int)p Fw(j)g FF(=)g Fz(B4)1037 893 y Fw(j)p Fz(bool)o
Fw(j)g FF(=)g Fz(B4)1037 1031 y Fw(j)p Fz(unit)o Fw(j)g
FF(=)g Fz(B4)789 1169 y Fw(jh)p Fy(\034)889 1183 y Fv(1)929
1169 y Fy(;)15 b(:)g(:)g(:)h(;)f(\034)1170 1183 y Fx(n)1217
1169 y Fw(ij)84 b FF(=)f Fz(mbox)o FF(\()p Fw(j)p Fy(\034)1806
1183 y Fv(1)1845 1169 y Fw(j)21 b(\002)f(\001)15 b(\001)g(\001)21
b(\002)f(j)p Fy(\034)2264 1183 y Fx(n)2311 1169 y Fw(j)p
FF(\))610 1307 y Fw(j)p FF([)p Fy(i)691 1321 y Fv(1)731
1307 y FF(:)p Fy(\034)796 1321 y Fv(1)835 1307 y Fy(;)15
b(:)g(:)g(:)i(;)e(i)1068 1321 y Fx(n)1116 1307 y FF(:)p
Fy(\034)1181 1321 y Fx(n)1227 1307 y FF(])p Fw(j)84 b
FF(=)f Fz(box)o FF(\()p Fz(set)1836 1321 y Fv(=)1895
1307 y FF(\()p Fy(i)1961 1321 y Fv(1)2002 1307 y FF(\))20
b Fw(\002)g(j)p Fy(\034)2213 1321 y Fv(1)2252 1307 y
Fw(j)p FF(\))h Fw(_)f(\001)15 b(\001)g(\001)21 b(_)f
Fz(box)o FF(\()p Fz(set)2943 1321 y Fv(=)3002 1307 y
FF(\()p Fy(i)3068 1321 y Fx(n)3116 1307 y FF(\))g Fw(\002)g(j)p
Fy(\034)3327 1321 y Fx(n)3374 1307 y Fw(j)p FF(\))909
1445 y Fw(j)p Fy(\034)40 b Fz(array)o Fw(j)83 b FF(=)g
Fw(9)p Fy(\013)p FF(:)p Fs(W)m(o)m(rd)q Fy(:)p Fz(box)p
FF(\()p Fz(set)2200 1459 y Fv(=)2259 1445 y FF(\()p Fy(\013)p
FF(\))22 b Fw(\002)e Fz(mbox)o FF(\()p Fw(j)p Fy(\034)10
b Fw(j)26 b(")f Fy(\013)p FF(\)\))465 1582 y Fw(j8)p
Fy(\013)599 1596 y Fv(1)639 1582 y FF(:)p Fy(k)711 1596
y Fv(1)751 1582 y Fy(;)15 b(:)g(:)g(:)h(;)f(\013)1010
1596 y Fx(n)1058 1582 y FF(:)p Fy(k)1130 1596 y Fx(n)1177
1582 y Fy(:\034)10 b Fw(j)84 b FF(=)f Fw(8)p Fy(\013)1624
1596 y Fv(1)1663 1582 y FF(:)p Fw(j)p Fy(k)1760 1596
y Fv(1)1800 1582 y Fw(j)p Fy(:)15 b(:)g(:)g(:)i Fw(8)p
Fy(\013)2096 1596 y Fx(n)2143 1582 y FF(:)p Fw(j)p Fy(k)2240
1596 y Fx(n)2287 1582 y Fw(j)p Fy(:)p Fw(j)p Fy(\034)10
b Fw(j)465 1720 y(j9)p Fy(\013)599 1734 y Fv(1)639 1720
y FF(:)p Fy(k)711 1734 y Fv(1)751 1720 y Fy(;)15 b(:)g(:)g(:)h(;)f
(\013)1010 1734 y Fx(n)1058 1720 y FF(:)p Fy(k)1130 1734
y Fx(n)1177 1720 y Fy(:\034)10 b Fw(j)84 b FF(=)f Fw(9)p
Fy(\013)1624 1734 y Fv(1)1663 1720 y FF(:)p Fw(j)p Fy(k)1760
1734 y Fv(1)1800 1720 y Fw(j)p Fy(:)15 b(:)g(:)g(:)i
Fw(9)p Fy(\013)2096 1734 y Fx(n)2143 1720 y FF(:)p Fw(j)p
Fy(k)2240 1734 y Fx(n)2287 1720 y Fw(j)p Fy(:)p Fw(j)p
Fy(\034)10 b Fw(j)976 1858 y(j)p Fy(\025\013)p FF(:)p
Fy(k)s(:c)p Fw(j)85 b FF(=)e Fy(\025\013)p FF(:)p Fw(j)p
Fy(k)s Fw(j)p Fy(:)p Fw(j)p Fy(c)p Fw(j)1055 1996 y(j)p
Fy(c)1119 2010 y Fv(1)1174 1996 y Fy(c)1213 2010 y Fv(2)1253
1996 y Fw(j)g FF(=)g Fw(j)p Fy(c)1579 2010 y Fv(1)1619
1996 y Fw(j)15 b(j)p Fy(c)1723 2010 y Fv(2)1763 1996
y Fw(j)630 2283 y FF(Figure)31 b(19:)41 b(T)-8 b(ranslation)31
b(of)g(kinds)e(and)h(t)m(yp)s(es)h(\(except)g(function)f(t)m(yp)s(es\))
0 2562 y(when)f(w)m(e)i(de\014ne)f(the)g(translation.)0
2802 y FE(4.2.3)105 b(T)m(yp)s(es)35 b(and)g(Data)g(Represen)m(tation)0
2973 y FF(The)26 b(translation)g(of)h(Lilt)f(kinds)f(and)h(t)m(yp)s(e)g
(constructors)g(is)g(de\014ned)f(in)h(Figures)g(19)h(and)e(20.)40
b(The)26 b(translation)0 3086 y(of)h(kinds)e(is)i(nearly)g(trivial;)i
(the)d(only)h(p)s(oin)m(t)g(of)f(in)m(terest)i(is)f(that)g(the)g(Lilt)g
(kind)f Fy(T)39 b FF(is)26 b(translated)i(as)e Fs(T)p
FF(4,)i(whic)m(h)0 3199 y(means)j(that)h(an)m(y)g(Lilt)f(v)-5
b(alue)32 b(\(since)g(it)g(has)f(a)g(t)m(yp)s(e)h(of)f(kind)g
Fy(T)13 b FF(\))31 b(will)g(b)s(e)g(represen)m(ted)g(b)m(y)g(something)
h(that)g(is)0 3312 y(32)f(bits)e(wide.)40 b(In)29 b(particular,)i(our)e
(translation)i(will)f(not)g(require)f(an)m(y)h(run-time)f(t)m(yp)s(e)h
(constructor)g(analysis)0 3425 y(\(as)h(in)f([11)q(,)h(9,)g(33)q(]\))g
(to)g(compute)f(the)h(sizes)g(of)g(v)-5 b(alues.)141
3538 y(The)36 b(translations)i(of)f(base)g(t)m(yp)s(es,)i(pro)s(ducts)d
(and)g(quan)m(ti\014ed)h(t)m(yp)s(es)f(are)i(not)f(surprising.)58
b(Sum)36 b(t)m(yp)s(es)0 3651 y(are)30 b(translated)g(using)f(T)-8
b(AL)g(T's)30 b(singleton)h(and)e(union)f(t)m(yp)s(es:)41
b(for)29 b(instance,)i(a)f(v)-5 b(alue)30 b(of)f(t)m(yp)s(e)h([)p
Fy(i)3424 3665 y Fv(1)3464 3651 y FF(:)p Fy(\034)3529
3665 y Fv(1)3569 3651 y Fy(;)15 b(i)3640 3665 y Fv(2)3680
3651 y FF(:)p Fy(\034)3745 3665 y Fv(2)3784 3651 y FF(])30
b(is)0 3764 y FB(either)40 b FF(a)31 b(p)s(oin)m(ter)f(to)h(a)g(pair)e
(consisting)i(of)g(the)f(n)m(um)m(b)s(er)f Fy(i)2070
3778 y Fv(1)2140 3764 y FF(and)g(a)i(v)-5 b(alue)30 b(of)h(t)m(yp)s(e)f
Fy(\034)2974 3778 y Fv(1)3043 3764 y FB(or)41 b FF(a)31
b(p)s(oin)m(ter)f(to)h(a)f(pair)239 4150 y Fw(j)p FF(\()p
Fy(\034)339 4164 y Fv(1)379 4150 y Fy(;)15 b(:)g(:)g(:)i(;)e(\034)621
4164 y Fx(m)687 4150 y FF(\))26 b Fw(!)f Fy(\034)10 b
Fw(j)83 b FF(=)g Fw(8)p Fy(\032)1274 4164 y Fv(1)1313
4150 y FF(:)p Fs(TD)p Fy(:)p Fw(8)p Fy(\032)1589 4164
y Fv(2)1628 4150 y FF(:)p Fs(TD)p Fy(:)p Fw(8)p Fy(\013)1915
4165 y Fx(f)1960 4150 y FF(:)p Fs(T)p FF(4)p Fy(:)p Fw(8)p
Fy(\013)2226 4165 y Fx(h)2271 4150 y FF(:)p Fs(T)p FF(4)p
Fy(:)p Fw(8)p Fy(a)p FF(:)p Fs(N)p Fy(:)p Fw(8)p Fy(b)p
FF(:)p Fs(N)p Fy(:)32 b FF(\()p 2912 4077 73 4 v Fy(E)26
b FF(+)20 b Fy(a)26 b Fw(\024)p 3266 4077 219 4 v 25
w Fy(L)20 b Fw(\000)g FF(1\))26 b Fw(\))1358 4288 y(f)p
Fz(ebx)p FF(:)p Fz(got)o Fy(;)15 b Fz(esi)p FF(:)p Fw(S)7
b FF(\()p Fy(b)p FF(\))p Fy(;)15 b Fz(edi)p FF(:)p Fy(\034)2344
4302 y Fx(e)2381 4288 y Fy(;)g Fz(ebp)p FF(:)p Fy(\013)2648
4303 y Fx(f)2693 4288 y Fy(;)g Fz(esp)p FF(:)p Fy(\034)2942
4302 y Fx(r)3000 4288 y Fw(\002)20 b Fy(\033)3143 4302
y Fv(0)3182 4288 y Fy(;)1449 4426 y Fz(ck)o FF(:\()p
1604 4353 73 4 v Fy(E)27 b FF(+)19 b Fy(a)p FF(\))i(+)f(\()p
2018 4356 46 4 v(2)h(+)f Fy(b)p FF(\))p Fw(g)26 b(!)f
FF(0)292 4627 y FB(wher)-5 b(e:)84 b Fy(\033)679 4641
y Fv(0)743 4627 y FF(=)25 b Fw(j)p Fy(\034)904 4641 y
Fv(1)944 4627 y Fw(j)20 b(\002)g(\001)15 b(\001)g(\001)21
b(\002)f(j)p Fy(\034)1362 4641 y Fx(m)1429 4627 y Fw(j)g(\002)g
Fy(\032)1612 4641 y Fv(1)1672 4627 y Fw(\002)g Fy(\034)1803
4642 y Fx(h)1868 4627 y Fw(\002)f Fy(\032)2005 4641 y
Fv(2)627 4741 y Fy(\034)667 4756 y Fx(h)737 4741 y FF(=)24
b Fy(\013)890 4756 y Fx(h)956 4741 y Fw(^)19 b(8)p Fy(b)1126
4708 y Ft(0)1149 4741 y FF(:)p Fs(N)p Fy(:)p Fw(f)p Fz(eax)q
FF(:)p Fw(j)p Fy(\034)1543 4755 y Fv(exn)1655 4741 y
Fw(j)p Fy(;)c Fz(ebx)p FF(:)p Fz(got)o Fy(;)g Fz(esi)p
FF(:)p Fw(S)7 b FF(\()p Fy(b)2377 4708 y Ft(0)2401 4741
y FF(\))p Fy(;)15 b Fz(esp)p FF(:)p Fy(\032)2692 4755
y Fv(2)2731 4741 y Fy(;)g Fz(ck)p FF(:)p 2892 4668 83
4 v Fy(H)28 b FF(+)19 b(\()p 3121 4672 46 4 v(2)i(+)f
Fy(b)3317 4708 y Ft(0)3341 4741 y FF(\))p Fw(g)26 b(!)f
FF(0)627 4854 y Fy(\034)667 4868 y Fx(e)729 4854 y FF(=)g
Fz(sptr)n FF(\()p Fy(\034)1090 4869 y Fx(h)1156 4854
y Fw(\002)19 b Fy(\032)1293 4868 y Fv(2)1333 4854 y FF(\))627
4967 y Fy(\034)667 4981 y Fx(r)730 4967 y FF(=)25 b Fw(8)p
Fy(b)916 4934 y Ft(00)958 4967 y FF(:)p Fs(N)p Fy(:)p
Fw(f)p Fz(eax)p FF(:)p Fw(j)p Fy(\034)10 b Fw(j)p Fy(;)15
b Fz(ebx)p FF(:)p Fz(got)p Fy(;)g Fz(esi)p FF(:)p Fw(S)7
b FF(\()p Fy(b)2084 4934 y Ft(00)2126 4967 y FF(\))p
Fy(;)15 b Fz(edi)p FF(:)p Fy(\034)2410 4981 y Fx(e)2447
4967 y Fy(;)g Fz(ebp)p FF(:)p Fy(\013)2714 4982 y Fx(f)2760
4967 y Fy(;)g Fz(esp)o FF(:)p Fy(\033)3020 4981 y Fv(0)3060
4967 y Fy(;)990 5080 y Fz(ck)p FF(:)p Fy(a)20 b FF(+)g(\()p
1305 5011 V(2)h(+)f Fy(b)p FF(\))p Fw(g)26 b(!)f FF(0)1137
5322 y(Figure)31 b(20:)41 b(T)-8 b(ranslation)31 b(of)g(function)f(t)m
(yp)s(es)1905 5589 y(33)p eop
%%Page: 34 36
34 35 bop 0 91 a FF(consisting)28 b(of)e(the)h(n)m(um)m(b)s(er)f
Fy(i)1028 105 y Fv(2)1094 91 y FF(and)g(a)h(v)-5 b(alue)27
b(of)g(t)m(yp)s(e)g Fy(\034)1911 105 y Fv(2)1950 91 y
FF(.)40 b(The)26 b(translation)h(of)g(arra)m(y)g(t)m(yp)s(es)g(also)h
(mak)m(es)f(use)g(of)0 204 y(singletons:)42 b(a)31 b(v)-5
b(alue)31 b(of)g(arra)m(y)g(t)m(yp)s(e)f(is)h(a)g(pair)f(whose)h
(\014rst)e(elemen)m(t)j(is)f(the)g(length)g(of)f(the)h(arra)m(y)g(and)f
(whose)0 317 y(second)g(elemen)m(t)i(is)f(a)f(p)s(oin)m(ter)h(to)g(the)
g(arra)m(y)f(data)h(itself.)141 430 y(Unsurprisingly)-8
b(,)28 b(the)h(treatmen)m(t)i(of)e(function)f(t)m(yp)s(es)h(is)g(the)g
(most)g(complicated)i(part)e(of)g(the)g(t)m(yp)s(e)g(trans-)0
543 y(lation,)d(b)s(ecause)e(the)g(t)m(yp)s(e)g(of)g(a)g(function)f(m)m
(ust)h(completely)h(capture)f(not)g(only)g(the)g(in)m(terpro)s(cedural)
f(yielding)0 656 y(or)35 b(p)s(olling)g(strategy)i(used)d(b)m(y)h(the)h
(compiler,)h(but)e(also)h(the)f(pro)s(cedure)f(calling)j(and)d(link)-5
b(age)37 b(con)m(v)m(en)m(tions,)0 769 y(whic)m(h)c(in)g(the)h(case)g
(of)f(Lilt)h(includes)f(not)h(only)f(the)h(passing)f(of)g(parameters)h
(and)f(the)g(return)f(address,)i(but)0 882 y(also)29
b(the)g(\(in)m(terpro)s(cedural\))g(exception)h(handling)e(mec)m
(hanism.)40 b(\(Our)28 b(treatmen)m(t)i(of)e(exception)i(handling)e(is)
0 995 y(v)m(ery)35 b(similar)f(to)h(that)g(of)f(the)h(T)-8
b(ALx86)35 b(P)m(op)s(corn)f(compiler)g([24)r(],)h(whic)m(h)f(in)g
(turn)f(app)s(ears)h(to)h(b)s(e)e(based)h(on)0 1108 y(the)27
b(canonical)h(translation)g(in)m(to)g(ST)-8 b(AL)26 b([25)q(].\))40
b(As)27 b(the)g(translation)h(in)e(Figure)h(20)h(indicates,)h(a)e(Lilt)
g(function)0 1220 y(exp)s(ects)35 b(to)h(b)s(e)f(passed)f(the)i(curren)
m(t)f FB(exc)-5 b(eption)38 b(p)-5 b(ointer)46 b FF(in)35
b(register)h Fz(edi)o FF(.)55 b(The)35 b(exception)h(p)s(oin)m(ter)f(p)
s(oin)m(ts)0 1333 y(to)f(the)f(curren)m(t)g(exception)i(handler,)e
(whic)m(h)g(is)g(stored)g(in)g(an)g(unkno)m(wn)f(lo)s(cation)j(on)e
(the)g(stac)m(k.)51 b(The)33 b(t)m(yp)s(e)0 1446 y(of)38
b(the)g(stac)m(k)h(exp)s(ected)f(b)m(y)f(the)h(function,)h(therefore,)h
(consists)e(of)g(the)g(return)e(address)h(\(of)h(t)m(yp)s(e)g
Fy(\034)3636 1460 y Fx(r)3674 1446 y FF(\),)i(the)0 1559
y Fy(m)31 b FF(argumen)m(ts,)h(a)g(p)s(ortion)f(of)g(unkno)m(wn)f(t)m
(yp)s(e)i Fy(\032)1726 1573 y Fv(1)1765 1559 y FF(,)g(the)f(exception)i
(handler)d(\(of)i(t)m(yp)s(e)f Fy(\034)3101 1574 y Fx(h)3146
1559 y FF(\),)h(and)f(\014nally)g(a)h(tail)0 1672 y(of)37
b(unkno)m(wn)f(t)m(yp)s(e)h Fy(\032)764 1686 y Fv(2)803
1672 y FF(.)61 b(The)36 b(handler)h(itself)g(is)g(a)h(p)s(oin)m(ter)f
(to)h(co)s(de)f(that)g(can)h(accept)g(a)g(stac)m(k)g(of)f(t)m(yp)s(e)g
Fy(\032)3835 1686 y Fv(2)3875 1672 y FF(;)0 1785 y(therefore,)i(to)e
(raise)g(an)f(exception)h(one)g(ma)m(y)g(simply)f(mo)m(v)m(e)i(the)e
(exception)i(v)-5 b(alue)37 b(to)g(b)s(e)f(raised)g(in)m(to)i
Fz(eax)o FF(,)0 1898 y(mo)m(v)m(e)i(the)e(exception)i(p)s(oin)m(ter)e
(from)g Fz(edi)f FF(in)m(to)i Fz(esp)o FF(,)i(and)c(execute)j(a)f
Fz(ret)e FF(instruction.)64 b(The)38 b(actual)i(t)m(yp)s(e)0
2011 y(of)34 b(the)h(exception)g(handler)f(is)g(a)g(bit)h(more)f
(complicated,)j(ho)m(w)m(ev)m(er,)g(b)s(ecause)d(the)g(stac)m(k)i(t)m
(yp)s(e)e(exp)s(ected)h(b)m(y)0 2124 y(the)i(handler)g(ma)m(y)g(in)g
(general)h(b)s(e)f(a)g FB(sup)-5 b(ertyp)g(e)46 b FF(of)37
b Fy(\032)1915 2138 y Fv(2)1955 2124 y FF(.)61 b(The)36
b(function)h(that)h(installed)g(the)f(handler)f(migh)m(t)0
2237 y(rely)k(on)f(this)h(fact,)j(so)d(the)f(more)h(precise)g(t)m(yp)s
(e)g(of)g(the)f(handler)g(m)m(ust)h(b)s(e)f(trac)m(k)m(ed)i(through)e
(all)h(function)0 2350 y(calls.)47 b(The)32 b(usual)g(w)m(a)m(y)h(to)g
(do)f(this)g(sort)g(of)h(thing)f(is)g(with)g(b)s(ounded)e(quan)m
(ti\014cation;)35 b(rather)d(than)f(add)h(this)0 2462
y(feature)i(to)g(T)-8 b(AL)g(T-R)33 b(w)m(e)h(use)f(a)h(kno)m(wn)e
(tric)m(k)j(for)e(sim)m(ulating)h(it)g(using)f(ordinary)f(univ)m(ersal)
i(quan)m(ti\014cation)0 2575 y(and)k(in)m(tersection)j(t)m(yp)s(es)e
([34)q(,)g(5].)66 b(In)m(tuitiv)m(ely)-8 b(,)44 b(the)39
b(parameter)g Fy(\013)2409 2590 y Fx(h)2493 2575 y FF(is)f(the)h
(\\real")i(t)m(yp)s(e)e(of)g(the)g(exception)0 2688 y(handler;)33
b(since)f(the)h(v)-5 b(alue)33 b(p)s(oin)m(ted)f(to)h(b)m(y)f
Fz(edi)f FF(is)i(of)f(the)h(in)m(tersection)h(t)m(yp)s(e)e
Fy(\034)2817 2703 y Fx(h)2862 2688 y FF(,)h(it)f(has)g(the)h(unkno)m
(wn)e(t)m(yp)s(e)0 2801 y Fy(\013)58 2816 y Fx(h)140
2801 y FF(but)37 b(is)h(additionally)g(b)s(ounded)e(ab)s(o)m(v)m(e)j(b)
m(y)e(the)h(righ)m(t)g(conjunct,)h(whic)m(h)e(is)h(the)g(co)s(de)g(p)s
(oin)m(ter)f(t)m(yp)s(e)h(the)0 2914 y(function)30 b(requires)g(the)h
(handler)e(to)i(ha)m(v)m(e.)141 3027 y(The)36 b(translation)i(of)f
(function)g(t)m(yp)s(es)f(also)i(rev)m(eals)g(that)g(the)f(register)g
Fz(ebp)f FF(is)h(treated)h(as)f(callee-sa)m(v)m(es:)0
3140 y(The)31 b(function)g(is)h(p)s(olymorphic)f(in)g(the)h(initial)h
(t)m(yp)s(e)f(of)f Fz(ebp)g FF(and)g(the)h(t)m(yp)s(e)g(of)f(the)h
(return)f(address)f(requires)0 3253 y(that)41 b(a)f(v)-5
b(alue)41 b(of)f(the)h(same)f(t)m(yp)s(e)h(b)s(e)e(in)h
Fz(ebp)f FF(when)h(the)g(function)g(returns.)69 b(The)39
b(register)i Fz(ebx)f FF(con)m(tains)0 3366 y(the)c FB(glob)-5
b(al)38 b(o\013set)g(table)k FF(p)s(oin)m(ter;)c(this)e(sp)s(ecial)g(v)
-5 b(alue)35 b(con)m(tains)i(the)f(addresses)e(of)i(the)f(functions)g
(pro)m(vided)0 3479 y(b)m(y)h(the)g(run)m(time)g(system,)i(and)e(m)m
(ust)g(b)s(e)f(pro)m(vided)h(to)h(the)f Fz(malloc)f FF(instruction.)58
b(There)35 b(is)i(no)f(particular)0 3592 y(reason)30
b(\(other)g(than)f(con)m(v)m(en)m(tion\))i(wh)m(y)e(the)h(GOT)f(p)s
(oin)m(ter)g(m)m(ust)g(sta)m(y)i(in)e Fz(ebx)o FF(;)h(ho)m(w)m(ev)m(er)
h(for)e(simplicit)m(y)h(our)0 3704 y(compiler)f(will)g(alw)m(a)m(ys)h
(lea)m(v)m(e)h(it)e(there.)40 b(Ev)m(ery)29 b(co)s(de)g(t)m(yp)s(e)g
(in)f(the)h(translation)g(will)g(sp)s(ecify)f(the)h(t)m(yp)s(e)g
Fz(got)e FF(for)0 3817 y Fz(ebx)o FF(.)141 3930 y(Finally)-8
b(,)32 b(observ)m(e)e(that)h(the)f(translation)g(of)g(function)g(t)m
(yp)s(es)g(assumes)f(a)i(dynamic)e(p)s(olling)h(discipline)g(for)0
4043 y(yielding,)37 b(as)f(describ)s(ed)e(in)h(Section)h(4.1.5.)56
b(The)35 b(clo)s(c)m(k)i(register)f(is)f Fz(esi)o FF(;)j(a)e(function)e
(exp)s(ects)i(this)f(register)0 4156 y(to)i(ha)m(v)m(e)g(a)g(singleton)
g(t)m(yp)s(e)f Fw(S)7 b FF(\()p Fy(b)p FF(\),)39 b(where)c
Fy(b)h FF(is)g(a)h(static)h(term)e(parameter.)58 b(The)36
b(translated)h(function)f(t)m(yp)s(e)0 4269 y(also)k(sp)s(eci\014es)e
(a)h(F)-8 b(eeley-st)m(yle)43 b(placemen)m(t)d(strategy)h(for)d(minor)g
(yields:)58 b(the)39 b(minor)g(clo)s(c)m(k)h(up)s(on)d(en)m(try)i(to)0
4382 y(the)d(function)f(is)g(assumed)g(to)h(b)s(e)p 1234
4309 73 4 v 35 w Fy(E)29 b FF(+)24 b Fy(a)p FF(,)37 b(and)d(it)i(will)g
(b)s(e)f Fy(a)h FF(when)e(the)i(function)f(returns.)55
b(The)35 b(exception)0 4495 y(handler)c(p)s(oin)m(ted)h(to)h(b)m(y)f
Fz(edi)f FF(is)h(exp)s(ected)g(to)h(require)f(a)g(minor)f(clo)s(c)m(k)j
(of)e Fy(H)7 b FF(.)45 b(Note,)34 b(though,)f(that)f(just)g(lik)m(e)0
4608 y(in)f(our)g(earlier)i(discussion)e(of)h(p)s(olling,)g(the)g
(return)e(address)h(and)g(exception)i(handler)d(m)m(ust)i(not)g(care)g
(ab)s(out)0 4721 y(the)f(exact)g(v)-5 b(alue)31 b(of)g(the)f(clo)s(c)m
(k)i(register.)1905 5589 y(34)p eop
%%Page: 35 37
35 36 bop 511 204 a Fy(\024)26 b FF(::=)f(just)15 b Fy(n)25
b Fw(j)g FF(retplus)30 b Fy(n)363 b Fw(j)p FF(just)15
b Fy(n)p Fw(j)2022 218 y Fx(a)2089 204 y FF(=)p 2185
154 55 4 v 25 w Fy(n)363 b Fw(j)p FF(retplus)30 b Fy(n)p
Fw(j)3012 218 y Fx(a)3079 204 y FF(=)p 3175 154 V 25
w Fy(n)20 b FF(+)g Fy(a)1190 497 y FF(\(just)15 b Fy(n)p
FF(\))20 b Fw(\000)g Fy(m)83 b FF(=)25 b(just)o(\()p
Fy(n)20 b Fw(\000)g Fy(m)p FF(\),)31 b(if)f Fy(n)25 b
Fw(\025)g Fy(m)1066 610 y FF(\(retplus)15 b Fy(n)p FF(\))20
b Fw(\000)g Fy(m)83 b FF(=)25 b(retplus)o(\()p Fy(n)20
b Fw(\000)g Fy(m)p FF(\),)31 b(if)f Fy(n)25 b Fw(\025)g
Fy(m)973 914 y FF(just)14 b Fy(n)25 b Fw(\025)g FF(just)15
b Fy(m)331 b FF(i\013)30 b Fy(n)25 b Fw(\025)g Fy(m)973
1027 y FF(just)14 b Fy(n)25 b Fw(\025)g FF(retplus)15
b Fy(m)207 b FF(i\013)30 b Fy(n)20 b Fw(\000)g FF(\()p
Fy(L)g Fw(\000)g Fy(E)26 b Fw(\000)20 b FF(1\))26 b Fw(\025)f
Fy(m)973 1140 y FF(retplus)14 b Fy(n)25 b Fw(\025)g FF(just)15
b Fy(m)207 b FF(i\013)30 b Fy(n)25 b Fw(\025)g Fy(m)973
1252 y FF(retplus)14 b Fy(n)25 b Fw(\025)g FF(retplus)15
b Fy(m)83 b FF(i\013)30 b Fy(n)25 b Fw(\025)g Fy(m)1400
1532 y FF(Figure)30 b(21:)42 b(Clo)s(c)m(k)31 b(Sp)s(eci\014ers)0
1807 y FE(4.2.4)105 b(Clo)s(c)m(k)36 b(Sp)s(eci\014ers)0
1979 y FF(In)27 b(BT)-8 b(AL)g(T-R)28 b(co)s(de)f(pro)s(duced)f(b)m(y)h
(the)h(translation,)h(the)f(minor)f(clo)s(c)m(k)i(at)f(an)m(y)f(p)s
(oin)m(t)h(within)f(a)g(function)h(will)0 2092 y(ha)m(v)m(e)j(one)g(of)
f(t)m(w)m(o)i(forms:)40 b(either)31 b(it)g(will)f(b)s(e)g(a)g(constan)m
(t,)i(or)e(it)h(will)g(b)s(e)p 2545 2042 V 29 w Fy(n)20
b FF(+)f Fy(a)p FF(,)31 b(where)f Fy(a)g FF(is)g(the)h(amoun)m(t)f
(that)0 2205 y(m)m(ust)j(b)s(e)f(presen)m(t)h(when)f(the)i(function)e
(returns.)48 b(So)33 b(that)g(the)h(translation)g(rules)e(do)h(not)g
(ha)m(v)m(e)i(to)e(men)m(tion)0 2317 y(the)h(v)-5 b(ariable)36
b Fy(a)p FF(,)f(Figure)g(21)g(in)m(tro)s(duces)f FB(clo)-5
b(ck)37 b(sp)-5 b(e)g(ci\014ers)p FF(,)36 b(whic)m(h)e(are)h(a)g(more)f
(abstract)i(w)m(a)m(y)f(of)f(describing)0 2430 y(the)h(minor)g(clo)s(c)
m(k.)56 b(The)34 b(clo)s(c)m(k)i(sp)s(eci\014er)f(just)14
b Fy(n)35 b FF(corresp)s(onds)e(to)j Fy(n)f FF(on)f(the)i(minor)e(clo)s
(c)m(k;)39 b(retplus)15 b Fy(n)34 b FF(means)0 2543 y(that)f(the)g(v)-5
b(alue)33 b(of)g(the)f(minor)g(clo)s(c)m(k)i(is)f Fy(n)f
FF(plus)g(whatev)m(er)h(is)g(required)e(for)i(the)f(function)h(to)g
(return.)46 b(Giv)m(en)0 2656 y(the)27 b(v)-5 b(ariable)29
b Fy(a)p FF(,)f Fw(j)p Fy(\024)p Fw(j)695 2670 y Fx(a)764
2656 y FF(is)g(the)f(static)i(term)f(represen)m(tation)g(of)f(the)h
(minor)f(clo)s(c)m(k)h(denoted)g(b)m(y)f Fy(\024)h FF(if)f(the)g
(function)0 2769 y(m)m(ust)j(return)g(with)g Fy(a)g FF(on)g(the)h(clo)s
(c)m(k.)141 2882 y(The)k(\014gure)f(also)i(de\014nes)f(the)g(op)s
(eration)g(of)h(decremen)m(ting)g(a)f(clo)s(c)m(k)i(sp)s(eci\014er)d(b)
m(y)h(an)g(in)m(teger)i(constan)m(t)0 2995 y(\()p Fy(\024)23
b Fw(\000)f Fy(m)p FF(\);)36 b(note)e(that)g(this)f(op)s(eration)h(is)g
(not)g(alw)m(a)m(ys)h(de\014ned.)49 b(Finally)-8 b(,)36
b(the)e(partial)g(order)f Fw(\025)h FF(sp)s(eci\014es)f(the)0
3108 y(constrain)m(ts)42 b(on)f(clo)s(c)m(k)i(sp)s(eci\014ers)e(that)h
(can)f(b)s(e)g(soundly)f(inferred.)72 b(Subtraction)41
b(and)g(ordering)g(of)h(clo)s(c)m(k)0 3221 y(sp)s(eci\014ers)37
b(will)i(b)s(e)e(used)g(in)h(the)g(translation)h(rules)f(to)h
(determine)f(when)f(minor)g(yields)i(are)f(needed.)63
b(The)0 3334 y(n)m(um)m(b)s(ers)39 b Fy(L)i FF(and)f
Fy(E)46 b FF(in)41 b(the)g(de\014nition)f(of)h(the)g(ordering)g(are)g
(parameters)g(of)g(the)g(translation:)62 b Fy(L)41 b
FF(is)g(the)0 3447 y FB(minor)e(yield)f(p)-5 b(erio)g(d)p
FF(,)40 b(and)c Fy(E)42 b FF(is)36 b(cost)h(assumed)f(b)m(y)g(the)g(F)
-8 b(eeley)38 b(yielding)f(strategy)h(for)e(ev)m(ery)h(function.)58
b(A)0 3560 y(third)28 b(parameter,)j(not)e(app)s(earing)g(in)g(the)g
(\014gure,)g(is)h Fy(H)7 b FF(,)29 b(the)h(minor)e(clo)s(c)m(k)j
(requiremen)m(t)e(of)h(ev)m(ery)g(exception)0 3672 y(handler.)0
3913 y FE(4.2.5)105 b(Stac)m(ks,)36 b(Register)f(Files)g(and)g(Lab)s
(els)0 4084 y FF(In)k(order)g(to)h(giv)m(e)h(t)m(yping)f(annotations)g
(for)g(the)f(lab)s(els)h(in)f(the)h(output)f(of)g(our)g(translation,)k
(w)m(e)d(m)m(ust)g(b)s(e)0 4197 y(able)h(to)h(sp)s(ecify)e(the)h(t)m
(yp)s(es)g(of)g(all)g(the)g(registers,)k(including)40
b(the)h(stac)m(k)h(p)s(oin)m(ter,)i(at)d(ev)m(ery)h(one)f(of)f(these)0
4310 y(program)28 b(p)s(oin)m(ts.)40 b(More)30 b(generally)-8
b(,)31 b(in)d(order)g(to)i(argue)f(that)g(our)f(translation)i(is)f(t)m
(yp)s(e-preserving,)g(w)m(e)g(m)m(ust)0 4423 y(b)s(e)h(able)h(to)g(sp)s
(ecify)f(the)g(t)m(yp)s(es)h(w)m(e)f(in)m(tend)h(for)f(the)g(register)i
(\014le)e(and)g(stac)m(k)i(at)f(an)m(y)f(p)s(oin)m(t)h(in)f(the)g(BT)-8
b(AL)g(T-R)0 4536 y(program)28 b(w)m(e)i(pro)s(duce.)39
b(This)27 b(is)i(more)g(tec)m(hnically)i(in)m(v)m(olv)m(ed)f(than)f
(migh)m(t)g(b)s(e)f(exp)s(ected,)i(mostly)f(b)s(ecause)g(of)0
4649 y(the)i(exception-handling)g(constructs)f(of)h(Lilt.)141
4762 y(The)23 b(stac)m(k)i(frame)e(la)m(y)m(out)i(used)d(b)m(y)h(a)h
(Lilt)g(function)f(is)g(sho)m(wn)g(in)g(Figure)g(22.)40
b(Note)24 b(that)g(the)f(stac)m(k)i(\\gro)m(ws)0 4875
y(do)m(wn)m(w)m(ard")h(in)f(the)h(diagram)f(just)g(as)h(it)g(do)s(es)f
(in)g(memory)-8 b(.)40 b(All)26 b(function)f(argumen)m(ts)h(are)g
(passed)f(and)g(stored)0 4987 y(on)j(the)f(stac)m(k)i(\(ab)s(o)m(v)m(e)
h(the)d(return)g(address\))g(and)g(all)i(of)e(the)h(function's)g(lo)s
(cal)h(v)-5 b(ariables)28 b(are)g(stac)m(k-allo)s(cated.)0
5100 y(The)33 b(\014gure)g(also)h(illustrates)h(the)e(usage)h(of)g(t)m
(w)m(o)h(imp)s(ortan)m(t)e(registers)h(\()p Fz(ebp)f
FF(and)g Fz(edi)o FF(\))h(that)g(p)s(oin)m(t)f(in)m(to)i(the)0
5213 y(stac)m(k.)41 b(Register)29 b Fz(ebp)d FF(pla)m(ys)i(its)g(usual)
f(role)h(as)f(the)h(frame)f(p)s(oin)m(ter,)h(except)h(that)f(it)g(is)f
(set)h(up)e(to)i(p)s(oin)m(t)g(to)g(the)0 5326 y(b)s(ottom)f(of)f(the)g
(stac)m(k)i(frame)e(instead)g(of)h(in)m(to)g(the)f(middle)g(as)h(is)f
(more)g(customary)-8 b(.)40 b(This)26 b(is)g(b)s(ecause)g(w)m(e)h(wish)
1905 5589 y(35)p eop
%%Page: 36 38
36 37 bop 100 1693 a @beginspecial 0 @llx 0 @lly 252
@urx 180 @ury 2160 @rwi @setspecial
%%BeginDocument: stackframe.eps
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 252 180
%%Pages: 0
%%Creator: Sun Microsystems, Inc.
%%Title: none
%%CreationDate: none
%%LanguageLevel: 2
%%EndComments
%%BeginPreview: 256 180 1 180
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%000000000000000000000000000000000000000F000000000001980000000000
%000000000000000000000000000000000000003F000000000001800000000000
%00000000000000000000000000000000000001FF000000000F9F980000000000
%00000000000000000000000000000000000000FF0000000018D9980000000000
%000000000000000000000000000000000000001F000000001FF1980000000000
%00000000000000C20001C00000000000000000060000000018D9980000000000
%0000000000000042000000000000000000000000000000000F9FFE0000000000
%00000000000000C2000200000000000000000000000000000000000000000000
%0000000000003C9C3B47F1CDB198000000000000000000000000000000000000
%00000000000044807102644DB5B0000000000000000000000000000000000000
%0000000000000480C2064CC92E10000000000000000000000000000000000000
%000000000000094C8204C8832808000000000000000000000000000000000000
%00000000000071F4E2048FD22FF0000000000000000000000000000000000000
%0000000000000000000400000000000000000000000000000000000000000000
%0000000000000000000800000000000000000000000000000000000000000000
%0000000000000000001000000000000000000000000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000001000000000000000000000001800000000000000000000000000
%0C00000000003800000001000000000000001800000000000000000000000000
%0C000000000028CFA3F27B0D0000000000001800000000000000000000000000
%0C00000000003C90A05B290D0000000000001800000000000000000000000000
%0C0000000000048CA05829090000000000001800000000000000000000000000
%0C0000000000C690A255A9098000000000001800000000000000000000000000
%0C00000000000002000000000000000000001800000000000000000000000000
%0C00000000000022000000000000000000001800000000000000000000000000
%0C00000000000018000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000001000000000020000000000001800000000000000000000000000
%0C00000000001000000001060000000000001800000000000000000000000000
%0C000000000028CFA3F27B020000000000001800000000000000000000000000
%0C00000000002C90A05529020000000000001800000000000000000000000000
%0C00000000007C90A05B29020000000000001800000000000000000000000000
%0C00000000000490A054A9020000000000001800000000000000000000000000
%0C0000000000C7DCF2FE6D070000000000001800000000000000000000000000
%0C00000000000022000000000000000000001800000000000000000000000000
%0C0000000000001C000000000000000000001800000000000000000000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C0000000000F800000002000000000000001800000000000000000000000000
%0C00000000000C08000002100000000000001800000000000000000000000000
%0C00000000000408000002300000000000001800000000000000000000000000
%0C0000000000790A4921429444C8000000001800000000000000000000000000
%0C000000000012CA4920C214B660000000001800000000000000000000000000
%0C0000000000080A492152940330000000001800000000000000000000000000
%0C0000000000E7CBDDA17FFE7770000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C0000000000E000040000010000000000001800000000000000000000000000
%0C00000000000000040000010000000000001800000000000000000000000000
%0C000000000000C6C437CF31C086F00000001800000000000000000000000000
%0C000000000003302414680922C6F00000001800000000000000000000000000
%0C00000000000230E415A8392204A00000001800000000000000000000000000
%0C0000000000433BA40D69292964B80000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C0000000000E000040000010001000000001800000000000000000000000000
%0C00000000000000040000010003000000001800000000000000000000000000
%0C000000000000C6C434CF31C081000000001800000000000000000000000000
%0C0000000000033AA40528296141000000001800000000000000000000000000
%0C000000000002302414680922C1000000001800000000000000000000000000
%0C00000000000339A40D68292161000000001800000000000000000000000000
%0C0000000000F8CCDC09BDBDD983800000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000800000002000020060000001800000000000000000000000000
%0C00000000004800020002000020060000001800000000000000000000000000
%0C00000000006392660972B307307FCF00001800000000000000000000000000
%0C000000000018C97004129B08A0FE4D80001800000000000000000000000000
%0C00000000000B491004729808A0864D80001800000000000000000000000000
%0C000000000073C4FF027EF78F30FFCF00001800000000000038000000000000
%0C00000000000000000000000000000C00001800000000000038000000000000
%0C00000000000000000000000000000C000018060000000007BE3E0078F3F000
%0C0000000000000000000000000000000000187E0000000018FB1B008D819800
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9FE000000001FF11100FDF19800
%07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1873190084799800
%000000000000000000000000000000000000003E000000000FFF1F60FDF1F000
%000000000000000000000000000000000000000E000000000000102000018000
%0000000000000000000000000000000000000000000000000000302000018000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%%EndPreview
%%BeginProlog
%%BeginResource: SDRes
/b4_inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath
/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if
/bdef {bind def} bind def
/c {setgray} bdef
/l {neg lineto} bdef
/rl {neg rlineto} bdef
/cl {currentlinewidth currentdash currentlinecap 2 setlinecap} bdef
/lc {setlinecap} bdef
/lw {setlinewidth} bdef
/ld {setdash} bdef
/m {neg moveto} bdef
/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef
/r {rotate} bdef
/t {neg translate} bdef
/s {scale} bdef
/sw {show} bdef
/gs {gsave} bdef
/gr {grestore} bdef
/f {findfont dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def
currentdict end /NFont exch definefont pop /NFont findfont} bdef
/p {closepath} bdef
/sf {scalefont setfont} bdef
/ef {eofill}bdef
/pc {closepath stroke}bdef
/ps {stroke}bdef
/pum {matrix currentmatrix}bdef
/pom {setmatrix}bdef
/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef
%%EndResource
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
pum
0.02834 0.02838 s
0 -6342 t
/tm matrix currentmatrix def
gs
tm setmatrix
0 -8 t
1 1 s
0 8 m 8889 8 l 8889 6349 l 0 6349 l 0 8 l eoclip newpath
0.000 c 189 738 m 189 5738 l 138 5738 l 138 738 l 189 738 l p ef
5189 738 m 5189 5738 l 5138 5738 l 5138 738 l 5189 738 l p ef
164 1238 m 5164 1238 l ps
164 3238 m 5164 3238 l ps
135 3735 m 5135 3735 l ps
164 5712 m 5164 5712 l 5164 5763 l 164 5763 l 164 5712 l p ef
164 5238 m 5164 5238 l ps
gs
pum
1665 1229 t
121 84 m 127 84 l 131 88 l 174 188 l 223 299 l 227 305 l 233 311 l
240 313 l 246 313 l 248 315 l 248 319 l 246 321 l 158 321 l 156 319 l
156 315 l 158 313 l 170 313 l 176 311 l 180 307 l 180 295 l 178 286 l
164 254 l 162 248 l 160 245 l 70 245 l 68 248 l 68 252 l 51 290 l
51 305 l 57 311 l 61 313 l 72 313 l 74 315 l 74 319 l 72 321 l 6 321 l
4 319 l 4 315 l 6 313 l 12 313 l 16 311 l 25 303 l 64 215 l 115 94 l
119 86 l p
115 137 m 117 139 l 154 225 l 154 229 l 76 229 l p ef
pom
pum
1919 1229 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
2038 1229 t
85 158 m 99 158 l 129 166 l 133 168 l 142 170 l 182 170 l 184 172 l
184 184 l 182 186 l 154 188 l 158 203 l 158 225 l 147 248 l 138 256 l
129 262 l 115 268 l 106 270 l 83 270 l 80 268 l 74 268 l 69 270 l
62 274 l 55 280 l 53 284 l 53 290 l 55 293 l 57 293 l 67 295 l 69 297 l
140 299 l 149 301 l 163 307 l 177 319 l 179 323 l 182 329 l 182 344 l
168 366 l 152 378 l 126 389 l 94 397 l 62 397 l 51 395 l 37 391 l
28 387 l 11 372 l 9 368 l 9 356 l 14 348 l 18 342 l 32 329 l 44 321 l
46 321 l 46 319 l 41 317 l 39 317 l 28 307 l 28 295 l 30 290 l 53 270 l
55 270 l 62 264 l 60 264 l 51 260 l 32 243 l 28 235 l 25 227 l 25 207 l
39 180 l 51 170 l 57 166 l 67 162 l 74 160 l p
83 170 m 92 170 l 108 176 l 113 180 l 126 215 l 126 237 l 124 243 l
122 248 l 113 256 l 106 258 l 92 258 l 85 256 l 78 252 l 74 248 l
69 241 l 60 217 l 60 192 l 62 186 l 67 178 l 71 174 l 76 172 l p
57 321 m 110 325 l 149 327 l 156 329 l 161 331 l 168 338 l 168 348 l
163 356 l 156 362 l 149 366 l 138 370 l 115 374 l 78 374 l 48 366 l
41 360 l 39 356 l 39 346 l 41 340 l 53 325 l p ef
pom
pum
2215 1229 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
2393 1229 t
57 158 m 59 160 l 59 172 l 62 184 l 76 174 l 81 170 l 87 166 l 95 162 l
110 158 l 121 158 l 123 160 l 151 176 l 178 168 l 191 162 l 206 158 l
219 158 l 236 164 l 246 174 l 252 186 l 255 192 l 257 205 l 257 303 l
259 307 l 263 311 l 267 313 l 280 313 l 282 315 l 282 319 l 280 321 l
202 321 l 199 319 l 199 315 l 202 313 l 208 313 l 216 311 l 221 309 l
223 307 l 225 301 l 225 200 l 223 192 l 221 188 l 212 180 l 204 178 l
191 178 l 168 188 l 163 192 l 159 198 l 159 299 l 161 305 l 168 311 l
172 311 l 185 313 l 187 315 l 187 319 l 185 321 l 104 321 l 102 319 l
102 315 l 104 313 l 112 313 l 119 311 l 123 309 l 125 307 l 127 301 l
127 203 l 123 188 l 115 180 l 108 178 l 100 178 l 74 186 l 68 190 l
62 196 l 62 303 l 64 307 l 68 311 l 74 313 l 85 313 l 87 315 l 87 319 l
85 321 l 6 321 l 4 319 l 4 315 l 6 313 l 17 311 l 23 309 l 25 307 l
30 301 l 30 190 l 28 184 l 25 182 l 21 180 l 11 180 l 8 182 l 6 182 l
4 180 l 4 176 l 6 174 l 8 174 l 55 160 l p ef
pom
pum
2664 1229 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2825 1229 t
60 158 m 64 162 l 64 186 l 80 172 l 90 166 l 103 160 l 113 158 l
126 158 l 129 160 l 138 162 l 140 162 l 147 166 l 154 172 l 163 188 l
165 198 l 165 301 l 168 305 l 175 311 l 182 313 l 188 313 l 191 315 l
191 319 l 188 321 l 108 321 l 106 319 l 106 315 l 108 313 l 117 311 l
122 311 l 129 305 l 131 299 l 131 200 l 129 198 l 126 190 l 126 188 l
119 182 l 115 180 l 108 178 l 99 178 l 74 190 l 64 198 l 64 303 l
67 307 l 69 309 l 87 313 l 90 315 l 90 319 l 87 321 l 7 321 l 5 319 l
5 315 l 7 313 l 14 313 l 21 311 l 28 305 l 30 301 l 30 190 l 25 182 l
21 180 l 9 180 l 7 182 l 5 180 l 5 176 l 9 172 l 39 164 l p ef
pom
pum
3003 1229 t
56 117 m 59 117 l 61 119 l 61 162 l 99 162 l 101 164 l 101 172 l
99 174 l 61 174 l 61 286 l 63 295 l 68 301 l 78 305 l 85 305 l 94 301 l
106 293 l 110 295 l 113 297 l 110 301 l 89 319 l 87 319 l 82 321 l
80 323 l 68 325 l 56 325 l 49 323 l 45 321 l 33 311 l 26 293 l 26 174 l
5 174 l 2 172 l 2 170 l 9 164 l 14 162 l 16 162 l 28 151 l 54 121 l
54 119 l p ef
pom
pum
3104 1229 t
pom
pum
3189 1229 t
80 160 m 83 162 l 83 168 l 62 229 l 60 231 l 60 233 l 64 229 l 90 195 l
117 170 l 124 166 l 145 160 l 149 160 l 158 162 l 170 172 l 172 177 l
172 199 l 165 222 l 147 285 l 142 295 l 142 301 l 145 303 l 152 303 l
156 301 l 168 291 l 177 281 l 177 278 l 179 276 l 186 283 l 172 299 l
152 318 l 142 322 l 131 324 l 129 324 l 119 322 l 113 316 l 110 312 l
110 297 l 115 287 l 140 197 l 140 187 l 138 185 l 133 183 l 129 183 l
115 187 l 90 210 l 69 237 l 53 266 l 37 312 l 37 316 l 32 320 l
7 320 l 5 318 l 5 312 l 41 195 l 41 185 l 39 183 l 34 181 l 18 181 l
16 179 l 16 175 l 18 172 l 78 162 l p ef
pom
pum
3189 1229 t
80 160 m 83 162 l 83 168 l 62 229 l 60 231 l 60 233 l 64 229 l 90 195 l
117 170 l 124 166 l 145 160 l 149 160 l 158 162 l 170 172 l 172 177 l
172 199 l 165 222 l 147 285 l 142 295 l 142 301 l 145 303 l 152 303 l
156 301 l 168 291 l 177 281 l 177 278 l 179 276 l 186 283 l 172 299 l
152 318 l 142 322 l 131 324 l 129 324 l 119 322 l 113 316 l 110 312 l
110 297 l 115 287 l 140 197 l 140 187 l 138 185 l 133 183 l 129 183 l
115 187 l 90 210 l 69 237 l 53 266 l 37 312 l 37 316 l 32 320 l
7 320 l 5 318 l 5 312 l 41 195 l 41 185 l 39 183 l 34 181 l 18 181 l
16 179 l 16 175 l 18 172 l 78 162 l p ef
pom
gr
gs
pum
1665 2843 t
121 84 m 127 84 l 131 88 l 174 188 l 223 299 l 227 305 l 233 311 l
240 313 l 246 313 l 248 315 l 248 319 l 246 321 l 158 321 l 156 319 l
156 315 l 158 313 l 170 313 l 176 311 l 180 307 l 180 295 l 178 286 l
164 254 l 162 248 l 160 245 l 70 245 l 68 248 l 68 252 l 51 290 l
51 305 l 57 311 l 61 313 l 72 313 l 74 315 l 74 319 l 72 321 l 6 321 l
4 319 l 4 315 l 6 313 l 12 313 l 16 311 l 25 303 l 64 215 l 115 94 l
119 86 l p
115 137 m 117 139 l 154 225 l 154 229 l 76 229 l p ef
pom
pum
1919 2843 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
2038 2843 t
85 158 m 99 158 l 129 166 l 133 168 l 142 170 l 182 170 l 184 172 l
184 184 l 182 186 l 154 188 l 158 203 l 158 225 l 147 248 l 138 256 l
129 262 l 115 268 l 106 270 l 83 270 l 80 268 l 74 268 l 69 270 l
62 274 l 55 280 l 53 284 l 53 290 l 55 293 l 57 293 l 67 295 l 69 297 l
140 299 l 149 301 l 163 307 l 177 319 l 179 323 l 182 329 l 182 344 l
168 366 l 152 378 l 126 389 l 94 397 l 62 397 l 51 395 l 37 391 l
28 387 l 11 372 l 9 368 l 9 356 l 14 348 l 18 342 l 32 329 l 44 321 l
46 321 l 46 319 l 41 317 l 39 317 l 28 307 l 28 295 l 30 290 l 53 270 l
55 270 l 62 264 l 60 264 l 51 260 l 32 243 l 28 235 l 25 227 l 25 207 l
39 180 l 51 170 l 57 166 l 67 162 l 74 160 l p
83 170 m 92 170 l 108 176 l 113 180 l 126 215 l 126 237 l 124 243 l
122 248 l 113 256 l 106 258 l 92 258 l 85 256 l 78 252 l 74 248 l
69 241 l 60 217 l 60 192 l 62 186 l 67 178 l 71 174 l 76 172 l p
57 321 m 110 325 l 149 327 l 156 329 l 161 331 l 168 338 l 168 348 l
163 356 l 156 362 l 149 366 l 138 370 l 115 374 l 78 374 l 48 366 l
41 360 l 39 356 l 39 346 l 41 340 l 53 325 l p ef
pom
pum
2215 2843 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
2393 2843 t
57 158 m 59 160 l 59 172 l 62 184 l 76 174 l 81 170 l 87 166 l 95 162 l
110 158 l 121 158 l 123 160 l 151 176 l 178 168 l 191 162 l 206 158 l
219 158 l 236 164 l 246 174 l 252 186 l 255 192 l 257 205 l 257 303 l
259 307 l 263 311 l 267 313 l 280 313 l 282 315 l 282 319 l 280 321 l
202 321 l 199 319 l 199 315 l 202 313 l 208 313 l 216 311 l 221 309 l
223 307 l 225 301 l 225 200 l 223 192 l 221 188 l 212 180 l 204 178 l
191 178 l 168 188 l 163 192 l 159 198 l 159 299 l 161 305 l 168 311 l
172 311 l 185 313 l 187 315 l 187 319 l 185 321 l 104 321 l 102 319 l
102 315 l 104 313 l 112 313 l 119 311 l 123 309 l 125 307 l 127 301 l
127 203 l 123 188 l 115 180 l 108 178 l 100 178 l 74 186 l 68 190 l
62 196 l 62 303 l 64 307 l 68 311 l 74 313 l 85 313 l 87 315 l 87 319 l
85 321 l 6 321 l 4 319 l 4 315 l 6 313 l 17 311 l 23 309 l 25 307 l
30 301 l 30 190 l 28 184 l 25 182 l 21 180 l 11 180 l 8 182 l 6 182 l
4 180 l 4 176 l 6 174 l 8 174 l 55 160 l p ef
pom
pum
2664 2843 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2825 2843 t
60 158 m 64 162 l 64 186 l 80 172 l 90 166 l 103 160 l 113 158 l
126 158 l 129 160 l 138 162 l 140 162 l 147 166 l 154 172 l 163 188 l
165 198 l 165 301 l 168 305 l 175 311 l 182 313 l 188 313 l 191 315 l
191 319 l 188 321 l 108 321 l 106 319 l 106 315 l 108 313 l 117 311 l
122 311 l 129 305 l 131 299 l 131 200 l 129 198 l 126 190 l 126 188 l
119 182 l 115 180 l 108 178 l 99 178 l 74 190 l 64 198 l 64 303 l
67 307 l 69 309 l 87 313 l 90 315 l 90 319 l 87 321 l 7 321 l 5 319 l
5 315 l 7 313 l 14 313 l 21 311 l 28 305 l 30 301 l 30 190 l 25 182 l
21 180 l 9 180 l 7 182 l 5 180 l 5 176 l 9 172 l 39 164 l p ef
pom
pum
3003 2843 t
56 117 m 59 117 l 61 119 l 61 162 l 99 162 l 101 164 l 101 172 l
99 174 l 61 174 l 61 286 l 63 295 l 68 301 l 78 305 l 85 305 l 94 301 l
106 293 l 110 295 l 113 297 l 110 301 l 89 319 l 87 319 l 82 321 l
80 323 l 68 325 l 56 325 l 49 323 l 45 321 l 33 311 l 26 293 l 26 174 l
5 174 l 2 172 l 2 170 l 9 164 l 14 162 l 16 162 l 28 151 l 54 121 l
54 119 l p ef
pom
pum
3104 2843 t
pom
pum
3189 2843 t
110 84 m 115 84 l 117 86 l 117 303 l 119 307 l 122 309 l 126 311 l
136 313 l 152 313 l 154 315 l 154 319 l 152 321 l 46 321 l 44 319 l
44 315 l 46 313 l 64 313 l 71 311 l 78 305 l 80 299 l 80 121 l 78 117 l
76 115 l 71 113 l 69 113 l 67 115 l 51 119 l 44 121 l 41 119 l 41 117 l
46 113 l p ef
pom
gr
gs
pum
1665 3346 t
7 88 m 131 88 l 172 98 l 183 102 l 189 106 l 196 113 l 209 139 l
209 160 l 207 168 l 201 180 l 183 196 l 169 203 l 147 209 l 140 209 l
143 213 l 151 221 l 192 266 l 192 268 l 232 309 l 236 311 l 243 313 l
250 313 l 252 315 l 252 319 l 250 321 l 189 321 l 183 315 l 183 313 l
129 250 l 123 243 l 107 225 l 107 223 l 98 213 l 85 213 l 78 215 l
78 297 l 80 303 l 87 309 l 109 313 l 111 315 l 111 319 l 109 321 l
7 321 l 4 319 l 4 315 l 7 313 l 13 313 l 24 311 l 29 309 l 33 305 l
36 301 l 38 295 l 38 113 l 36 106 l 29 100 l 13 96 l 7 96 l 4 94 l
4 90 l p
85 102 m 116 102 l 145 110 l 158 123 l 165 139 l 165 160 l 160 172 l
158 176 l 147 186 l 131 192 l 109 198 l 78 198 l 78 108 l p ef
pom
pum
1902 3346 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2054 3346 t
56 117 m 59 117 l 61 119 l 61 162 l 99 162 l 101 164 l 101 172 l
99 174 l 61 174 l 61 286 l 63 295 l 68 301 l 78 305 l 85 305 l 94 301 l
106 293 l 110 295 l 113 297 l 110 301 l 89 319 l 87 319 l 82 321 l
80 323 l 68 325 l 56 325 l 49 323 l 45 321 l 33 311 l 26 293 l 26 174 l
5 174 l 2 172 l 2 170 l 9 164 l 14 162 l 16 162 l 28 151 l 54 121 l
54 119 l p ef
pom
pum
2156 3346 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
2334 3346 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
2452 3346 t
60 158 m 64 162 l 64 186 l 80 172 l 90 166 l 103 160 l 113 158 l
126 158 l 129 160 l 138 162 l 140 162 l 147 166 l 154 172 l 163 188 l
165 198 l 165 301 l 168 305 l 175 311 l 182 313 l 188 313 l 191 315 l
191 319 l 188 321 l 108 321 l 106 319 l 106 315 l 108 313 l 117 311 l
122 311 l 129 305 l 131 299 l 131 200 l 129 198 l 126 190 l 126 188 l
119 182 l 115 180 l 108 178 l 99 178 l 74 190 l 64 198 l 64 303 l
67 307 l 69 309 l 87 313 l 90 315 l 90 319 l 87 321 l 7 321 l 5 319 l
5 315 l 7 313 l 14 313 l 21 311 l 28 305 l 30 301 l 30 190 l 25 182 l
21 180 l 9 180 l 7 182 l 5 180 l 5 176 l 9 172 l 39 164 l p ef
pom
pum
2630 3346 t
pom
pum
2715 3346 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2876 3346 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
3054 3346 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
3231 3346 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
3350 3346 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3511 3346 t
63 158 m 69 158 l 84 160 l 86 162 l 99 166 l 103 166 l 107 162 l
112 162 l 114 164 l 114 209 l 112 211 l 110 211 l 105 207 l 97 184 l
93 178 l 88 174 l 80 170 l 69 168 l 65 168 l 55 172 l 48 174 l 46 176 l
42 184 l 42 198 l 44 200 l 46 205 l 46 207 l 53 213 l 61 217 l 84 231 l
86 231 l 91 233 l 112 248 l 116 252 l 122 260 l 124 264 l 126 270 l
126 286 l 120 301 l 103 317 l 80 325 l 67 325 l 53 323 l 44 321 l
42 319 l 27 319 l 23 323 l 19 323 l 17 321 l 17 268 l 19 266 l 23 266 l
27 270 l 27 276 l 32 288 l 36 297 l 40 303 l 46 309 l 55 313 l 63 315 l
76 315 l 91 309 l 97 303 l 99 297 l 99 284 l 97 282 l 95 278 l 95 276 l
88 270 l 86 270 l 51 250 l 34 237 l 27 231 l 23 225 l 19 217 l 17 211 l
17 194 l 25 176 l 34 168 l 40 164 l p ef
pom
pum
3646 3346 t
63 158 m 69 158 l 84 160 l 86 162 l 99 166 l 103 166 l 107 162 l
112 162 l 114 164 l 114 209 l 112 211 l 110 211 l 105 207 l 97 184 l
93 178 l 88 174 l 80 170 l 69 168 l 65 168 l 55 172 l 48 174 l 46 176 l
42 184 l 42 198 l 44 200 l 46 205 l 46 207 l 53 213 l 61 217 l 84 231 l
86 231 l 91 233 l 112 248 l 116 252 l 122 260 l 124 264 l 126 270 l
126 286 l 120 301 l 103 317 l 80 325 l 67 325 l 53 323 l 44 321 l
42 319 l 27 319 l 23 323 l 19 323 l 17 321 l 17 268 l 19 266 l 23 266 l
27 270 l 27 276 l 32 288 l 36 297 l 40 303 l 46 309 l 55 313 l 63 315 l
76 315 l 91 309 l 97 303 l 99 297 l 99 284 l 97 282 l 95 278 l 95 276 l
88 270 l 86 270 l 51 250 l 34 237 l 27 231 l 23 225 l 19 217 l 17 211 l
17 194 l 25 176 l 34 168 l 40 164 l p ef
pom
gr
gs
pum
1665 3822 t
4 88 m 105 88 l 108 90 l 108 94 l 105 96 l 84 100 l 82 100 l 77 104 l
77 106 l 75 113 l 73 115 l 73 299 l 77 303 l 84 305 l 148 305 l
183 295 l 198 280 l 204 270 l 204 268 l 209 260 l 211 258 l 217 258 l
219 260 l 219 264 l 204 317 l 200 321 l 4 321 l 2 319 l 2 315 l
4 313 l 26 309 l 30 305 l 30 303 l 32 297 l 34 295 l 34 113 l 32 106 l
26 100 l 4 96 l 2 94 l 2 90 l p ef
pom
pum
1877 3822 t
87 158 m 106 158 l 138 166 l 152 174 l 165 186 l 170 192 l 184 225 l
184 252 l 182 262 l 177 274 l 168 290 l 158 301 l 152 307 l 142 313 l
124 321 l 117 323 l 103 325 l 87 325 l 53 315 l 46 311 l 28 295 l
23 288 l 9 254 l 9 227 l 11 217 l 16 205 l 21 196 l 32 182 l 37 178 l
48 170 l 67 162 l p
87 170 m 96 170 l 115 176 l 131 190 l 140 207 l 145 221 l 147 233 l
147 266 l 136 297 l 124 307 l 115 311 l 106 313 l 96 313 l 78 307 l
67 297 l 57 280 l 48 254 l 46 239 l 46 211 l 55 188 l 69 176 l p ef
pom
pum
2054 3822 t
85 158 m 100 158 l 127 166 l 136 170 l 147 180 l 147 182 l 149 186 l
151 188 l 151 200 l 143 209 l 138 211 l 127 211 l 116 200 l 114 196 l
107 178 l 107 176 l 102 172 l 96 170 l 85 170 l 73 172 l 65 176 l
49 190 l 38 217 l 38 243 l 40 254 l 42 260 l 51 276 l 67 290 l 69 290 l
78 295 l 80 297 l 91 299 l 102 299 l 114 297 l 123 293 l 129 288 l
140 278 l 147 270 l 147 268 l 151 264 l 156 268 l 156 272 l 151 280 l
138 299 l 125 311 l 118 315 l 105 321 l 98 323 l 87 325 l 73 325 l
42 315 l 22 297 l 18 290 l 7 260 l 7 231 l 9 221 l 13 209 l 20 196 l
24 190 l 42 174 l 49 170 l 58 166 l p ef
pom
pum
2215 3822 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2368 3822 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
2469 3822 t
pom
pum
2562 3822 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2740 3822 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2893 3822 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
3011 3822 t
49 80 m 54 80 l 61 82 l 71 90 l 73 94 l 73 104 l 71 108 l 61 117 l
45 117 l 40 115 l 33 108 l 31 104 l 31 94 l 33 90 l 42 82 l p
68 158 m 71 160 l 71 299 l 73 305 l 78 309 l 82 311 l 92 313 l 99 313 l
101 315 l 101 319 l 99 321 l 7 321 l 5 319 l 5 315 l 7 313 l 19 311 l
26 311 l 33 305 l 35 299 l 35 192 l 33 186 l 31 184 l 26 182 l 16 182 l
14 184 l 7 184 l 5 182 l 5 178 l 7 176 l 12 174 l p ef
pom
pum
3113 3822 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
3274 3822 t
55 80 m 57 80 l 60 82 l 60 184 l 69 176 l 69 174 l 71 172 l 80 166 l
108 158 l 119 158 l 131 160 l 138 162 l 142 164 l 149 168 l 168 184 l
172 190 l 177 198 l 182 211 l 184 221 l 184 248 l 170 284 l 165 290 l
142 311 l 136 315 l 99 325 l 80 325 l 67 323 l 44 317 l 39 315 l
32 311 l 28 307 l 25 303 l 25 110 l 23 106 l 21 104 l 16 102 l 2 102 l
0 100 l 0 96 l 2 94 l 7 94 l 53 82 l p
92 182 m 103 182 l 122 188 l 131 196 l 136 203 l 140 211 l 145 223 l
147 235 l 147 266 l 138 290 l 131 301 l 129 303 l 122 307 l 103 313 l
90 313 l 74 309 l 69 307 l 60 299 l 60 203 l 62 198 l 74 188 l 83 184 l
p ef
pom
pum
3451 3822 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
3545 3822 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3705 3822 t
pom
pum
3790 3822 t
70 160 m 74 164 l 70 179 l 57 224 l 55 226 l 55 231 l 57 229 l 57 226 l
66 214 l 72 208 l 78 199 l 78 197 l 102 172 l 115 164 l 129 160 l
131 160 l 139 162 l 145 166 l 147 168 l 147 170 l 150 175 l 152 177 l
152 191 l 143 222 l 141 224 l 141 229 l 143 226 l 147 220 l 147 218 l
162 197 l 188 170 l 213 160 l 215 160 l 223 162 l 233 172 l 236 179 l
236 193 l 207 297 l 207 301 l 209 303 l 217 303 l 233 287 l 233 285 l
242 276 l 246 281 l 246 283 l 244 287 l 238 295 l 219 314 l 213 318 l
205 322 l 195 324 l 193 324 l 186 322 l 180 316 l 178 312 l 178 301 l
207 191 l 207 185 l 205 183 l 193 183 l 176 195 l 160 214 l 150 229 l
150 231 l 147 235 l 143 239 l 133 262 l 119 310 l 119 316 l 115 320 l
90 320 l 88 318 l 90 316 l 123 193 l 123 185 l 121 183 l 117 181 l
109 183 l 96 191 l 84 204 l 74 216 l 57 241 l 53 249 l 31 316 l
31 318 l 29 320 l 4 320 l 2 318 l 2 316 l 29 224 l 37 189 l 37 185 l
33 181 l 16 181 l 14 179 l 14 175 l 18 170 l 31 168 l p ef
pom
pum
3790 3822 t
70 160 m 74 164 l 70 179 l 57 224 l 55 226 l 55 231 l 57 229 l 57 226 l
66 214 l 72 208 l 78 199 l 78 197 l 102 172 l 115 164 l 129 160 l
131 160 l 139 162 l 145 166 l 147 168 l 147 170 l 150 175 l 152 177 l
152 191 l 143 222 l 141 224 l 141 229 l 143 226 l 147 220 l 147 218 l
162 197 l 188 170 l 213 160 l 215 160 l 223 162 l 233 172 l 236 179 l
236 193 l 207 297 l 207 301 l 209 303 l 217 303 l 233 287 l 233 285 l
242 276 l 246 281 l 246 283 l 244 287 l 238 295 l 219 314 l 213 318 l
205 322 l 195 324 l 193 324 l 186 322 l 180 316 l 178 312 l 178 301 l
207 191 l 207 185 l 205 183 l 193 183 l 176 195 l 160 214 l 150 229 l
150 231 l 147 235 l 143 239 l 133 262 l 119 310 l 119 316 l 115 320 l
90 320 l 88 318 l 90 316 l 123 193 l 123 185 l 121 183 l 117 181 l
109 183 l 96 191 l 84 204 l 74 216 l 57 241 l 53 249 l 31 316 l
31 318 l 29 320 l 4 320 l 2 318 l 2 316 l 29 224 l 37 189 l 37 185 l
33 181 l 16 181 l 14 179 l 14 175 l 18 170 l 31 168 l p ef
pom
gr
gs
pum
1665 4827 t
4 88 m 105 88 l 108 90 l 108 94 l 105 96 l 84 100 l 82 100 l 77 104 l
77 106 l 75 113 l 73 115 l 73 299 l 77 303 l 84 305 l 148 305 l
183 295 l 198 280 l 204 270 l 204 268 l 209 260 l 211 258 l 217 258 l
219 260 l 219 264 l 204 317 l 200 321 l 4 321 l 2 319 l 2 315 l
4 313 l 26 309 l 30 305 l 30 303 l 32 297 l 34 295 l 34 113 l 32 106 l
26 100 l 4 96 l 2 94 l 2 90 l p ef
pom
pum
1877 4827 t
87 158 m 106 158 l 138 166 l 152 174 l 165 186 l 170 192 l 184 225 l
184 252 l 182 262 l 177 274 l 168 290 l 158 301 l 152 307 l 142 313 l
124 321 l 117 323 l 103 325 l 87 325 l 53 315 l 46 311 l 28 295 l
23 288 l 9 254 l 9 227 l 11 217 l 16 205 l 21 196 l 32 182 l 37 178 l
48 170 l 67 162 l p
87 170 m 96 170 l 115 176 l 131 190 l 140 207 l 145 221 l 147 233 l
147 266 l 136 297 l 124 307 l 115 311 l 106 313 l 96 313 l 78 307 l
67 297 l 57 280 l 48 254 l 46 239 l 46 211 l 55 188 l 69 176 l p ef
pom
pum
2054 4827 t
85 158 m 100 158 l 127 166 l 136 170 l 147 180 l 147 182 l 149 186 l
151 188 l 151 200 l 143 209 l 138 211 l 127 211 l 116 200 l 114 196 l
107 178 l 107 176 l 102 172 l 96 170 l 85 170 l 73 172 l 65 176 l
49 190 l 38 217 l 38 243 l 40 254 l 42 260 l 51 276 l 67 290 l 69 290 l
78 295 l 80 297 l 91 299 l 102 299 l 114 297 l 123 293 l 129 288 l
140 278 l 147 270 l 147 268 l 151 264 l 156 268 l 156 272 l 151 280 l
138 299 l 125 311 l 118 315 l 105 321 l 98 323 l 87 325 l 73 325 l
42 315 l 22 297 l 18 290 l 7 260 l 7 231 l 9 221 l 13 209 l 20 196 l
24 190 l 42 174 l 49 170 l 58 166 l p ef
pom
pum
2215 4827 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2368 4827 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
2469 4827 t
pom
pum
2562 4827 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2740 4827 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2893 4827 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
3011 4827 t
49 80 m 54 80 l 61 82 l 71 90 l 73 94 l 73 104 l 71 108 l 61 117 l
45 117 l 40 115 l 33 108 l 31 104 l 31 94 l 33 90 l 42 82 l p
68 158 m 71 160 l 71 299 l 73 305 l 78 309 l 82 311 l 92 313 l 99 313 l
101 315 l 101 319 l 99 321 l 7 321 l 5 319 l 5 315 l 7 313 l 19 311 l
26 311 l 33 305 l 35 299 l 35 192 l 33 186 l 31 184 l 26 182 l 16 182 l
14 184 l 7 184 l 5 182 l 5 178 l 7 176 l 12 174 l p ef
pom
pum
3113 4827 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
3274 4827 t
55 80 m 57 80 l 60 82 l 60 184 l 69 176 l 69 174 l 71 172 l 80 166 l
108 158 l 119 158 l 131 160 l 138 162 l 142 164 l 149 168 l 168 184 l
172 190 l 177 198 l 182 211 l 184 221 l 184 248 l 170 284 l 165 290 l
142 311 l 136 315 l 99 325 l 80 325 l 67 323 l 44 317 l 39 315 l
32 311 l 28 307 l 25 303 l 25 110 l 23 106 l 21 104 l 16 102 l 2 102 l
0 100 l 0 96 l 2 94 l 7 94 l 53 82 l p
92 182 m 103 182 l 122 188 l 131 196 l 136 203 l 140 211 l 145 223 l
147 235 l 147 266 l 138 290 l 131 301 l 129 303 l 122 307 l 103 313 l
90 313 l 74 309 l 69 307 l 60 299 l 60 203 l 62 198 l 74 188 l 83 184 l
p ef
pom
pum
3451 4827 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
3545 4827 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3705 4827 t
pom
pum
3790 4827 t
110 84 m 115 84 l 117 86 l 117 303 l 119 307 l 122 309 l 126 311 l
136 313 l 152 313 l 154 315 l 154 319 l 152 321 l 46 321 l 44 319 l
44 315 l 46 313 l 64 313 l 71 311 l 78 305 l 80 299 l 80 121 l 78 117 l
76 115 l 71 113 l 69 113 l 67 115 l 51 119 l 44 121 l 41 119 l 41 117 l
46 113 l p ef
pom
pum
3790 4827 t
110 84 m 115 84 l 117 86 l 117 303 l 119 307 l 122 309 l 126 311 l
136 313 l 152 313 l 154 315 l 154 319 l 152 321 l 46 321 l 44 319 l
44 315 l 46 313 l 64 313 l 71 311 l 78 305 l 80 299 l 80 121 l 78 117 l
76 115 l 71 113 l 69 113 l 67 115 l 51 119 l 44 121 l 41 119 l 41 117 l
46 113 l p ef
pom
gr
gs
pum
1665 5304 t
152 82 m 156 82 l 160 86 l 160 102 l 164 143 l 166 145 l 166 158 l
164 160 l 158 160 l 156 158 l 156 153 l 152 141 l 148 133 l 143 127 l
125 108 l 112 102 l 106 100 l 79 100 l 73 102 l 67 106 l 62 110 l
58 117 l 56 123 l 56 137 l 58 143 l 62 151 l 77 166 l 125 194 l
133 198 l 141 205 l 164 227 l 175 252 l 175 272 l 173 280 l 166 293 l
162 299 l 150 311 l 143 315 l 131 321 l 119 325 l 83 325 l 52 315 l
37 315 l 35 317 l 33 321 l 33 323 l 31 325 l 25 325 l 23 323 l 12 254 l
12 252 l 15 250 l 21 250 l 25 254 l 25 256 l 35 276 l 46 290 l 52 297 l
60 303 l 73 309 l 79 311 l 108 311 l 110 309 l 119 305 l 121 305 l
133 293 l 133 290 l 135 282 l 137 280 l 137 264 l 135 258 l 133 254 l
129 248 l 116 235 l 108 229 l 106 229 l 100 225 l 96 221 l 89 217 l
73 209 l 71 209 l 52 196 l 33 178 l 29 172 l 27 168 l 23 153 l 23 133 l
31 110 l 48 94 l 54 90 l 58 88 l 71 84 l 102 84 l 121 90 l 125 92 l
131 94 l 146 94 l 150 88 l 150 84 l p ef
pom
pum
1860 5304 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2021 5304 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2198 5304 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2351 5304 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
2529 5304 t
pom
pum
2622 5304 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2800 5304 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2952 5304 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
3054 5304 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
3231 5304 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3392 5304 t
pom
pum
3477 5304 t
87 158 m 106 158 l 138 166 l 152 174 l 165 186 l 170 192 l 184 225 l
184 252 l 182 262 l 177 274 l 168 290 l 158 301 l 152 307 l 142 313 l
124 321 l 117 323 l 103 325 l 87 325 l 53 315 l 46 311 l 28 295 l
23 288 l 9 254 l 9 227 l 11 217 l 16 205 l 21 196 l 32 182 l 37 178 l
48 170 l 67 162 l p
87 170 m 96 170 l 115 176 l 131 190 l 140 207 l 145 221 l 147 233 l
147 266 l 136 297 l 124 307 l 115 311 l 106 313 l 96 313 l 78 307 l
67 297 l 57 280 l 48 254 l 46 239 l 46 211 l 55 188 l 69 176 l p ef
pom
pum
3655 5304 t
89 80 m 97 80 l 119 86 l 129 96 l 131 102 l 129 108 l 127 113 l
125 115 l 123 115 l 119 117 l 117 119 l 113 119 l 109 117 l 99 106 l
99 104 l 95 98 l 93 96 l 89 94 l 83 92 l 79 92 l 73 94 l 65 102 l
63 108 l 63 162 l 103 162 l 105 164 l 105 172 l 103 174 l 63 174 l
63 299 l 65 305 l 69 309 l 73 311 l 81 313 l 93 313 l 95 315 l 95 319 l
93 321 l 6 321 l 4 319 l 4 315 l 6 313 l 28 309 l 30 307 l 32 303 l
34 297 l 34 174 l 8 174 l 6 172 l 6 164 l 8 162 l 34 162 l 38 127 l
44 108 l 48 102 l 59 90 l 71 84 l 77 82 l p ef
pom
pum
3773 5304 t
pom
pum
3866 5331 t
63 239 m 181 239 l 201 239 208 237 208 221 ct 208 181 172 146 116 146 ct 55 146 16 182 16 229 ct
16 277 55 313 116 313 ct 170 313 205 293 205 273 ct 205 263 198 256 189 256 ct
175 256 157 277 118 277 ct 87 277 l 69 265 l p
63 212 m 69 189 85 179 112 179 ct 140 179 158 191 161 212 ct p ef
pom
pum
4078 5331 t
73 290 m 85 305 102 313 125 313 ct 176 313 213 279 213 232 ct 213 185 176 149 126 149 ct
108 149 91 155 79 165 ct 79 94 l 79 86 76 83 68 83 ct 34 83 l 18 83 11 88 11 102 ct
11 115 18 121 31 121 ct 32 121 33 121 34 121 ct 34 271 l 33 271 32 271 31 271 ct
18 271 11 277 11 290 ct 11 304 18 309 34 309 ct 62 309 l 70 309 73 306 73 301 ct
p
120 276 m 96 276 79 257 79 231 ct 79 204 97 186 120 186 ct 144 186 162 204 162 231 ct
162 257 l 144 276 l p ef
pom
pum
4289 5331 t
101 339 m 78 339 l 78 292 l 91 302 108 307 128 307 ct 176 307 213 273 213 225 ct
213 180 176 145 125 145 ct 103 145 85 153 73 169 ct 73 156 l 73 152 70 149 62 149 ct
34 149 l 18 149 11 153 11 168 ct 11 180 18 187 31 187 ct 32 187 33 187 34 187 ct
34 339 l 23 339 l 8 339 0 344 0 358 ct 0 373 8 377 23 377 ct 101 377 l 116 377 124 373 124 358 ct
124 344 l 116 339 l p
79 227 m 79 200 96 182 120 182 ct 144 182 162 200 162 227 ct 162 253 144 271 120 271 ct
96 271 l 79 253 l p ef
pom
gr
gs
pum
6773 5469 t
75 286 m 217 286 l 240 286 249 284 249 265 ct 249 217 206 175 139 175 ct 66 175 19 218 19 274 ct
19 332 66 375 139 375 ct 203 375 246 351 246 328 ct 246 315 238 307 226 307 ct
210 307 188 332 141 332 ct 104 332 l 83 318 l p
75 254 m 83 227 102 214 134 214 ct 167 214 189 229 194 254 ct p ef
pom
pum
7027 5469 t
88 347 m 101 366 122 375 150 375 ct 212 375 255 335 255 279 ct 255 222 212 179 151 179 ct
129 179 109 186 95 197 ct 95 113 l 95 104 92 99 82 99 ct 41 99 l 22 99 13 105 13 122 ct
13 137 21 145 37 145 ct 38 145 39 145 41 145 ct 41 324 l 39 324 38 324 37 324 ct
21 324 13 332 13 347 ct 13 364 22 370 41 370 ct 74 370 l 83 370 88 367 88 361 ct
p
144 331 m 115 331 94 308 94 277 ct 94 245 116 223 144 223 ct 173 223 194 245 194 277 ct
194 308 l 173 331 l p ef
pom
pum
7281 5469 t
121 406 m 93 406 l 93 351 l 109 362 129 368 153 368 ct 211 368 255 327 255 269 ct
255 215 212 174 150 174 ct 124 174 102 184 87 203 ct 87 187 l 87 182 83 179 74 179 ct
41 179 l 22 179 13 184 13 202 ct 13 216 21 225 37 225 ct 38 225 39 225 41 225 ct
41 406 l 27 406 l 9 406 0 412 0 429 ct 0 447 9 452 27 452 ct 121 452 l 139 452 148 447 148 429 ct
148 412 l 139 406 l p
94 272 m 94 240 115 218 144 218 ct 173 218 194 240 194 272 ct 194 303 173 325 144 325 ct
115 325 l 94 303 l p ef
pom
pum
7535 5442 t
47 358 m 55 358 l 58 360 l 66 363 l 68 363 l 84 378 l 84 381 l 87 389 l
89 391 l 89 409 l 84 425 l 81 430 l 76 438 l 55 459 l 47 464 l 37 469 l
32 464 l 32 459 l 34 456 l 37 456 l 50 446 l 55 441 l 63 430 l 68 420 l
68 409 l 42 409 l 34 407 l 26 399 l 24 394 l 24 376 l 26 371 l 34 363 l
39 360 l p ef
pom
pum
7637 5442 t
pom
pum
7747 5469 t
75 286 m 217 286 l 240 286 249 284 249 265 ct 249 217 206 175 139 175 ct 66 175 19 218 19 274 ct
19 332 66 375 139 375 ct 203 375 246 351 246 328 ct 246 315 238 307 226 307 ct
210 307 188 332 141 332 ct 104 332 l 83 318 l p
75 254 m 83 227 102 214 134 214 ct 167 214 189 229 194 254 ct p ef
pom
pum
8001 5469 t
77 368 m 98 373 120 375 142 375 ct 204 375 237 351 237 310 ct 237 269 206 258 149 250 ct
110 244 92 246 92 228 ct 92 216 104 208 128 208 ct 167 208 180 238 203 238 ct 214 238 222 231 222 219 ct
222 194 l 222 180 215 173 203 173 ct 194 173 187 176 182 183 ct 161 177 141 174 121 174 ct
65 174 35 197 35 235 ct 35 268 59 286 110 293 ct 158 300 179 300 179 319 ct 179 330 167 340 144 340 ct
120 340 101 334 86 322 ct 75 313 76 301 57 301 ct 41 301 36 307 36 325 ct 36 353 l
36 368 38 376 53 376 ct 61 376 l 69 373 l p ef
pom
pum
8255 5469 t
121 406 m 93 406 l 93 351 l 109 362 129 368 153 368 ct 211 368 255 327 255 269 ct
255 215 212 174 150 174 ct 124 174 102 184 87 203 ct 87 187 l 87 182 83 179 74 179 ct
41 179 l 22 179 13 184 13 202 ct 13 216 21 225 37 225 ct 38 225 39 225 41 225 ct
41 406 l 27 406 l 9 406 0 412 0 429 ct 0 447 9 452 27 452 ct 121 452 l 139 452 148 447 148 429 ct
148 412 l 139 406 l p
94 272 m 94 240 115 218 144 218 ct 173 218 194 240 194 272 ct 194 303 173 325 144 325 ct
115 325 l 94 303 l p ef
pom
gr
5164 5738 m 5539 5862 l 5538 5612 l 5164 5738 l p ef
6664 5738 m 5464 5738 l ps
gs
pum
1665 249 t
142 203 m 147 203 l 181 213 l 189 218 l 197 226 l 202 234 l 207 245 l
210 255 l 210 284 l 202 308 l 192 332 l 181 350 l 144 387 l 126 397 l
89 411 l 66 411 l 52 408 l 37 400 l 18 382 l 18 379 l 13 363 l 11 361 l
11 329 l 13 316 l 18 300 l 32 274 l 47 253 l 63 237 l 84 221 l 105 211 l
123 205 l p
139 213 m 150 216 l 155 218 l 163 226 l 171 245 l 171 274 l 157 324 l
139 361 l 131 371 l 110 392 l 100 397 l 92 400 l 76 400 l 73 397 l
68 395 l 66 395 l 55 384 l 55 382 l 52 371 l 50 368 l 50 340 l 63 292 l
76 266 l 81 258 l 87 253 l 95 242 l 95 240 l 108 226 l 116 221 l
126 216 l p ef
pom
pum
1877 249 t
106 95 m 108 95 l 113 100 l 108 113 l 89 192 l 52 355 l 47 374 l
47 384 l 49 387 l 59 387 l 66 382 l 71 376 l 80 363 l 80 361 l 92 347 l
96 353 l 96 355 l 89 363 l 85 371 l 85 374 l 59 403 l 49 408 l 42 411 l
28 411 l 23 408 l 16 400 l 14 392 l 14 376 l 31 313 l 73 129 l 73 124 l
71 121 l 66 118 l 54 116 l 47 116 l 45 113 l 45 111 l 47 108 l 52 105 l
94 97 l p ef
pom
pum
1987 249 t
228 95 m 234 95 l 236 97 l 236 105 l 226 139 l 163 371 l 163 379 l
165 384 l 176 384 l 184 379 l 189 374 l 189 371 l 207 353 l 213 358 l
213 361 l 205 371 l 176 400 l 168 405 l 163 408 l 155 411 l 139 411 l
134 408 l 129 403 l 126 397 l 126 374 l 129 361 l 131 358 l 131 355 l
126 361 l 116 374 l 116 376 l 95 397 l 87 403 l 63 411 l 42 411 l
34 408 l 29 405 l 21 400 l 16 395 l 11 387 l 5 371 l 5 342 l 16 311 l
18 305 l 21 297 l 21 295 l 39 266 l 50 253 l 68 234 l 89 218 l 110 208 l
118 205 l 134 203 l 139 203 l 142 205 l 152 208 l 155 208 l 163 216 l
165 221 l 165 224 l 168 221 l 192 132 l 192 121 l 189 118 l 184 116 l
165 116 l 163 113 l 163 108 l 165 105 l 215 97 l p
134 216 m 139 216 l 147 218 l 155 226 l 157 234 l 157 255 l 142 313 l
129 342 l 116 361 l 102 374 l 95 379 l 79 387 l 66 387 l 63 384 l
58 382 l 55 382 l 52 379 l 50 374 l 47 366 l 47 342 l 63 292 l 73 268 l
92 242 l 105 229 l 113 224 l p ef
pom
pum
2198 249 t
143 203 m 148 203 l 161 205 l 164 208 l 169 211 l 172 211 l 177 216 l
177 218 l 179 224 l 182 226 l 182 245 l 177 261 l 172 268 l 151 289 l
143 295 l 117 308 l 94 316 l 65 321 l 57 324 l 52 337 l 52 358 l
55 366 l 60 374 l 65 379 l 83 387 l 104 387 l 120 382 l 159 353 l
161 355 l 164 361 l 143 382 l 125 395 l 83 411 l 60 411 l 44 405 l
39 403 l 18 382 l 16 376 l 10 361 l 10 332 l 18 308 l 31 279 l 44 261 l
70 234 l 88 221 l 109 211 l 125 205 l p
135 213 m 138 213 l 143 216 l 148 221 l 151 226 l 151 242 l 148 250 l
143 261 l 138 268 l 125 282 l 114 289 l 99 297 l 68 308 l 60 308 l
83 258 l 99 237 l 107 229 l 117 221 l p ef
pom
pum
2393 249 t
99 203 m 101 205 l 99 208 l 83 271 l 83 279 l 86 276 l 91 268 l
91 266 l 93 261 l 109 240 l 136 211 l 154 205 l 159 205 l 169 208 l
174 213 l 174 216 l 177 224 l 179 226 l 179 232 l 177 240 l 174 245 l
172 247 l 169 247 l 164 250 l 162 253 l 152 253 l 147 250 l 141 245 l
139 240 l 139 237 l 129 237 l 116 250 l 116 253 l 111 261 l 106 266 l
101 274 l 83 311 l 53 403 l 51 405 l 20 405 l 18 403 l 18 400 l
35 332 l 58 250 l 58 229 l 56 226 l 51 224 l 38 224 l 35 226 l 33 226 l
30 224 l 30 218 l 33 216 l 38 216 l 96 205 l p ef
pom
pum
2554 249 t
pom
pum
2664 249 t
125 97 m 143 97 l 146 100 l 155 103 l 158 103 l 169 116 l 169 137 l
162 145 l 158 147 l 148 147 l 136 134 l 136 124 l 139 121 l 141 116 l
141 113 l 136 108 l 127 108 l 118 113 l 113 118 l 108 126 l 101 145 l
85 208 l 85 211 l 125 211 l 127 213 l 127 224 l 125 226 l 75 263 l
56 358 l 40 424 l 26 455 l 14 474 l 7 482 l -2 490 l -12 495 l -19 497 l
-38 497 l -40 495 l -47 492 l -49 492 l -59 482 l -59 458 l -52 450 l
-42 450 l -38 453 l -31 461 l -28 466 l -28 471 l -31 476 l -33 479 l
-33 482 l -28 487 l -21 487 l -19 484 l -14 482 l -12 482 l -7 476 l
-2 469 l 2 458 l 9 434 l 47 234 l 47 226 l 14 226 l 12 224 l 12 221 l
14 213 l 16 211 l 52 211 l 54 205 l 68 161 l 80 134 l 87 124 l 96 113 l
106 105 l 115 100 l p ef
pom
pum
2774 249 t
99 203 m 101 205 l 99 208 l 83 271 l 83 279 l 86 276 l 91 268 l
91 266 l 93 261 l 109 240 l 136 211 l 154 205 l 159 205 l 169 208 l
174 213 l 174 216 l 177 224 l 179 226 l 179 232 l 177 240 l 174 245 l
172 247 l 169 247 l 164 250 l 162 253 l 152 253 l 147 250 l 141 245 l
139 240 l 139 237 l 129 237 l 116 250 l 116 253 l 111 261 l 106 266 l
101 274 l 83 311 l 53 403 l 51 405 l 20 405 l 18 403 l 18 400 l
35 332 l 58 250 l 58 229 l 56 226 l 51 224 l 38 224 l 35 226 l 33 226 l
30 224 l 30 218 l 33 216 l 38 216 l 96 205 l p ef
pom
pum
2943 249 t
134 203 m 137 203 l 160 211 l 165 216 l 165 218 l 171 224 l 173 218 l
173 211 l 176 208 l 181 205 l 202 205 l 205 203 l 207 205 l 207 216 l
200 245 l 179 332 l 168 371 l 168 382 l 171 384 l 173 384 l 179 382 l
207 353 l 213 358 l 213 361 l 207 368 l 181 397 l 171 405 l 165 408 l
157 411 l 147 411 l 139 408 l 134 403 l 131 397 l 131 379 l 139 350 l
142 347 l 142 345 l 134 353 l 134 355 l 126 366 l 95 397 l 63 411 l
42 411 l 34 408 l 24 403 l 13 392 l 8 382 l 5 371 l 5 342 l 18 303 l
42 261 l 76 226 l 79 226 l 87 221 l 92 216 l p
129 216 m 142 216 l 150 218 l 157 226 l 160 232 l 163 240 l 163 250 l
150 297 l 137 329 l 129 342 l 110 366 l 102 374 l 95 379 l 76 387 l
66 387 l 58 384 l 50 376 l 50 374 l 47 366 l 45 363 l 45 342 l 47 329 l
58 297 l 73 266 l 84 250 l 108 226 l 116 221 l 121 218 l p ef
pom
pum
3155 249 t
93 203 m 98 208 l 93 226 l 76 284 l 74 287 l 74 292 l 76 289 l 76 287 l
87 271 l 96 263 l 104 253 l 104 250 l 137 218 l 153 208 l 172 203 l
175 203 l 186 205 l 194 211 l 197 213 l 197 216 l 199 221 l 202 224 l
202 242 l 191 282 l 188 284 l 188 289 l 191 287 l 197 279 l 197 276 l
216 250 l 251 216 l 284 203 l 287 203 l 298 205 l 311 218 l 314 226 l
314 245 l 276 376 l 276 382 l 279 384 l 290 384 l 311 363 l 311 361 l
322 350 l 328 355 l 328 358 l 325 363 l 317 374 l 292 397 l 284 403 l
273 408 l 259 411 l 257 411 l 249 408 l 240 400 l 238 395 l 238 382 l
276 242 l 276 234 l 273 232 l 257 232 l 235 247 l 213 271 l 199 289 l
199 292 l 197 297 l 191 303 l 177 332 l 158 392 l 158 400 l 153 405 l
120 405 l 117 403 l 120 400 l 164 245 l 164 234 l 161 232 l 156 229 l
145 232 l 128 242 l 112 258 l 98 274 l 76 305 l 71 316 l 41 400 l
41 403 l 38 405 l 5 405 l 3 403 l 3 400 l 38 284 l 49 240 l 49 234 l
44 229 l 22 229 l 19 226 l 19 221 l 25 216 l 41 213 l p ef
pom
pum
3460 249 t
143 203 m 148 203 l 161 205 l 164 208 l 169 211 l 172 211 l 177 216 l
177 218 l 179 224 l 182 226 l 182 245 l 177 261 l 172 268 l 151 289 l
143 295 l 117 308 l 94 316 l 65 321 l 57 324 l 52 337 l 52 358 l
55 366 l 60 374 l 65 379 l 83 387 l 104 387 l 120 382 l 159 353 l
161 355 l 164 361 l 143 382 l 125 395 l 83 411 l 60 411 l 44 405 l
39 403 l 18 382 l 16 376 l 10 361 l 10 332 l 18 308 l 31 279 l 44 261 l
70 234 l 88 221 l 109 211 l 125 205 l p
135 213 m 138 213 l 143 216 l 148 221 l 151 226 l 151 242 l 148 250 l
143 261 l 138 268 l 125 282 l 114 289 l 99 297 l 68 308 l 60 308 l
83 258 l 99 237 l 107 229 l 117 221 l p ef
pom
pum
3646 249 t
96 203 m 101 203 l 126 211 l 144 211 l 152 203 l 157 203 l 159 205 l
152 261 l 149 266 l 147 268 l 141 268 l 139 266 l 139 253 l 136 245 l
129 229 l 119 218 l 114 216 l 104 213 l 101 213 l 91 216 l 81 226 l
78 232 l 78 247 l 81 255 l 86 266 l 91 274 l 99 282 l 109 295 l
131 340 l 131 361 l 129 371 l 124 382 l 106 400 l 78 411 l 58 411 l
38 405 l 35 403 l 18 403 l 15 405 l 15 408 l 13 411 l 8 413 l 5 411 l
5 395 l 8 392 l 13 350 l 13 340 l 15 337 l 20 337 l 23 340 l 30 368 l
38 387 l 45 395 l 51 397 l 58 400 l 71 400 l 73 397 l 81 395 l 83 395 l
88 390 l 93 382 l 96 374 l 96 358 l 86 334 l 81 326 l 73 318 l 51 284 l
48 279 l 43 263 l 43 245 l 51 226 l 63 213 l 73 208 l 81 205 l p ef
pom
gr
5189 263 m 5564 387 l 5563 137 l 5189 263 l p ef
6689 263 m 5489 263 l ps
gs
pum
6773 61 t
75 286 m 217 286 l 240 286 249 284 249 265 ct 249 217 206 175 139 175 ct 66 175 19 218 19 274 ct
19 332 66 375 139 375 ct 203 375 246 351 246 328 ct 246 315 238 307 226 307 ct
210 307 188 332 141 332 ct 104 332 l 83 318 l p
75 254 m 83 227 102 214 134 214 ct 167 214 189 229 194 254 ct p ef
pom
pum
7027 61 t
147 145 m 176 145 l 176 197 l 160 186 139 179 116 179 ct 59 179 15 222 15 279 ct
15 335 59 375 116 375 ct 145 375 167 365 182 346 ct 182 361 l 182 367 186 370 195 370 ct
229 370 l 248 370 257 364 257 347 ct 257 332 249 324 232 324 ct 231 324 231 324 229 324 ct
229 113 l 229 103 226 99 216 99 ct 147 99 l 129 99 120 105 120 122 ct 120 140 l
129 145 l p
126 331 m 97 331 75 308 75 277 ct 75 245 97 223 126 223 ct 154 223 175 245 175 277 ct
175 308 l 155 331 l p ef
pom
pum
7281 61 t
107 126 m 107 147 111 150 134 150 ct 158 150 161 146 161 119 ct 161 93 158 86 134 86 ct
110 86 l 107 93 l p
153 179 m 87 179 l 68 179 59 184 59 202 ct 59 219 68 225 87 225 ct 111 225 l
111 324 l 64 324 l 46 324 36 329 36 347 ct 36 364 46 370 64 370 ct 213 370 l
231 370 241 364 241 347 ct 241 329 231 324 213 324 ct 166 324 l 166 188 l 166 182 l
161 179 l p ef
pom
gr
gr
0 6342 t
pom
count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore
%%PageTrailer
%%Trailer
%%EOF
%%EndDocument
@endspecial 1900 w @beginspecial 0 @llx 0 @lly 252 @urx
237 @ury 2160 @rwi @setspecial
%%BeginDocument: stackframe2.eps
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 252 237
%%Pages: 0
%%Creator: Sun Microsystems, Inc.
%%Title: none
%%CreationDate: none
%%LanguageLevel: 2
%%EndComments
%%BeginPreview: 256 237 1 237
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%00000000000000C20001C0000000000000000000000000000000000000000000
%0000000000000042000000000000000000000000000000000000000000000000
%00000000000000C2000200000000000000000000000000000000000000000000
%0000000000003C9C3B47F1C9B198000000000000000000000000000000000000
%00000000000044807102644DB5B0000000000000000000000000000000000000
%0000000000000480C2064CC92E10000000000000000000000000000000000000
%00000000000009448204C8812808000000000000000000000000000000000000
%00000000000071F4E2048FD22FF0000000000000000000000000000000000000
%0000000000000000000400000000000000000000000000000000000000000000
%0000000000000000000800000000000000000000000000000000000000000000
%0000000000000000001000000000000000000000000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000001000000000000000000000001800000000000000000000000000
%0C00000000003800000001000000000000001800000000000000000000000000
%0C000000000028CFA3F27B0D0000000000001800000000000000000000000000
%0C00000000003C90A05B290D0000000000001800000000000000000000000000
%0C0000000000048CA05829090000000000001800000000000000000000000000
%0C00000000004490A255A9098000000000001800000000000000000000000000
%0C00000000000002000000000000000000001800000000000000000000000000
%0C00000000000022000000000000000000001800000000000000000000000000
%0C00000000000018000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000001000000000020000000000001800000000000000000000000000
%0C000000000010000000010E0000000000001800000000000000000000000000
%0C00000000003800000003020000000000001800000000000000000000000000
%0C00000000002892A25529020000000000001800000000000000000000000000
%0C00000000007C90A05B29020000000000001800000000000000000000000000
%0C00000000000488A05829020000000000001800000000000000000000000000
%0C0000000000C79CF2DE6D070000000000001800000000000000000000000000
%0C00000000000022000000000000000000001800000000000000000000000000
%0C0000000000001C000000000000000000001800000000000000000000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C0000000000F000000000000000000000001800000000000000000000000000
%0C00000000004808000002100000000000001800000000000000000000000000
%0C00000000000408000002100000000000001800000000000000000000000000
%0C0000000000790A4961423405D8000000001800000000000000000000000000
%0C000000000052CA4920C214B660000000001800000000000000000000000000
%0C00000000000A0A492152140330000000001800000000000000000000000000
%0C0000000000E7CBC9A17FFE7770000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C0000000000E000040000010000000000001800000000000000000000000000
%0C00000000000000040000010000000000001800000000000000000000000000
%0C000000000000C6C437CF31C086B00000001800000000000000000000000000
%0C00000000000338A40428296147D00000001800000000000000000000000000
%0C00000000000230E414A8392204A00000001800000000000000000000000000
%0C0000000000033BA40D68292164B80000001800000000000000000000000000
%0C0000000000F8CC9C08BDA5D981200000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C0000000000E000040000010001000000001800000000000000000000000000
%0C00000000000000040000010007000000001800000000000000000000000000
%0C00000000000000040000010001000000001800000000000000000000000000
%0C0000000000037AA42529296141000000001800000000000000000000000000
%0C000000000002302414680922C1000000001800000000000000000000000000
%0C00000000000330E405E8392201000000001800000000000000000000000000
%0C0000000000FCCCFC09BDBDD983800000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000004000000002000000020000001800000000000000000000000000
%0C00000000000800000002000020060000001800000000000000000000000000
%0C000000000043BA461D62B30770779F00001800000000000000000000000000
%0C000000000010C07000129309A0FE4D80001800000000000000000000000000
%0C00000000000B491004729800A0864D80001800000000000000000000000000
%0C00000000004AC4BA0252948820CECF00001800000000000038000000000000
%0C00000000000000000000000000000C00001800000000000038000000000000
%0C00000000000000000000000000000C0000180600000000073E3E0000000000
%0C00000000000000000000000000001C0000181E0000000008FB1B0000000000
%0C000000000000000000000000000000000019FE000000001FF3110000000000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1873110000000000
%0C000000000000000000000000000000000018FE000000000DFB1B0000000000
%0C0000000000000000000000000000000000180E000000000000180000000000
%0C00000000000000000000000000000000001800000000000000100000000000
%0C000000000070000000020000180000000018000000000000003C0000000000
%0C0000000000080000000200002000C000001800000000000000000000000000
%0C000000000043BA461D62B3077873C600001800000000000000000000000000
%0C00000000003250A808529509A0DEC200001800000000000000000000000000
%0C000000000009491004729800A0CC4200001800000000000000000000000000
%0C00000000000AC4B802529488A0CEC200001800000000000000000000000000
%0C00000000007140CF004E76073073EF80001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000002200050007000000000000001800000000000000000000000000
%0C00000000002200050001000000000000001800000000000000000000000000
%0C0000000000226F1D1981000000000000001800000000000000000000000000
%0C00000000002215053C01000000000000001800000000000000000000000000
%0C00000000002255052001000000000000001800000000000000000000000000
%0C00000000002275351703000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000000000000000000000000000001800000000000000000000000000
%0C00000000007300050000000000000000001800000000000000000000000000
%0C00000000002200050000000000000000001800000000000000000000000000
%0C0000000000226F1D1986000000000000001800000000000000000000000000
%0C00000000003E15250403800000000000001800000000000000000000000000
%0C00000000002275052004000000000000001800000000000000000000000000
%0C00000000002275250604000000000000001800000000000000000000388000
%0C0000000000735D9F9B04000000000000001800000000000000000000088000
%0C0000000000000000000000000000000000180000000000020C140030788000
%0C00000000000000000000000000000000001803000000000D931B00CD988000
%0C0000000000000000000000000000000000181F0000000018DC11008D888000
%0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FF000000001CDF1100CD888000
%07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFF8CD31B60CD988000
%00000000000000000000000000000000000000FF00000000079E1E6078FFF000
%000000000000000000000000000000000000001F000000000000102000000000
%00000000000000000000000000000000000000030000000000003C0000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%0000000000000000000000000000000000000000000000000000000000000000
%%EndPreview
%%BeginProlog
%%BeginResource: SDRes
/b4_inc_state save def
/dict_count countdictstack def
/op_count count 1 sub def
userdict begin
0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath
/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if
/bdef {bind def} bind def
/c {setgray} bdef
/l {neg lineto} bdef
/rl {neg rlineto} bdef
/cl {currentlinewidth currentdash currentlinecap 2 setlinecap} bdef
/lc {setlinecap} bdef
/lw {setlinewidth} bdef
/ld {setdash} bdef
/m {neg moveto} bdef
/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef
/r {rotate} bdef
/t {neg translate} bdef
/s {scale} bdef
/sw {show} bdef
/gs {gsave} bdef
/gr {grestore} bdef
/f {findfont dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def
currentdict end /NFont exch definefont pop /NFont findfont} bdef
/p {closepath} bdef
/sf {scalefont setfont} bdef
/ef {eofill}bdef
/pc {closepath stroke}bdef
/ps {stroke}bdef
/pum {matrix currentmatrix}bdef
/pom {setmatrix}bdef
/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef
%%EndResource
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%EndPageSetup
pum
0.02834 0.0283 s
0 -8374 t
/tm matrix currentmatrix def
gs
tm setmatrix
0 -8 t
1 1 s
0 8 m 8889 8 l 8889 8381 l 0 8381 l 0 8 l eoclip newpath
0.000 c 189 738 m 189 7628 l 138 7628 l 138 738 l 189 738 l p ef
5189 738 m 5189 7628 l 5138 7628 l 5138 738 l 5189 738 l p ef
164 1238 m 5164 1238 l ps
164 3238 m 5164 3238 l ps
135 3735 m 5135 3735 l ps
164 7602 m 5164 7602 l 5164 7653 l 164 7653 l 164 7602 l p ef
164 5238 m 5164 5238 l ps
gs
pum
1665 1229 t
121 84 m 127 84 l 131 88 l 174 188 l 223 299 l 227 305 l 233 311 l
240 313 l 246 313 l 248 315 l 248 319 l 246 321 l 158 321 l 156 319 l
156 315 l 158 313 l 170 313 l 176 311 l 180 307 l 180 295 l 178 286 l
164 254 l 162 248 l 160 245 l 70 245 l 68 248 l 68 252 l 51 290 l
51 305 l 57 311 l 61 313 l 72 313 l 74 315 l 74 319 l 72 321 l 6 321 l
4 319 l 4 315 l 6 313 l 12 313 l 16 311 l 25 303 l 64 215 l 115 94 l
119 86 l p
115 137 m 117 139 l 154 225 l 154 229 l 76 229 l p ef
pom
pum
1919 1229 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
2038 1229 t
85 158 m 99 158 l 129 166 l 133 168 l 142 170 l 182 170 l 184 172 l
184 184 l 182 186 l 154 188 l 158 203 l 158 225 l 147 248 l 138 256 l
129 262 l 115 268 l 106 270 l 83 270 l 80 268 l 74 268 l 69 270 l
62 274 l 55 280 l 53 284 l 53 290 l 55 293 l 57 293 l 67 295 l 69 297 l
140 299 l 149 301 l 163 307 l 177 319 l 179 323 l 182 329 l 182 344 l
168 366 l 152 378 l 126 389 l 94 397 l 62 397 l 51 395 l 37 391 l
28 387 l 11 372 l 9 368 l 9 356 l 14 348 l 18 342 l 32 329 l 44 321 l
46 321 l 46 319 l 41 317 l 39 317 l 28 307 l 28 295 l 30 290 l 53 270 l
55 270 l 62 264 l 60 264 l 51 260 l 32 243 l 28 235 l 25 227 l 25 207 l
39 180 l 51 170 l 57 166 l 67 162 l 74 160 l p
83 170 m 92 170 l 108 176 l 113 180 l 126 215 l 126 237 l 124 243 l
122 248 l 113 256 l 106 258 l 92 258 l 85 256 l 78 252 l 74 248 l
69 241 l 60 217 l 60 192 l 62 186 l 67 178 l 71 174 l 76 172 l p
57 321 m 110 325 l 149 327 l 156 329 l 161 331 l 168 338 l 168 348 l
163 356 l 156 362 l 149 366 l 138 370 l 115 374 l 78 374 l 48 366 l
41 360 l 39 356 l 39 346 l 41 340 l 53 325 l p ef
pom
pum
2215 1229 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
2393 1229 t
57 158 m 59 160 l 59 172 l 62 184 l 76 174 l 81 170 l 87 166 l 95 162 l
110 158 l 121 158 l 123 160 l 151 176 l 178 168 l 191 162 l 206 158 l
219 158 l 236 164 l 246 174 l 252 186 l 255 192 l 257 205 l 257 303 l
259 307 l 263 311 l 267 313 l 280 313 l 282 315 l 282 319 l 280 321 l
202 321 l 199 319 l 199 315 l 202 313 l 208 313 l 216 311 l 221 309 l
223 307 l 225 301 l 225 200 l 223 192 l 221 188 l 212 180 l 204 178 l
191 178 l 168 188 l 163 192 l 159 198 l 159 299 l 161 305 l 168 311 l
172 311 l 185 313 l 187 315 l 187 319 l 185 321 l 104 321 l 102 319 l
102 315 l 104 313 l 112 313 l 119 311 l 123 309 l 125 307 l 127 301 l
127 203 l 123 188 l 115 180 l 108 178 l 100 178 l 74 186 l 68 190 l
62 196 l 62 303 l 64 307 l 68 311 l 74 313 l 85 313 l 87 315 l 87 319 l
85 321 l 6 321 l 4 319 l 4 315 l 6 313 l 17 311 l 23 309 l 25 307 l
30 301 l 30 190 l 28 184 l 25 182 l 21 180 l 11 180 l 8 182 l 6 182 l
4 180 l 4 176 l 6 174 l 8 174 l 55 160 l p ef
pom
pum
2664 1229 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2825 1229 t
60 158 m 64 162 l 64 186 l 80 172 l 90 166 l 103 160 l 113 158 l
126 158 l 129 160 l 138 162 l 140 162 l 147 166 l 154 172 l 163 188 l
165 198 l 165 301 l 168 305 l 175 311 l 182 313 l 188 313 l 191 315 l
191 319 l 188 321 l 108 321 l 106 319 l 106 315 l 108 313 l 117 311 l
122 311 l 129 305 l 131 299 l 131 200 l 129 198 l 126 190 l 126 188 l
119 182 l 115 180 l 108 178 l 99 178 l 74 190 l 64 198 l 64 303 l
67 307 l 69 309 l 87 313 l 90 315 l 90 319 l 87 321 l 7 321 l 5 319 l
5 315 l 7 313 l 14 313 l 21 311 l 28 305 l 30 301 l 30 190 l 25 182 l
21 180 l 9 180 l 7 182 l 5 180 l 5 176 l 9 172 l 39 164 l p ef
pom
pum
3003 1229 t
56 117 m 59 117 l 61 119 l 61 162 l 99 162 l 101 164 l 101 172 l
99 174 l 61 174 l 61 286 l 63 295 l 68 301 l 78 305 l 85 305 l 94 301 l
106 293 l 110 295 l 113 297 l 110 301 l 89 319 l 87 319 l 82 321 l
80 323 l 68 325 l 56 325 l 49 323 l 45 321 l 33 311 l 26 293 l 26 174 l
5 174 l 2 172 l 2 170 l 9 164 l 14 162 l 16 162 l 28 151 l 54 121 l
54 119 l p ef
pom
pum
3104 1229 t
pom
pum
3189 1229 t
80 160 m 83 162 l 83 168 l 62 229 l 60 231 l 60 233 l 64 229 l 90 195 l
117 170 l 124 166 l 145 160 l 149 160 l 158 162 l 170 172 l 172 177 l
172 199 l 165 222 l 147 285 l 142 295 l 142 301 l 145 303 l 152 303 l
156 301 l 168 291 l 177 281 l 177 278 l 179 276 l 186 283 l 172 299 l
152 318 l 142 322 l 131 324 l 129 324 l 119 322 l 113 316 l 110 312 l
110 297 l 115 287 l 140 197 l 140 187 l 138 185 l 133 183 l 129 183 l
115 187 l 90 210 l 69 237 l 53 266 l 37 312 l 37 316 l 32 320 l
7 320 l 5 318 l 5 312 l 41 195 l 41 185 l 39 183 l 34 181 l 18 181 l
16 179 l 16 175 l 18 172 l 78 162 l p ef
pom
pum
3189 1229 t
80 160 m 83 162 l 83 168 l 62 229 l 60 231 l 60 233 l 64 229 l 90 195 l
117 170 l 124 166 l 145 160 l 149 160 l 158 162 l 170 172 l 172 177 l
172 199 l 165 222 l 147 285 l 142 295 l 142 301 l 145 303 l 152 303 l
156 301 l 168 291 l 177 281 l 177 278 l 179 276 l 186 283 l 172 299 l
152 318 l 142 322 l 131 324 l 129 324 l 119 322 l 113 316 l 110 312 l
110 297 l 115 287 l 140 197 l 140 187 l 138 185 l 133 183 l 129 183 l
115 187 l 90 210 l 69 237 l 53 266 l 37 312 l 37 316 l 32 320 l
7 320 l 5 318 l 5 312 l 41 195 l 41 185 l 39 183 l 34 181 l 18 181 l
16 179 l 16 175 l 18 172 l 78 162 l p ef
pom
gr
gs
pum
1665 2843 t
121 84 m 127 84 l 131 88 l 174 188 l 223 299 l 227 305 l 233 311 l
240 313 l 246 313 l 248 315 l 248 319 l 246 321 l 158 321 l 156 319 l
156 315 l 158 313 l 170 313 l 176 311 l 180 307 l 180 295 l 178 286 l
164 254 l 162 248 l 160 245 l 70 245 l 68 248 l 68 252 l 51 290 l
51 305 l 57 311 l 61 313 l 72 313 l 74 315 l 74 319 l 72 321 l 6 321 l
4 319 l 4 315 l 6 313 l 12 313 l 16 311 l 25 303 l 64 215 l 115 94 l
119 86 l p
115 137 m 117 139 l 154 225 l 154 229 l 76 229 l p ef
pom
pum
1919 2843 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
2038 2843 t
85 158 m 99 158 l 129 166 l 133 168 l 142 170 l 182 170 l 184 172 l
184 184 l 182 186 l 154 188 l 158 203 l 158 225 l 147 248 l 138 256 l
129 262 l 115 268 l 106 270 l 83 270 l 80 268 l 74 268 l 69 270 l
62 274 l 55 280 l 53 284 l 53 290 l 55 293 l 57 293 l 67 295 l 69 297 l
140 299 l 149 301 l 163 307 l 177 319 l 179 323 l 182 329 l 182 344 l
168 366 l 152 378 l 126 389 l 94 397 l 62 397 l 51 395 l 37 391 l
28 387 l 11 372 l 9 368 l 9 356 l 14 348 l 18 342 l 32 329 l 44 321 l
46 321 l 46 319 l 41 317 l 39 317 l 28 307 l 28 295 l 30 290 l 53 270 l
55 270 l 62 264 l 60 264 l 51 260 l 32 243 l 28 235 l 25 227 l 25 207 l
39 180 l 51 170 l 57 166 l 67 162 l 74 160 l p
83 170 m 92 170 l 108 176 l 113 180 l 126 215 l 126 237 l 124 243 l
122 248 l 113 256 l 106 258 l 92 258 l 85 256 l 78 252 l 74 248 l
69 241 l 60 217 l 60 192 l 62 186 l 67 178 l 71 174 l 76 172 l p
57 321 m 110 325 l 149 327 l 156 329 l 161 331 l 168 338 l 168 348 l
163 356 l 156 362 l 149 366 l 138 370 l 115 374 l 78 374 l 48 366 l
41 360 l 39 356 l 39 346 l 41 340 l 53 325 l p ef
pom
pum
2215 2843 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
2393 2843 t
57 158 m 59 160 l 59 172 l 62 184 l 76 174 l 81 170 l 87 166 l 95 162 l
110 158 l 121 158 l 123 160 l 151 176 l 178 168 l 191 162 l 206 158 l
219 158 l 236 164 l 246 174 l 252 186 l 255 192 l 257 205 l 257 303 l
259 307 l 263 311 l 267 313 l 280 313 l 282 315 l 282 319 l 280 321 l
202 321 l 199 319 l 199 315 l 202 313 l 208 313 l 216 311 l 221 309 l
223 307 l 225 301 l 225 200 l 223 192 l 221 188 l 212 180 l 204 178 l
191 178 l 168 188 l 163 192 l 159 198 l 159 299 l 161 305 l 168 311 l
172 311 l 185 313 l 187 315 l 187 319 l 185 321 l 104 321 l 102 319 l
102 315 l 104 313 l 112 313 l 119 311 l 123 309 l 125 307 l 127 301 l
127 203 l 123 188 l 115 180 l 108 178 l 100 178 l 74 186 l 68 190 l
62 196 l 62 303 l 64 307 l 68 311 l 74 313 l 85 313 l 87 315 l 87 319 l
85 321 l 6 321 l 4 319 l 4 315 l 6 313 l 17 311 l 23 309 l 25 307 l
30 301 l 30 190 l 28 184 l 25 182 l 21 180 l 11 180 l 8 182 l 6 182 l
4 180 l 4 176 l 6 174 l 8 174 l 55 160 l p ef
pom
pum
2664 2843 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2825 2843 t
60 158 m 64 162 l 64 186 l 80 172 l 90 166 l 103 160 l 113 158 l
126 158 l 129 160 l 138 162 l 140 162 l 147 166 l 154 172 l 163 188 l
165 198 l 165 301 l 168 305 l 175 311 l 182 313 l 188 313 l 191 315 l
191 319 l 188 321 l 108 321 l 106 319 l 106 315 l 108 313 l 117 311 l
122 311 l 129 305 l 131 299 l 131 200 l 129 198 l 126 190 l 126 188 l
119 182 l 115 180 l 108 178 l 99 178 l 74 190 l 64 198 l 64 303 l
67 307 l 69 309 l 87 313 l 90 315 l 90 319 l 87 321 l 7 321 l 5 319 l
5 315 l 7 313 l 14 313 l 21 311 l 28 305 l 30 301 l 30 190 l 25 182 l
21 180 l 9 180 l 7 182 l 5 180 l 5 176 l 9 172 l 39 164 l p ef
pom
pum
3003 2843 t
56 117 m 59 117 l 61 119 l 61 162 l 99 162 l 101 164 l 101 172 l
99 174 l 61 174 l 61 286 l 63 295 l 68 301 l 78 305 l 85 305 l 94 301 l
106 293 l 110 295 l 113 297 l 110 301 l 89 319 l 87 319 l 82 321 l
80 323 l 68 325 l 56 325 l 49 323 l 45 321 l 33 311 l 26 293 l 26 174 l
5 174 l 2 172 l 2 170 l 9 164 l 14 162 l 16 162 l 28 151 l 54 121 l
54 119 l p ef
pom
pum
3104 2843 t
pom
pum
3189 2843 t
110 84 m 115 84 l 117 86 l 117 303 l 119 307 l 122 309 l 126 311 l
136 313 l 152 313 l 154 315 l 154 319 l 152 321 l 46 321 l 44 319 l
44 315 l 46 313 l 64 313 l 71 311 l 78 305 l 80 299 l 80 121 l 78 117 l
76 115 l 71 113 l 69 113 l 67 115 l 51 119 l 44 121 l 41 119 l 41 117 l
46 113 l p ef
pom
gr
gs
pum
1665 3346 t
7 88 m 131 88 l 172 98 l 183 102 l 189 106 l 196 113 l 209 139 l
209 160 l 207 168 l 201 180 l 183 196 l 169 203 l 147 209 l 140 209 l
143 213 l 151 221 l 192 266 l 192 268 l 232 309 l 236 311 l 243 313 l
250 313 l 252 315 l 252 319 l 250 321 l 189 321 l 183 315 l 183 313 l
129 250 l 123 243 l 107 225 l 107 223 l 98 213 l 85 213 l 78 215 l
78 297 l 80 303 l 87 309 l 109 313 l 111 315 l 111 319 l 109 321 l
7 321 l 4 319 l 4 315 l 7 313 l 13 313 l 24 311 l 29 309 l 33 305 l
36 301 l 38 295 l 38 113 l 36 106 l 29 100 l 13 96 l 7 96 l 4 94 l
4 90 l p
85 102 m 116 102 l 145 110 l 158 123 l 165 139 l 165 160 l 160 172 l
158 176 l 147 186 l 131 192 l 109 198 l 78 198 l 78 108 l p ef
pom
pum
1902 3346 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2054 3346 t
56 117 m 59 117 l 61 119 l 61 162 l 99 162 l 101 164 l 101 172 l
99 174 l 61 174 l 61 286 l 63 295 l 68 301 l 78 305 l 85 305 l 94 301 l
106 293 l 110 295 l 113 297 l 110 301 l 89 319 l 87 319 l 82 321 l
80 323 l 68 325 l 56 325 l 49 323 l 45 321 l 33 311 l 26 293 l 26 174 l
5 174 l 2 172 l 2 170 l 9 164 l 14 162 l 16 162 l 28 151 l 54 121 l
54 119 l p ef
pom
pum
2156 3346 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
2334 3346 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
2452 3346 t
60 158 m 64 162 l 64 186 l 80 172 l 90 166 l 103 160 l 113 158 l
126 158 l 129 160 l 138 162 l 140 162 l 147 166 l 154 172 l 163 188 l
165 198 l 165 301 l 168 305 l 175 311 l 182 313 l 188 313 l 191 315 l
191 319 l 188 321 l 108 321 l 106 319 l 106 315 l 108 313 l 117 311 l
122 311 l 129 305 l 131 299 l 131 200 l 129 198 l 126 190 l 126 188 l
119 182 l 115 180 l 108 178 l 99 178 l 74 190 l 64 198 l 64 303 l
67 307 l 69 309 l 87 313 l 90 315 l 90 319 l 87 321 l 7 321 l 5 319 l
5 315 l 7 313 l 14 313 l 21 311 l 28 305 l 30 301 l 30 190 l 25 182 l
21 180 l 9 180 l 7 182 l 5 180 l 5 176 l 9 172 l 39 164 l p ef
pom
pum
2630 3346 t
pom
pum
2715 3346 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2876 3346 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
3054 3346 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
3231 3346 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
3350 3346 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3511 3346 t
63 158 m 69 158 l 84 160 l 86 162 l 99 166 l 103 166 l 107 162 l
112 162 l 114 164 l 114 209 l 112 211 l 110 211 l 105 207 l 97 184 l
93 178 l 88 174 l 80 170 l 69 168 l 65 168 l 55 172 l 48 174 l 46 176 l
42 184 l 42 198 l 44 200 l 46 205 l 46 207 l 53 213 l 61 217 l 84 231 l
86 231 l 91 233 l 112 248 l 116 252 l 122 260 l 124 264 l 126 270 l
126 286 l 120 301 l 103 317 l 80 325 l 67 325 l 53 323 l 44 321 l
42 319 l 27 319 l 23 323 l 19 323 l 17 321 l 17 268 l 19 266 l 23 266 l
27 270 l 27 276 l 32 288 l 36 297 l 40 303 l 46 309 l 55 313 l 63 315 l
76 315 l 91 309 l 97 303 l 99 297 l 99 284 l 97 282 l 95 278 l 95 276 l
88 270 l 86 270 l 51 250 l 34 237 l 27 231 l 23 225 l 19 217 l 17 211 l
17 194 l 25 176 l 34 168 l 40 164 l p ef
pom
pum
3646 3346 t
63 158 m 69 158 l 84 160 l 86 162 l 99 166 l 103 166 l 107 162 l
112 162 l 114 164 l 114 209 l 112 211 l 110 211 l 105 207 l 97 184 l
93 178 l 88 174 l 80 170 l 69 168 l 65 168 l 55 172 l 48 174 l 46 176 l
42 184 l 42 198 l 44 200 l 46 205 l 46 207 l 53 213 l 61 217 l 84 231 l
86 231 l 91 233 l 112 248 l 116 252 l 122 260 l 124 264 l 126 270 l
126 286 l 120 301 l 103 317 l 80 325 l 67 325 l 53 323 l 44 321 l
42 319 l 27 319 l 23 323 l 19 323 l 17 321 l 17 268 l 19 266 l 23 266 l
27 270 l 27 276 l 32 288 l 36 297 l 40 303 l 46 309 l 55 313 l 63 315 l
76 315 l 91 309 l 97 303 l 99 297 l 99 284 l 97 282 l 95 278 l 95 276 l
88 270 l 86 270 l 51 250 l 34 237 l 27 231 l 23 225 l 19 217 l 17 211 l
17 194 l 25 176 l 34 168 l 40 164 l p ef
pom
gr
gs
pum
1665 3822 t
4 88 m 105 88 l 108 90 l 108 94 l 105 96 l 84 100 l 82 100 l 77 104 l
77 106 l 75 113 l 73 115 l 73 299 l 77 303 l 84 305 l 148 305 l
183 295 l 198 280 l 204 270 l 204 268 l 209 260 l 211 258 l 217 258 l
219 260 l 219 264 l 204 317 l 200 321 l 4 321 l 2 319 l 2 315 l
4 313 l 26 309 l 30 305 l 30 303 l 32 297 l 34 295 l 34 113 l 32 106 l
26 100 l 4 96 l 2 94 l 2 90 l p ef
pom
pum
1877 3822 t
87 158 m 106 158 l 138 166 l 152 174 l 165 186 l 170 192 l 184 225 l
184 252 l 182 262 l 177 274 l 168 290 l 158 301 l 152 307 l 142 313 l
124 321 l 117 323 l 103 325 l 87 325 l 53 315 l 46 311 l 28 295 l
23 288 l 9 254 l 9 227 l 11 217 l 16 205 l 21 196 l 32 182 l 37 178 l
48 170 l 67 162 l p
87 170 m 96 170 l 115 176 l 131 190 l 140 207 l 145 221 l 147 233 l
147 266 l 136 297 l 124 307 l 115 311 l 106 313 l 96 313 l 78 307 l
67 297 l 57 280 l 48 254 l 46 239 l 46 211 l 55 188 l 69 176 l p ef
pom
pum
2054 3822 t
85 158 m 100 158 l 127 166 l 136 170 l 147 180 l 147 182 l 149 186 l
151 188 l 151 200 l 143 209 l 138 211 l 127 211 l 116 200 l 114 196 l
107 178 l 107 176 l 102 172 l 96 170 l 85 170 l 73 172 l 65 176 l
49 190 l 38 217 l 38 243 l 40 254 l 42 260 l 51 276 l 67 290 l 69 290 l
78 295 l 80 297 l 91 299 l 102 299 l 114 297 l 123 293 l 129 288 l
140 278 l 147 270 l 147 268 l 151 264 l 156 268 l 156 272 l 151 280 l
138 299 l 125 311 l 118 315 l 105 321 l 98 323 l 87 325 l 73 325 l
42 315 l 22 297 l 18 290 l 7 260 l 7 231 l 9 221 l 13 209 l 20 196 l
24 190 l 42 174 l 49 170 l 58 166 l p ef
pom
pum
2215 3822 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2368 3822 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
2469 3822 t
pom
pum
2562 3822 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2740 3822 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2893 3822 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
3011 3822 t
49 80 m 54 80 l 61 82 l 71 90 l 73 94 l 73 104 l 71 108 l 61 117 l
45 117 l 40 115 l 33 108 l 31 104 l 31 94 l 33 90 l 42 82 l p
68 158 m 71 160 l 71 299 l 73 305 l 78 309 l 82 311 l 92 313 l 99 313 l
101 315 l 101 319 l 99 321 l 7 321 l 5 319 l 5 315 l 7 313 l 19 311 l
26 311 l 33 305 l 35 299 l 35 192 l 33 186 l 31 184 l 26 182 l 16 182 l
14 184 l 7 184 l 5 182 l 5 178 l 7 176 l 12 174 l p ef
pom
pum
3113 3822 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
3274 3822 t
55 80 m 57 80 l 60 82 l 60 184 l 69 176 l 69 174 l 71 172 l 80 166 l
108 158 l 119 158 l 131 160 l 138 162 l 142 164 l 149 168 l 168 184 l
172 190 l 177 198 l 182 211 l 184 221 l 184 248 l 170 284 l 165 290 l
142 311 l 136 315 l 99 325 l 80 325 l 67 323 l 44 317 l 39 315 l
32 311 l 28 307 l 25 303 l 25 110 l 23 106 l 21 104 l 16 102 l 2 102 l
0 100 l 0 96 l 2 94 l 7 94 l 53 82 l p
92 182 m 103 182 l 122 188 l 131 196 l 136 203 l 140 211 l 145 223 l
147 235 l 147 266 l 138 290 l 131 301 l 129 303 l 122 307 l 103 313 l
90 313 l 74 309 l 69 307 l 60 299 l 60 203 l 62 198 l 74 188 l 83 184 l
p ef
pom
pum
3451 3822 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
3545 3822 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3705 3822 t
pom
pum
3790 3822 t
70 160 m 74 164 l 70 179 l 57 224 l 55 226 l 55 231 l 57 229 l 57 226 l
66 214 l 72 208 l 78 199 l 78 197 l 102 172 l 115 164 l 129 160 l
131 160 l 139 162 l 145 166 l 147 168 l 147 170 l 150 175 l 152 177 l
152 191 l 143 222 l 141 224 l 141 229 l 143 226 l 147 220 l 147 218 l
162 197 l 188 170 l 213 160 l 215 160 l 223 162 l 233 172 l 236 179 l
236 193 l 207 297 l 207 301 l 209 303 l 217 303 l 233 287 l 233 285 l
242 276 l 246 281 l 246 283 l 244 287 l 238 295 l 219 314 l 213 318 l
205 322 l 195 324 l 193 324 l 186 322 l 180 316 l 178 312 l 178 301 l
207 191 l 207 185 l 205 183 l 193 183 l 176 195 l 160 214 l 150 229 l
150 231 l 147 235 l 143 239 l 133 262 l 119 310 l 119 316 l 115 320 l
90 320 l 88 318 l 90 316 l 123 193 l 123 185 l 121 183 l 117 181 l
109 183 l 96 191 l 84 204 l 74 216 l 57 241 l 53 249 l 31 316 l
31 318 l 29 320 l 4 320 l 2 318 l 2 316 l 29 224 l 37 189 l 37 185 l
33 181 l 16 181 l 14 179 l 14 175 l 18 170 l 31 168 l p ef
pom
pum
3790 3822 t
70 160 m 74 164 l 70 179 l 57 224 l 55 226 l 55 231 l 57 229 l 57 226 l
66 214 l 72 208 l 78 199 l 78 197 l 102 172 l 115 164 l 129 160 l
131 160 l 139 162 l 145 166 l 147 168 l 147 170 l 150 175 l 152 177 l
152 191 l 143 222 l 141 224 l 141 229 l 143 226 l 147 220 l 147 218 l
162 197 l 188 170 l 213 160 l 215 160 l 223 162 l 233 172 l 236 179 l
236 193 l 207 297 l 207 301 l 209 303 l 217 303 l 233 287 l 233 285 l
242 276 l 246 281 l 246 283 l 244 287 l 238 295 l 219 314 l 213 318 l
205 322 l 195 324 l 193 324 l 186 322 l 180 316 l 178 312 l 178 301 l
207 191 l 207 185 l 205 183 l 193 183 l 176 195 l 160 214 l 150 229 l
150 231 l 147 235 l 143 239 l 133 262 l 119 310 l 119 316 l 115 320 l
90 320 l 88 318 l 90 316 l 123 193 l 123 185 l 121 183 l 117 181 l
109 183 l 96 191 l 84 204 l 74 216 l 57 241 l 53 249 l 31 316 l
31 318 l 29 320 l 4 320 l 2 318 l 2 316 l 29 224 l 37 189 l 37 185 l
33 181 l 16 181 l 14 179 l 14 175 l 18 170 l 31 168 l p ef
pom
gr
gs
pum
1665 4827 t
4 88 m 105 88 l 108 90 l 108 94 l 105 96 l 84 100 l 82 100 l 77 104 l
77 106 l 75 113 l 73 115 l 73 299 l 77 303 l 84 305 l 148 305 l
183 295 l 198 280 l 204 270 l 204 268 l 209 260 l 211 258 l 217 258 l
219 260 l 219 264 l 204 317 l 200 321 l 4 321 l 2 319 l 2 315 l
4 313 l 26 309 l 30 305 l 30 303 l 32 297 l 34 295 l 34 113 l 32 106 l
26 100 l 4 96 l 2 94 l 2 90 l p ef
pom
pum
1877 4827 t
87 158 m 106 158 l 138 166 l 152 174 l 165 186 l 170 192 l 184 225 l
184 252 l 182 262 l 177 274 l 168 290 l 158 301 l 152 307 l 142 313 l
124 321 l 117 323 l 103 325 l 87 325 l 53 315 l 46 311 l 28 295 l
23 288 l 9 254 l 9 227 l 11 217 l 16 205 l 21 196 l 32 182 l 37 178 l
48 170 l 67 162 l p
87 170 m 96 170 l 115 176 l 131 190 l 140 207 l 145 221 l 147 233 l
147 266 l 136 297 l 124 307 l 115 311 l 106 313 l 96 313 l 78 307 l
67 297 l 57 280 l 48 254 l 46 239 l 46 211 l 55 188 l 69 176 l p ef
pom
pum
2054 4827 t
85 158 m 100 158 l 127 166 l 136 170 l 147 180 l 147 182 l 149 186 l
151 188 l 151 200 l 143 209 l 138 211 l 127 211 l 116 200 l 114 196 l
107 178 l 107 176 l 102 172 l 96 170 l 85 170 l 73 172 l 65 176 l
49 190 l 38 217 l 38 243 l 40 254 l 42 260 l 51 276 l 67 290 l 69 290 l
78 295 l 80 297 l 91 299 l 102 299 l 114 297 l 123 293 l 129 288 l
140 278 l 147 270 l 147 268 l 151 264 l 156 268 l 156 272 l 151 280 l
138 299 l 125 311 l 118 315 l 105 321 l 98 323 l 87 325 l 73 325 l
42 315 l 22 297 l 18 290 l 7 260 l 7 231 l 9 221 l 13 209 l 20 196 l
24 190 l 42 174 l 49 170 l 58 166 l p ef
pom
pum
2215 4827 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2368 4827 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
2469 4827 t
pom
pum
2562 4827 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2740 4827 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2893 4827 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
3011 4827 t
49 80 m 54 80 l 61 82 l 71 90 l 73 94 l 73 104 l 71 108 l 61 117 l
45 117 l 40 115 l 33 108 l 31 104 l 31 94 l 33 90 l 42 82 l p
68 158 m 71 160 l 71 299 l 73 305 l 78 309 l 82 311 l 92 313 l 99 313 l
101 315 l 101 319 l 99 321 l 7 321 l 5 319 l 5 315 l 7 313 l 19 311 l
26 311 l 33 305 l 35 299 l 35 192 l 33 186 l 31 184 l 26 182 l 16 182 l
14 184 l 7 184 l 5 182 l 5 178 l 7 176 l 12 174 l p ef
pom
pum
3113 4827 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
3274 4827 t
55 80 m 57 80 l 60 82 l 60 184 l 69 176 l 69 174 l 71 172 l 80 166 l
108 158 l 119 158 l 131 160 l 138 162 l 142 164 l 149 168 l 168 184 l
172 190 l 177 198 l 182 211 l 184 221 l 184 248 l 170 284 l 165 290 l
142 311 l 136 315 l 99 325 l 80 325 l 67 323 l 44 317 l 39 315 l
32 311 l 28 307 l 25 303 l 25 110 l 23 106 l 21 104 l 16 102 l 2 102 l
0 100 l 0 96 l 2 94 l 7 94 l 53 82 l p
92 182 m 103 182 l 122 188 l 131 196 l 136 203 l 140 211 l 145 223 l
147 235 l 147 266 l 138 290 l 131 301 l 129 303 l 122 307 l 103 313 l
90 313 l 74 309 l 69 307 l 60 299 l 60 203 l 62 198 l 74 188 l 83 184 l
p ef
pom
pum
3451 4827 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
3545 4827 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3705 4827 t
pom
pum
3790 4827 t
110 84 m 115 84 l 117 86 l 117 303 l 119 307 l 122 309 l 126 311 l
136 313 l 152 313 l 154 315 l 154 319 l 152 321 l 46 321 l 44 319 l
44 315 l 46 313 l 64 313 l 71 311 l 78 305 l 80 299 l 80 121 l 78 117 l
76 115 l 71 113 l 69 113 l 67 115 l 51 119 l 44 121 l 41 119 l 41 117 l
46 113 l p ef
pom
pum
3790 4827 t
110 84 m 115 84 l 117 86 l 117 303 l 119 307 l 122 309 l 126 311 l
136 313 l 152 313 l 154 315 l 154 319 l 152 321 l 46 321 l 44 319 l
44 315 l 46 313 l 64 313 l 71 311 l 78 305 l 80 299 l 80 121 l 78 117 l
76 115 l 71 113 l 69 113 l 67 115 l 51 119 l 44 121 l 41 119 l 41 117 l
46 113 l p ef
pom
gr
gs
pum
1665 5304 t
152 82 m 156 82 l 160 86 l 160 102 l 164 143 l 166 145 l 166 158 l
164 160 l 158 160 l 156 158 l 156 153 l 152 141 l 148 133 l 143 127 l
125 108 l 112 102 l 106 100 l 79 100 l 73 102 l 67 106 l 62 110 l
58 117 l 56 123 l 56 137 l 58 143 l 62 151 l 77 166 l 125 194 l
133 198 l 141 205 l 164 227 l 175 252 l 175 272 l 173 280 l 166 293 l
162 299 l 150 311 l 143 315 l 131 321 l 119 325 l 83 325 l 52 315 l
37 315 l 35 317 l 33 321 l 33 323 l 31 325 l 25 325 l 23 323 l 12 254 l
12 252 l 15 250 l 21 250 l 25 254 l 25 256 l 35 276 l 46 290 l 52 297 l
60 303 l 73 309 l 79 311 l 108 311 l 110 309 l 119 305 l 121 305 l
133 293 l 133 290 l 135 282 l 137 280 l 137 264 l 135 258 l 133 254 l
129 248 l 116 235 l 108 229 l 106 229 l 100 225 l 96 221 l 89 217 l
73 209 l 71 209 l 52 196 l 33 178 l 29 172 l 27 168 l 23 153 l 23 133 l
31 110 l 48 94 l 54 90 l 58 88 l 71 84 l 102 84 l 121 90 l 125 92 l
131 94 l 146 94 l 150 88 l 150 84 l p ef
pom
pum
1860 5304 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2021 5304 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2198 5304 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2351 5304 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
2529 5304 t
pom
pum
2622 5304 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2800 5304 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2952 5304 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
3054 5304 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
3231 5304 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3392 5304 t
pom
pum
3477 5304 t
87 158 m 106 158 l 138 166 l 152 174 l 165 186 l 170 192 l 184 225 l
184 252 l 182 262 l 177 274 l 168 290 l 158 301 l 152 307 l 142 313 l
124 321 l 117 323 l 103 325 l 87 325 l 53 315 l 46 311 l 28 295 l
23 288 l 9 254 l 9 227 l 11 217 l 16 205 l 21 196 l 32 182 l 37 178 l
48 170 l 67 162 l p
87 170 m 96 170 l 115 176 l 131 190 l 140 207 l 145 221 l 147 233 l
147 266 l 136 297 l 124 307 l 115 311 l 106 313 l 96 313 l 78 307 l
67 297 l 57 280 l 48 254 l 46 239 l 46 211 l 55 188 l 69 176 l p ef
pom
pum
3655 5304 t
89 80 m 97 80 l 119 86 l 129 96 l 131 102 l 129 108 l 127 113 l
125 115 l 123 115 l 119 117 l 117 119 l 113 119 l 109 117 l 99 106 l
99 104 l 95 98 l 93 96 l 89 94 l 83 92 l 79 92 l 73 94 l 65 102 l
63 108 l 63 162 l 103 162 l 105 164 l 105 172 l 103 174 l 63 174 l
63 299 l 65 305 l 69 309 l 73 311 l 81 313 l 93 313 l 95 315 l 95 319 l
93 321 l 6 321 l 4 319 l 4 315 l 6 313 l 28 309 l 30 307 l 32 303 l
34 297 l 34 174 l 8 174 l 6 172 l 6 164 l 8 162 l 34 162 l 38 127 l
44 108 l 48 102 l 59 90 l 71 84 l 77 82 l p ef
pom
pum
3773 5304 t
pom
pum
3866 5331 t
63 239 m 181 239 l 201 239 208 237 208 221 ct 208 181 172 146 116 146 ct 55 146 16 182 16 229 ct
16 277 55 313 116 313 ct 170 313 205 293 205 273 ct 205 263 198 256 189 256 ct
175 256 157 277 118 277 ct 87 277 l 69 265 l p
63 212 m 69 189 85 179 112 179 ct 140 179 158 191 161 212 ct p ef
pom
pum
4078 5331 t
73 290 m 85 305 102 313 125 313 ct 176 313 213 279 213 232 ct 213 185 176 149 126 149 ct
108 149 91 155 79 165 ct 79 94 l 79 86 76 83 68 83 ct 34 83 l 18 83 11 88 11 102 ct
11 115 18 121 31 121 ct 32 121 33 121 34 121 ct 34 271 l 33 271 32 271 31 271 ct
18 271 11 277 11 290 ct 11 304 18 309 34 309 ct 62 309 l 70 309 73 306 73 301 ct
p
120 276 m 96 276 79 257 79 231 ct 79 204 97 186 120 186 ct 144 186 162 204 162 231 ct
162 257 l 144 276 l p ef
pom
pum
4289 5331 t
101 339 m 78 339 l 78 292 l 91 302 108 307 128 307 ct 176 307 213 273 213 225 ct
213 180 176 145 125 145 ct 103 145 85 153 73 169 ct 73 156 l 73 152 70 149 62 149 ct
34 149 l 18 149 11 153 11 168 ct 11 180 18 187 31 187 ct 32 187 33 187 34 187 ct
34 339 l 23 339 l 8 339 0 344 0 358 ct 0 373 8 377 23 377 ct 101 377 l 116 377 124 373 124 358 ct
124 344 l 116 339 l p
79 227 m 79 200 96 182 120 182 ct 144 182 162 200 162 227 ct 162 253 144 271 120 271 ct
96 271 l 79 253 l p ef
pom
gr
gs
pum
6773 5458 t
75 286 m 217 286 l 240 286 249 284 249 265 ct 249 217 206 175 139 175 ct 66 175 19 218 19 274 ct
19 332 66 375 139 375 ct 203 375 246 351 246 328 ct 246 315 238 307 226 307 ct
210 307 188 332 141 332 ct 104 332 l 83 318 l p
75 254 m 83 227 102 214 134 214 ct 167 214 189 229 194 254 ct p ef
pom
pum
7027 5458 t
88 347 m 101 366 122 375 150 375 ct 212 375 255 335 255 279 ct 255 222 212 179 151 179 ct
129 179 109 186 95 197 ct 95 113 l 95 104 92 99 82 99 ct 41 99 l 22 99 13 105 13 122 ct
13 137 21 145 37 145 ct 38 145 39 145 41 145 ct 41 324 l 39 324 38 324 37 324 ct
21 324 13 332 13 347 ct 13 364 22 370 41 370 ct 74 370 l 83 370 88 367 88 361 ct
p
144 331 m 115 331 94 308 94 277 ct 94 245 116 223 144 223 ct 173 223 194 245 194 277 ct
194 308 l 173 331 l p ef
pom
pum
7281 5458 t
121 406 m 93 406 l 93 351 l 109 362 129 368 153 368 ct 211 368 255 327 255 269 ct
255 215 212 174 150 174 ct 124 174 102 184 87 203 ct 87 187 l 87 182 83 179 74 179 ct
41 179 l 22 179 13 184 13 202 ct 13 216 21 225 37 225 ct 38 225 39 225 41 225 ct
41 406 l 27 406 l 9 406 0 412 0 429 ct 0 447 9 452 27 452 ct 121 452 l 139 452 148 447 148 429 ct
148 412 l 139 406 l p
94 272 m 94 240 115 218 144 218 ct 173 218 194 240 194 272 ct 194 303 173 325 144 325 ct
115 325 l 94 303 l p ef
pom
gr
5164 5738 m 5539 5862 l 5538 5612 l 5164 5738 l p ef
6664 5738 m 5464 5738 l ps
gs
pum
1665 249 t
142 203 m 147 203 l 181 213 l 189 218 l 197 226 l 202 234 l 207 245 l
210 255 l 210 284 l 202 308 l 192 332 l 181 350 l 144 387 l 126 397 l
89 411 l 66 411 l 52 408 l 37 400 l 18 382 l 18 379 l 13 363 l 11 361 l
11 329 l 13 316 l 18 300 l 32 274 l 47 253 l 63 237 l 84 221 l 105 211 l
123 205 l p
139 213 m 150 216 l 155 218 l 163 226 l 171 245 l 171 274 l 157 324 l
139 361 l 131 371 l 110 392 l 100 397 l 92 400 l 76 400 l 73 397 l
68 395 l 66 395 l 55 384 l 55 382 l 52 371 l 50 368 l 50 340 l 63 292 l
76 266 l 81 258 l 87 253 l 95 242 l 95 240 l 108 226 l 116 221 l
126 216 l p ef
pom
pum
1877 249 t
106 95 m 108 95 l 113 100 l 108 113 l 89 192 l 52 355 l 47 374 l
47 384 l 49 387 l 59 387 l 66 382 l 71 376 l 80 363 l 80 361 l 92 347 l
96 353 l 96 355 l 89 363 l 85 371 l 85 374 l 59 403 l 49 408 l 42 411 l
28 411 l 23 408 l 16 400 l 14 392 l 14 376 l 31 313 l 73 129 l 73 124 l
71 121 l 66 118 l 54 116 l 47 116 l 45 113 l 45 111 l 47 108 l 52 105 l
94 97 l p ef
pom
pum
1987 249 t
228 95 m 234 95 l 236 97 l 236 105 l 226 139 l 163 371 l 163 379 l
165 384 l 176 384 l 184 379 l 189 374 l 189 371 l 207 353 l 213 358 l
213 361 l 205 371 l 176 400 l 168 405 l 163 408 l 155 411 l 139 411 l
134 408 l 129 403 l 126 397 l 126 374 l 129 361 l 131 358 l 131 355 l
126 361 l 116 374 l 116 376 l 95 397 l 87 403 l 63 411 l 42 411 l
34 408 l 29 405 l 21 400 l 16 395 l 11 387 l 5 371 l 5 342 l 16 311 l
18 305 l 21 297 l 21 295 l 39 266 l 50 253 l 68 234 l 89 218 l 110 208 l
118 205 l 134 203 l 139 203 l 142 205 l 152 208 l 155 208 l 163 216 l
165 221 l 165 224 l 168 221 l 192 132 l 192 121 l 189 118 l 184 116 l
165 116 l 163 113 l 163 108 l 165 105 l 215 97 l p
134 216 m 139 216 l 147 218 l 155 226 l 157 234 l 157 255 l 142 313 l
129 342 l 116 361 l 102 374 l 95 379 l 79 387 l 66 387 l 63 384 l
58 382 l 55 382 l 52 379 l 50 374 l 47 366 l 47 342 l 63 292 l 73 268 l
92 242 l 105 229 l 113 224 l p ef
pom
pum
2198 249 t
143 203 m 148 203 l 161 205 l 164 208 l 169 211 l 172 211 l 177 216 l
177 218 l 179 224 l 182 226 l 182 245 l 177 261 l 172 268 l 151 289 l
143 295 l 117 308 l 94 316 l 65 321 l 57 324 l 52 337 l 52 358 l
55 366 l 60 374 l 65 379 l 83 387 l 104 387 l 120 382 l 159 353 l
161 355 l 164 361 l 143 382 l 125 395 l 83 411 l 60 411 l 44 405 l
39 403 l 18 382 l 16 376 l 10 361 l 10 332 l 18 308 l 31 279 l 44 261 l
70 234 l 88 221 l 109 211 l 125 205 l p
135 213 m 138 213 l 143 216 l 148 221 l 151 226 l 151 242 l 148 250 l
143 261 l 138 268 l 125 282 l 114 289 l 99 297 l 68 308 l 60 308 l
83 258 l 99 237 l 107 229 l 117 221 l p ef
pom
pum
2393 249 t
99 203 m 101 205 l 99 208 l 83 271 l 83 279 l 86 276 l 91 268 l
91 266 l 93 261 l 109 240 l 136 211 l 154 205 l 159 205 l 169 208 l
174 213 l 174 216 l 177 224 l 179 226 l 179 232 l 177 240 l 174 245 l
172 247 l 169 247 l 164 250 l 162 253 l 152 253 l 147 250 l 141 245 l
139 240 l 139 237 l 129 237 l 116 250 l 116 253 l 111 261 l 106 266 l
101 274 l 83 311 l 53 403 l 51 405 l 20 405 l 18 403 l 18 400 l
35 332 l 58 250 l 58 229 l 56 226 l 51 224 l 38 224 l 35 226 l 33 226 l
30 224 l 30 218 l 33 216 l 38 216 l 96 205 l p ef
pom
pum
2554 249 t
pom
pum
2664 249 t
125 97 m 143 97 l 146 100 l 155 103 l 158 103 l 169 116 l 169 137 l
162 145 l 158 147 l 148 147 l 136 134 l 136 124 l 139 121 l 141 116 l
141 113 l 136 108 l 127 108 l 118 113 l 113 118 l 108 126 l 101 145 l
85 208 l 85 211 l 125 211 l 127 213 l 127 224 l 125 226 l 75 263 l
56 358 l 40 424 l 26 455 l 14 474 l 7 482 l -2 490 l -12 495 l -19 497 l
-38 497 l -40 495 l -47 492 l -49 492 l -59 482 l -59 458 l -52 450 l
-42 450 l -38 453 l -31 461 l -28 466 l -28 471 l -31 476 l -33 479 l
-33 482 l -28 487 l -21 487 l -19 484 l -14 482 l -12 482 l -7 476 l
-2 469 l 2 458 l 9 434 l 47 234 l 47 226 l 14 226 l 12 224 l 12 221 l
14 213 l 16 211 l 52 211 l 54 205 l 68 161 l 80 134 l 87 124 l 96 113 l
106 105 l 115 100 l p ef
pom
pum
2774 249 t
99 203 m 101 205 l 99 208 l 83 271 l 83 279 l 86 276 l 91 268 l
91 266 l 93 261 l 109 240 l 136 211 l 154 205 l 159 205 l 169 208 l
174 213 l 174 216 l 177 224 l 179 226 l 179 232 l 177 240 l 174 245 l
172 247 l 169 247 l 164 250 l 162 253 l 152 253 l 147 250 l 141 245 l
139 240 l 139 237 l 129 237 l 116 250 l 116 253 l 111 261 l 106 266 l
101 274 l 83 311 l 53 403 l 51 405 l 20 405 l 18 403 l 18 400 l
35 332 l 58 250 l 58 229 l 56 226 l 51 224 l 38 224 l 35 226 l 33 226 l
30 224 l 30 218 l 33 216 l 38 216 l 96 205 l p ef
pom
pum
2943 249 t
134 203 m 137 203 l 160 211 l 165 216 l 165 218 l 171 224 l 173 218 l
173 211 l 176 208 l 181 205 l 202 205 l 205 203 l 207 205 l 207 216 l
200 245 l 179 332 l 168 371 l 168 382 l 171 384 l 173 384 l 179 382 l
207 353 l 213 358 l 213 361 l 207 368 l 181 397 l 171 405 l 165 408 l
157 411 l 147 411 l 139 408 l 134 403 l 131 397 l 131 379 l 139 350 l
142 347 l 142 345 l 134 353 l 134 355 l 126 366 l 95 397 l 63 411 l
42 411 l 34 408 l 24 403 l 13 392 l 8 382 l 5 371 l 5 342 l 18 303 l
42 261 l 76 226 l 79 226 l 87 221 l 92 216 l p
129 216 m 142 216 l 150 218 l 157 226 l 160 232 l 163 240 l 163 250 l
150 297 l 137 329 l 129 342 l 110 366 l 102 374 l 95 379 l 76 387 l
66 387 l 58 384 l 50 376 l 50 374 l 47 366 l 45 363 l 45 342 l 47 329 l
58 297 l 73 266 l 84 250 l 108 226 l 116 221 l 121 218 l p ef
pom
pum
3155 249 t
93 203 m 98 208 l 93 226 l 76 284 l 74 287 l 74 292 l 76 289 l 76 287 l
87 271 l 96 263 l 104 253 l 104 250 l 137 218 l 153 208 l 172 203 l
175 203 l 186 205 l 194 211 l 197 213 l 197 216 l 199 221 l 202 224 l
202 242 l 191 282 l 188 284 l 188 289 l 191 287 l 197 279 l 197 276 l
216 250 l 251 216 l 284 203 l 287 203 l 298 205 l 311 218 l 314 226 l
314 245 l 276 376 l 276 382 l 279 384 l 290 384 l 311 363 l 311 361 l
322 350 l 328 355 l 328 358 l 325 363 l 317 374 l 292 397 l 284 403 l
273 408 l 259 411 l 257 411 l 249 408 l 240 400 l 238 395 l 238 382 l
276 242 l 276 234 l 273 232 l 257 232 l 235 247 l 213 271 l 199 289 l
199 292 l 197 297 l 191 303 l 177 332 l 158 392 l 158 400 l 153 405 l
120 405 l 117 403 l 120 400 l 164 245 l 164 234 l 161 232 l 156 229 l
145 232 l 128 242 l 112 258 l 98 274 l 76 305 l 71 316 l 41 400 l
41 403 l 38 405 l 5 405 l 3 403 l 3 400 l 38 284 l 49 240 l 49 234 l
44 229 l 22 229 l 19 226 l 19 221 l 25 216 l 41 213 l p ef
pom
pum
3460 249 t
143 203 m 148 203 l 161 205 l 164 208 l 169 211 l 172 211 l 177 216 l
177 218 l 179 224 l 182 226 l 182 245 l 177 261 l 172 268 l 151 289 l
143 295 l 117 308 l 94 316 l 65 321 l 57 324 l 52 337 l 52 358 l
55 366 l 60 374 l 65 379 l 83 387 l 104 387 l 120 382 l 159 353 l
161 355 l 164 361 l 143 382 l 125 395 l 83 411 l 60 411 l 44 405 l
39 403 l 18 382 l 16 376 l 10 361 l 10 332 l 18 308 l 31 279 l 44 261 l
70 234 l 88 221 l 109 211 l 125 205 l p
135 213 m 138 213 l 143 216 l 148 221 l 151 226 l 151 242 l 148 250 l
143 261 l 138 268 l 125 282 l 114 289 l 99 297 l 68 308 l 60 308 l
83 258 l 99 237 l 107 229 l 117 221 l p ef
pom
pum
3646 249 t
96 203 m 101 203 l 126 211 l 144 211 l 152 203 l 157 203 l 159 205 l
152 261 l 149 266 l 147 268 l 141 268 l 139 266 l 139 253 l 136 245 l
129 229 l 119 218 l 114 216 l 104 213 l 101 213 l 91 216 l 81 226 l
78 232 l 78 247 l 81 255 l 86 266 l 91 274 l 99 282 l 109 295 l
131 340 l 131 361 l 129 371 l 124 382 l 106 400 l 78 411 l 58 411 l
38 405 l 35 403 l 18 403 l 15 405 l 15 408 l 13 411 l 8 413 l 5 411 l
5 395 l 8 392 l 13 350 l 13 340 l 15 337 l 20 337 l 23 340 l 30 368 l
38 387 l 45 395 l 51 397 l 58 400 l 71 400 l 73 397 l 81 395 l 83 395 l
88 390 l 93 382 l 96 374 l 96 358 l 86 334 l 81 326 l 73 318 l 51 284 l
48 279 l 43 263 l 43 245 l 51 226 l 63 213 l 73 208 l 81 205 l p ef
pom
gr
164 5738 m 5164 5738 l ps
gs
pum
1665 5806 t
152 82 m 156 82 l 160 86 l 160 102 l 164 143 l 166 145 l 166 158 l
164 160 l 158 160 l 156 158 l 156 153 l 152 141 l 148 133 l 143 127 l
125 108 l 112 102 l 106 100 l 79 100 l 73 102 l 67 106 l 62 110 l
58 117 l 56 123 l 56 137 l 58 143 l 62 151 l 77 166 l 125 194 l
133 198 l 141 205 l 164 227 l 175 252 l 175 272 l 173 280 l 166 293 l
162 299 l 150 311 l 143 315 l 131 321 l 119 325 l 83 325 l 52 315 l
37 315 l 35 317 l 33 321 l 33 323 l 31 325 l 25 325 l 23 323 l 12 254 l
12 252 l 15 250 l 21 250 l 25 254 l 25 256 l 35 276 l 46 290 l 52 297 l
60 303 l 73 309 l 79 311 l 108 311 l 110 309 l 119 305 l 121 305 l
133 293 l 133 290 l 135 282 l 137 280 l 137 264 l 135 258 l 133 254 l
129 248 l 116 235 l 108 229 l 106 229 l 100 225 l 96 221 l 89 217 l
73 209 l 71 209 l 52 196 l 33 178 l 29 172 l 27 168 l 23 153 l 23 133 l
31 110 l 48 94 l 54 90 l 58 88 l 71 84 l 102 84 l 121 90 l 125 92 l
131 94 l 146 94 l 150 88 l 150 84 l p ef
pom
pum
1860 5806 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2021 5806 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2198 5806 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2351 5806 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
2529 5806 t
pom
pum
2622 5806 t
7 162 m 83 162 l 85 164 l 85 166 l 83 168 l 76 170 l 71 170 l 67 174 l
67 184 l 85 225 l 106 272 l 108 276 l 110 276 l 110 272 l 149 184 l
149 176 l 142 170 l 138 170 l 133 168 l 131 166 l 131 164 l 133 162 l
186 162 l 188 164 l 188 166 l 186 168 l 184 168 l 177 170 l 175 172 l
170 178 l 133 258 l 106 319 l 106 321 l 101 325 l 96 325 l 94 323 l
94 321 l 41 207 l 25 178 l 16 170 l 11 168 l 7 168 l 5 166 l 5 164 l
p ef
pom
pum
2800 5806 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2952 5806 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
3054 5806 t
5 162 m 57 162 l 60 164 l 60 282 l 62 288 l 67 295 l 69 297 l 76 301 l
85 303 l 94 303 l 117 295 l 126 286 l 129 282 l 129 180 l 126 176 l
124 174 l 101 170 l 99 168 l 99 164 l 101 162 l 161 162 l 163 164 l
163 293 l 165 297 l 168 299 l 172 301 l 186 301 l 188 303 l 188 307 l
186 309 l 184 309 l 140 321 l 136 323 l 133 325 l 131 323 l 131 297 l
129 297 l 106 317 l 96 321 l 80 325 l 69 325 l 57 323 l 55 321 l
51 319 l 48 319 l 32 305 l 28 297 l 25 288 l 25 180 l 23 176 l 16 170 l
9 168 l 5 168 l 2 166 l 2 164 l p ef
pom
pum
3231 5806 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
3392 5806 t
pom
pum
3477 5806 t
87 158 m 106 158 l 138 166 l 152 174 l 165 186 l 170 192 l 184 225 l
184 252 l 182 262 l 177 274 l 168 290 l 158 301 l 152 307 l 142 313 l
124 321 l 117 323 l 103 325 l 87 325 l 53 315 l 46 311 l 28 295 l
23 288 l 9 254 l 9 227 l 11 217 l 16 205 l 21 196 l 32 182 l 37 178 l
48 170 l 67 162 l p
87 170 m 96 170 l 115 176 l 131 190 l 140 207 l 145 221 l 147 233 l
147 266 l 136 297 l 124 307 l 115 311 l 106 313 l 96 313 l 78 307 l
67 297 l 57 280 l 48 254 l 46 239 l 46 211 l 55 188 l 69 176 l p ef
pom
pum
3655 5806 t
89 80 m 97 80 l 119 86 l 129 96 l 131 102 l 129 108 l 127 113 l
125 115 l 123 115 l 119 117 l 117 119 l 113 119 l 109 117 l 99 106 l
99 104 l 95 98 l 93 96 l 89 94 l 83 92 l 79 92 l 73 94 l 65 102 l
63 108 l 63 162 l 103 162 l 105 164 l 105 172 l 103 174 l 63 174 l
63 299 l 65 305 l 69 309 l 73 311 l 81 313 l 93 313 l 95 315 l 95 319 l
93 321 l 6 321 l 4 319 l 4 315 l 6 313 l 28 309 l 30 307 l 32 303 l
34 297 l 34 174 l 8 174 l 6 172 l 6 164 l 8 162 l 34 162 l 38 127 l
44 108 l 48 102 l 59 90 l 71 84 l 77 82 l p ef
pom
pum
3773 5806 t
pom
pum
3866 5833 t
63 239 m 181 239 l 201 239 208 237 208 221 ct 208 181 172 146 116 146 ct 55 146 16 182 16 229 ct
16 277 55 313 116 313 ct 170 313 205 293 205 273 ct 205 263 198 256 189 256 ct
175 256 157 277 118 277 ct 87 277 l 69 265 l p
63 212 m 69 189 85 179 112 179 ct 140 179 158 191 161 212 ct p ef
pom
pum
4078 5833 t
123 121 m 147 121 l 147 165 l 134 155 116 149 97 149 ct 49 149 12 185 12 232 ct
12 279 49 313 97 313 ct 121 313 140 304 152 289 ct 152 301 l 152 306 155 309 163 309 ct
191 309 l 207 309 214 304 214 290 ct 214 277 207 271 194 271 ct 193 271 192 271 191 271 ct
191 94 l 191 86 189 83 180 83 ct 123 83 l 107 83 100 88 100 102 ct 100 117 l
107 121 l p
105 276 m 81 276 63 257 63 231 ct 63 204 81 186 105 186 ct 128 186 146 204 146 231 ct
146 257 l 129 276 l p ef
pom
pum
4289 5833 t
89 105 m 89 122 93 125 112 125 ct 132 125 134 122 134 99 ct 134 78 132 72 112 72 ct
92 72 l 89 77 l p
128 149 m 73 149 l 57 149 49 153 49 168 ct 49 182 57 187 73 187 ct 93 187 l
93 271 l 54 271 l 38 271 30 275 30 290 ct 30 304 38 309 54 309 ct 178 309 l
193 309 201 304 201 290 ct 201 275 193 271 178 271 ct 138 271 l 138 157 l 138 152 l
134 149 l p ef
pom
gr
gs
pum
1693 7156 t
6 88 m 102 88 l 104 90 l 104 94 l 102 96 l 84 100 l 80 102 l 78 104 l
74 113 l 74 192 l 178 192 l 178 113 l 176 106 l 170 100 l 168 100 l
150 96 l 147 94 l 147 90 l 150 88 l 244 88 l 246 90 l 246 94 l 244 96 l
238 96 l 227 98 l 223 100 l 217 106 l 215 113 l 215 295 l 217 301 l
219 305 l 223 309 l 227 311 l 238 313 l 244 313 l 246 315 l 246 319 l
244 321 l 150 321 l 147 319 l 147 315 l 150 313 l 170 309 l 174 305 l
174 303 l 176 297 l 178 295 l 178 211 l 74 211 l 74 297 l 76 303 l
82 309 l 102 313 l 104 315 l 104 319 l 102 321 l 6 321 l 4 319 l
4 315 l 6 313 l 14 313 l 25 311 l 29 309 l 33 305 l 35 301 l 37 295 l
37 113 l 35 106 l 29 100 l 14 96 l 6 96 l 4 94 l 4 90 l p ef
pom
pum
1947 7156 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2099 7156 t
60 158 m 64 162 l 64 186 l 80 172 l 90 166 l 103 160 l 113 158 l
126 158 l 129 160 l 138 162 l 140 162 l 147 166 l 154 172 l 163 188 l
165 198 l 165 301 l 168 305 l 175 311 l 182 313 l 188 313 l 191 315 l
191 319 l 188 321 l 108 321 l 106 319 l 106 315 l 108 313 l 117 311 l
122 311 l 129 305 l 131 299 l 131 200 l 129 198 l 126 190 l 126 188 l
119 182 l 115 180 l 108 178 l 99 178 l 74 190 l 64 198 l 64 303 l
67 307 l 69 309 l 87 313 l 90 315 l 90 319 l 87 321 l 7 321 l 5 319 l
5 315 l 7 313 l 14 313 l 21 311 l 28 305 l 30 301 l 30 190 l 25 182 l
21 180 l 9 180 l 7 182 l 5 180 l 5 176 l 9 172 l 39 164 l p ef
pom
pum
2277 7156 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
2455 7156 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
2557 7156 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2717 7156 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
2836 7156 t
pom
pum
2921 7156 t
82 160 m 84 162 l 82 164 l 69 214 l 69 220 l 72 218 l 76 212 l 76 210 l
78 206 l 91 189 l 114 166 l 129 162 l 133 162 l 141 164 l 145 168 l
145 170 l 147 177 l 150 179 l 150 183 l 147 189 l 145 193 l 143 195 l
141 195 l 137 197 l 135 199 l 126 199 l 122 197 l 118 193 l 116 189 l
116 187 l 107 187 l 97 197 l 97 199 l 93 206 l 88 210 l 84 216 l
69 245 l 44 318 l 42 320 l 17 320 l 15 318 l 15 316 l 29 262 l 48 197 l
48 181 l 46 179 l 42 177 l 32 177 l 29 179 l 27 179 l 25 177 l 25 172 l
27 170 l 32 170 l 80 162 l p ef
pom
pum
2921 7156 t
82 160 m 84 162 l 82 164 l 69 214 l 69 220 l 72 218 l 76 212 l 76 210 l
78 206 l 91 189 l 114 166 l 129 162 l 133 162 l 141 164 l 145 168 l
145 170 l 147 177 l 150 179 l 150 183 l 147 189 l 145 193 l 143 195 l
141 195 l 137 197 l 135 199 l 126 199 l 122 197 l 118 193 l 116 189 l
116 187 l 107 187 l 97 197 l 97 199 l 93 206 l 88 210 l 84 216 l
69 245 l 44 318 l 42 320 l 17 320 l 15 318 l 15 316 l 29 262 l 48 197 l
48 181 l 46 179 l 42 177 l 32 177 l 29 179 l 27 179 l 25 177 l 25 172 l
27 170 l 32 170 l 80 162 l p ef
pom
gr
5189 7633 m 5564 7757 l 5563 7507 l 5189 7633 l p ef
6689 7633 m 5489 7633 l ps
gs
pum
6773 7322 t
75 286 m 217 286 l 240 286 249 284 249 265 ct 249 217 206 175 139 175 ct 66 175 19 218 19 274 ct
19 332 66 375 139 375 ct 203 375 246 351 246 328 ct 246 315 238 307 226 307 ct
210 307 188 332 141 332 ct 104 332 l 83 318 l p
75 254 m 83 227 102 214 134 214 ct 167 214 189 229 194 254 ct p ef
pom
pum
7027 7322 t
77 368 m 98 373 120 375 142 375 ct 204 375 237 351 237 310 ct 237 269 206 258 149 250 ct
110 244 92 246 92 228 ct 92 216 104 208 128 208 ct 167 208 180 238 203 238 ct 214 238 222 231 222 219 ct
222 194 l 222 180 215 173 203 173 ct 194 173 187 176 182 183 ct 161 177 141 174 121 174 ct
65 174 35 197 35 235 ct 35 268 59 286 110 293 ct 158 300 179 300 179 319 ct 179 330 167 340 144 340 ct
120 340 101 334 86 322 ct 75 313 76 301 57 301 ct 41 301 36 307 36 325 ct 36 353 l
36 368 38 376 53 376 ct 61 376 l 69 373 l p ef
pom
pum
7281 7322 t
121 406 m 93 406 l 93 351 l 109 362 129 368 153 368 ct 211 368 255 327 255 269 ct
255 215 212 174 150 174 ct 124 174 102 184 87 203 ct 87 187 l 87 182 83 179 74 179 ct
41 179 l 22 179 13 184 13 202 ct 13 216 21 225 37 225 ct 38 225 39 225 41 225 ct
41 406 l 27 406 l 9 406 0 412 0 429 ct 0 447 9 452 27 452 ct 121 452 l 139 452 148 447 148 429 ct
148 412 l 139 406 l p
94 272 m 94 240 115 218 144 218 ct 173 218 194 240 194 272 ct 194 303 173 325 144 325 ct
115 325 l 94 303 l p ef
pom
pum
7535 7295 t
47 358 m 55 358 l 58 360 l 66 363 l 68 363 l 84 378 l 84 381 l 87 389 l
89 391 l 89 409 l 84 425 l 81 430 l 76 438 l 55 459 l 47 464 l 37 469 l
32 464 l 32 459 l 34 456 l 37 456 l 50 446 l 55 441 l 63 430 l 68 420 l
68 409 l 42 409 l 34 407 l 26 399 l 24 394 l 24 376 l 26 371 l 34 363 l
39 360 l p ef
pom
pum
7637 7295 t
pom
pum
7747 7322 t
75 286 m 217 286 l 240 286 249 284 249 265 ct 249 217 206 175 139 175 ct 66 175 19 218 19 274 ct
19 332 66 375 139 375 ct 203 375 246 351 246 328 ct 246 315 238 307 226 307 ct
210 307 188 332 141 332 ct 104 332 l 83 318 l p
75 254 m 83 227 102 214 134 214 ct 167 214 189 229 194 254 ct p ef
pom
pum
8001 7322 t
147 145 m 176 145 l 176 197 l 160 186 139 179 116 179 ct 59 179 15 222 15 279 ct
15 335 59 375 116 375 ct 145 375 167 365 182 346 ct 182 361 l 182 367 186 370 195 370 ct
229 370 l 248 370 257 364 257 347 ct 257 332 249 324 232 324 ct 231 324 231 324 229 324 ct
229 113 l 229 103 226 99 216 99 ct 147 99 l 129 99 120 105 120 122 ct 120 140 l
129 145 l p
126 331 m 97 331 75 308 75 277 ct 75 245 97 223 126 223 ct 154 223 175 245 175 277 ct
175 308 l 155 331 l p ef
pom
pum
8255 7322 t
107 126 m 107 147 111 150 134 150 ct 158 150 161 146 161 119 ct 161 93 158 86 134 86 ct
110 86 l 107 93 l p
153 179 m 87 179 l 68 179 59 184 59 202 ct 59 219 68 225 87 225 ct 111 225 l
111 324 l 64 324 l 46 324 36 329 36 347 ct 36 364 46 370 64 370 ct 213 370 l
231 370 241 364 241 347 ct 241 329 231 324 213 324 ct 166 324 l 166 188 l 166 182 l
161 179 l p ef
pom
gr
164 6238 m 5164 6238 l ps
gs
pum
1693 6256 t
6 88 m 102 88 l 104 90 l 104 94 l 102 96 l 84 100 l 80 102 l 78 104 l
74 113 l 74 192 l 178 192 l 178 113 l 176 106 l 170 100 l 168 100 l
150 96 l 147 94 l 147 90 l 150 88 l 244 88 l 246 90 l 246 94 l 244 96 l
238 96 l 227 98 l 223 100 l 217 106 l 215 113 l 215 295 l 217 301 l
219 305 l 223 309 l 227 311 l 238 313 l 244 313 l 246 315 l 246 319 l
244 321 l 150 321 l 147 319 l 147 315 l 150 313 l 170 309 l 174 305 l
174 303 l 176 297 l 178 295 l 178 211 l 74 211 l 74 297 l 76 303 l
82 309 l 102 313 l 104 315 l 104 319 l 102 321 l 6 321 l 4 319 l
4 315 l 6 313 l 14 313 l 25 311 l 29 309 l 33 305 l 35 301 l 37 295 l
37 113 l 35 106 l 29 100 l 14 96 l 6 96 l 4 94 l 4 90 l p ef
pom
pum
1947 6256 t
76 158 m 94 158 l 120 166 l 131 176 l 136 182 l 136 186 l 138 194 l
140 196 l 140 295 l 143 299 l 147 303 l 154 303 l 167 297 l 169 299 l
169 305 l 151 321 l 147 323 l 138 325 l 129 325 l 127 323 l 120 321 l
118 321 l 114 317 l 109 303 l 107 301 l 102 305 l 87 315 l 69 323 l
58 325 l 47 325 l 27 317 l 20 311 l 16 305 l 11 290 l 11 282 l 20 262 l
33 250 l 42 243 l 107 219 l 109 217 l 109 188 l 107 182 l 102 176 l
100 174 l 94 170 l 85 168 l 73 168 l 60 172 l 53 178 l 51 182 l
51 188 l 53 194 l 56 196 l 56 200 l 53 205 l 45 213 l 38 215 l 31 215 l
22 207 l 20 203 l 20 192 l 22 186 l 24 182 l 38 170 l 45 166 l p
107 227 m 109 250 l 109 284 l 107 288 l 102 293 l 76 303 l 67 303 l
60 301 l 49 290 l 47 286 l 47 264 l 49 260 l 65 245 l p ef
pom
pum
2099 6256 t
60 158 m 64 162 l 64 186 l 80 172 l 90 166 l 103 160 l 113 158 l
126 158 l 129 160 l 138 162 l 140 162 l 147 166 l 154 172 l 163 188 l
165 198 l 165 301 l 168 305 l 175 311 l 182 313 l 188 313 l 191 315 l
191 319 l 188 321 l 108 321 l 106 319 l 106 315 l 108 313 l 117 311 l
122 311 l 129 305 l 131 299 l 131 200 l 129 198 l 126 190 l 126 188 l
119 182 l 115 180 l 108 178 l 99 178 l 74 190 l 64 198 l 64 303 l
67 307 l 69 309 l 87 313 l 90 315 l 90 319 l 87 321 l 7 321 l 5 319 l
5 315 l 7 313 l 14 313 l 21 311 l 28 305 l 30 301 l 30 190 l 25 182 l
21 180 l 9 180 l 7 182 l 5 180 l 5 176 l 9 172 l 39 164 l p ef
pom
pum
2277 6256 t
161 80 m 163 80 l 165 82 l 165 290 l 168 295 l 170 297 l 175 299 l
191 299 l 193 301 l 193 305 l 188 309 l 184 309 l 136 323 l 133 325 l
131 323 l 131 303 l 115 317 l 108 321 l 103 321 l 92 323 l 90 325 l
74 325 l 62 323 l 55 321 l 46 317 l 39 313 l 23 299 l 18 293 l 7 262 l
7 235 l 9 223 l 14 211 l 23 194 l 30 186 l 46 172 l 53 168 l 67 162 l
74 160 l 85 158 l 99 158 l 119 166 l 126 170 l 131 172 l 131 110 l
129 106 l 126 104 l 122 102 l 108 102 l 106 100 l 106 96 l 108 94 l
154 82 l p
87 170 m 96 170 l 115 176 l 124 184 l 124 186 l 129 194 l 131 196 l
131 286 l 129 290 l 117 301 l 115 301 l 106 303 l 103 305 l 92 305 l
83 303 l 74 299 l 67 295 l 62 290 l 62 288 l 57 282 l 53 278 l 44 250 l
44 219 l 46 209 l 51 196 l 53 192 l 57 186 l 69 176 l 78 172 l p ef
pom
pum
2455 6256 t
68 80 m 71 80 l 73 82 l 73 301 l 78 307 l 80 309 l 101 313 l 103 315 l
103 319 l 101 321 l 9 321 l 7 319 l 7 315 l 9 313 l 16 313 l 26 311 l
31 309 l 35 305 l 38 299 l 38 113 l 35 106 l 33 104 l 28 102 l 7 102 l
5 100 l 5 98 l 9 94 l 16 94 l 66 82 l p ef
pom
pum
2557 6256 t
80 158 m 96 158 l 123 166 l 131 172 l 138 178 l 147 190 l 154 211 l
154 221 l 151 223 l 38 223 l 38 243 l 40 254 l 45 266 l 47 270 l
56 282 l 62 288 l 69 293 l 78 297 l 89 299 l 102 299 l 127 290 l
136 284 l 140 280 l 151 264 l 154 262 l 156 262 l 160 266 l 160 270 l
154 282 l 145 295 l 127 311 l 120 315 l 87 325 l 71 325 l 60 323 l
53 321 l 40 315 l 22 299 l 13 282 l 9 268 l 7 256 l 7 235 l 16 205 l
22 192 l 31 180 l 33 178 l 36 178 l 47 170 l 51 166 l p
71 172 m 85 172 l 94 174 l 100 178 l 105 182 l 109 190 l 114 207 l
114 211 l 38 211 l 38 207 l 45 188 l 58 176 l 62 174 l p ef
pom
pum
2717 6256 t
52 158 m 53 160 l 53 190 l 55 188 l 55 186 l 61 178 l 75 164 l 89 158 l
97 158 l 103 160 l 107 162 l 111 166 l 113 170 l 113 184 l 111 188 l
107 192 l 103 194 l 95 194 l 91 192 l 83 184 l 79 182 l 73 182 l
69 184 l 59 194 l 55 200 l 53 205 l 53 299 l 57 307 l 59 309 l 81 313 l
83 315 l 83 319 l 81 321 l 2 321 l 0 319 l 0 315 l 2 313 l 6 311 l
14 311 l 18 309 l 22 305 l 24 301 l 24 192 l 22 190 l 20 186 l 20 184 l
2 184 l 0 182 l 0 178 l 2 176 l 6 176 l 30 168 l p ef
pom
pum
2836 6256 t
pom
pum
2921 6256 t
110 84 m 115 84 l 117 86 l 117 303 l 119 307 l 122 309 l 126 311 l
136 313 l 152 313 l 154 315 l 154 319 l 152 321 l 46 321 l 44 319 l
44 315 l 46 313 l 64 313 l 71 311 l 78 305 l 80 299 l 80 121 l 78 117 l
76 115 l 71 113 l 69 113 l 67 115 l 51 119 l 44 121 l 41 119 l 41 117 l
46 113 l p ef
pom
pum
2921 6256 t
110 84 m 115 84 l 117 86 l 117 303 l 119 307 l 122 309 l 126 311 l
136 313 l 152 313 l 154 315 l 154 319 l 152 321 l 46 321 l 44 319 l
44 315 l 46 313 l 64 313 l 71 311 l 78 305 l 80 299 l 80 121 l 78 117 l
76 115 l 71 113 l 69 113 l 67 115 l 51 119 l 44 121 l 41 119 l 41 117 l
46 113 l p ef
pom
gr
gr
0 8374 t
pom
count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore
%%PageTrailer
%%Trailer
%%EOF
%%EndDocument
@endspecial 238 1806 a Fp(\(b)r(efore)28 b(pushing)g(lo)r(cal)f
(exception)g(handlers\))582 b(\(after)27 b(pushing)h
Fo(r)i Fp(lo)r(cal)d(handlers\))1140 2094 y FF(Figure)k(22:)41
b(A)31 b(Lilt)g(function's)f(stac)m(k)i(frame)0 2360
y(to)j(address)e(b)s(oth)g(argumen)m(ts)h(and)g(lo)s(cal)h(v)-5
b(ariables)34 b(using)g(displacemen)m(ts)h(from)e Fz(ebp)o
FF(,)i(and)f(in)f(T)-8 b(AL)g(T)34 b(these)0 2473 y(displacemen)m(ts)c
(are)f(not)g(allo)m(w)m(ed)i(to)e(b)s(e)f(negativ)m(e.)43
b(Eac)m(h)29 b(function)g(stores)g(its)g(caller's)i(frame)d(p)s(oin)m
(ter)h(at)h(the)0 2586 y(v)m(ery)37 b(b)s(ottom)g(of)g(its)h(initial)g
(stac)m(k)g(frame)f(and)f(reloads)h(this)g(v)-5 b(alue)37
b(in)m(to)h Fz(ebp)e FF(b)s(efore)h(returning.)59 b(Register)0
2699 y Fz(edi)33 b FF(is)h(the)h FB(exc)-5 b(eption)37
b(p)-5 b(ointer)10 b FF(;)37 b(as)e(w)m(e)f(ha)m(v)m(e)h(already)g(men)
m(tioned,)h(its)e(v)-5 b(alue)35 b(is)f(the)g(address)g(of)g(a)g(lo)s
(cation)0 2812 y(on)g(the)g(stac)m(k)i(where)e(the)g(curren)m(t)g
(exception)h(handler)f(is)g(stored.)52 b(Th)m(us)33 b(at)i(the)g(b)s
(eginning)e(of)h(a)h(function,)0 2925 y Fz(edi)29 b FF(p)s(oin)m(ts)i
(somewhere)f FB(ab)-5 b(ove)38 b FF(the)31 b(function's)f(o)m(wn)g
(stac)m(k)i(frame.)141 3038 y(The)27 b(left-hand)h(side)g(of)g(Figure)g
(22)g(sho)m(ws)g(the)g(initial)h(state)g(of)e(a)i(function's)e(stac)m
(k)i(frame;)g(in)e(particular,)0 3151 y(this)34 b(frame)h(has)f(no)g(p)
s(ending)f(lo)s(cal)i(exception)h(handlers.)52 b(The)34
b(righ)m(t-hand)g(side)g(sho)m(ws)g(a)h(frame)f(in)g(whic)m(h)0
3264 y Fy(r)g FF(handlers)d(ha)m(v)m(e)i(b)s(een)e(pushed)g(b)m(y)g
(the)h(function.)45 b(Notice)34 b(that)f(b)s(efore)e(pushing)f(the)i
(\014rst)g(lo)s(cal)h(exception)0 3376 y(handler,)g(the)h(function)f
(sa)m(v)m(es)i(the)e(initial)i(v)-5 b(alue)33 b(of)h
Fz(edi)e FF(on)h(the)h(stac)m(k;)i(this)e(v)-5 b(alue)33
b(m)m(ust)g(b)s(e)g(reloaded)h(in)m(to)0 3489 y Fz(edi)26
b FF(when)f(the)i(function)g(returns,)f(or)h(an)m(y)g(time)g(the)g
(non-lo)s(cal)h(exception)f(handler)f(b)s(ecomes)h(curren)m(t)g(again.)
0 3602 y(As)34 b(long)h(as)g(the)g(curren)m(t)f(exception)h(handler)f
(is)g(lo)s(cal)i(to)f(the)g(curren)m(t)f(function,)h
Fz(edi)f FF(will)g(ha)m(v)m(e)i(the)f(same)0 3715 y(v)-5
b(alue)31 b(as)f Fz(esp)p FF(.)141 3828 y(Since)e(w)m(e)g(are)g(using)g
(a)g(p)s(olling)g(strategy)h(for)f(yielding,)h(all)g(the)f(co)s(de)g(p)
s(oin)m(ters)f(in)h(the)g(BT)-8 b(AL)g(T-R)28 b(output)0
3941 y(of)j(our)g(translation)i(m)m(ust)e(mak)m(e)h(assumptions)f(ab)s
(out)g(the)g(minor)g(clo)s(c)m(k)i(that)f(are)f(re\015ected)h(in)f
(their)h(t)m(yp)s(es.)0 4054 y(T)-8 b(o)32 b(write)g(these)g(t)m(yp)s
(es,)g(w)m(e)h(will)f(use)f(some)h(notation)h(based)e(on)h(the)g
(\014ction)g(that)g(there)g(is)g(a)g(single)g(register)0
4167 y(called)i Fz(mck)o FF(,)g(analogous)g(to)g Fz(ck)o
FF(,)g(that)f(holds)g(the)g(v)-5 b(alue)33 b(of)g(the)g(minor)g(clo)s
(c)m(k.)49 b(In)32 b(particular,)j(for)d(BT)-8 b(AL)g(T-R)0
4280 y(register)31 b(\014le)g(t)m(yp)s(es)f(\000,)g(de\014ne:)1016
4471 y(\000[)p Fz(mck)1241 4485 y Fx(u)1312 4471 y Fw(7!)25
b Fy(t)p FF(])g(=)g(\000[)p Fz(esi)f Fw(7!)i(S)7 b FF(\()p
Fy(u)p FF(\))p Fy(;)15 b Fz(ck)25 b Fw(7!)h Fy(t)20 b
FF(+)f(\()p 2614 4402 46 4 v(2)i(+)f Fy(u)p FF(\)])0
4663 y(Here)34 b Fy(u)f FF(\(whic)m(h)g(will)h(nearly)f(alw)m(a)m(ys)i
(b)s(e)e(a)g(v)-5 b(ariable\))35 b(is)e(the)h(constrain)m(t)g(term)f
(represen)m(tation)i(of)e(the)h(clo)s(c)m(k)0 4775 y(register;)28
b(\000[)p Fz(mck)571 4789 y Fx(u)641 4775 y Fw(7!)e Fy(t)p
FF(])e(is)h(the)h(register)f(\014le)g(t)m(yp)s(e)g(that)h(sp)s
(eci\014es)f Fy(u)f FF(on)h(the)g(clo)s(c)m(k)i(register)e(and)g
Fy(t)f FF(on)h(the)g(minor)0 4888 y(clo)s(c)m(k,)36 b(and)c(agrees)j
(with)e(\000)g(on)g(ev)m(erything)h(else.)51 b(W)-8 b(e)34
b(will)g(tak)m(e)h(the)e(lib)s(ert)m(y)h(of)g(writing)f(register)h
(\014les)f(that)0 5001 y(sp)s(ecify)28 b(a)h(static)i(term)d(for)h
Fz(mck)f FF(in)g(a)h(similar)g(w)m(a)m(y:)41 b Fw(f)p
Fz(r)1932 5015 y Fv(1)1971 5001 y FF(:)p Fy(\034)2036
5015 y Fv(1)2076 5001 y Fy(;)15 b(:)g(:)g(:)h(;)f Fz(r)2326
5015 y Fx(n)2373 5001 y FF(:)p Fy(\034)2438 5015 y Fx(n)2485
5001 y Fy(;)g Fz(mck)2668 5015 y Fx(u)2713 5001 y FF(:)p
Fy(t)p Fw(g)29 b FF(will)g(denote)g(the)g(register)h(\014le)0
5114 y(t)m(yp)s(e)h Fw(f)p Fz(r)298 5128 y Fv(1)337 5114
y FF(:)p Fy(\034)402 5128 y Fv(1)442 5114 y Fy(;)15 b(:)g(:)g(:)h(;)f
Fz(r)691 5128 y Fx(n)738 5114 y FF(:)p Fy(\034)803 5128
y Fx(n)850 5114 y Fw(g)p FF([)p Fz(mck)1064 5128 y Fx(u)1134
5114 y Fw(7!)26 b Fy(t)p FF(])k(as)h(de\014ned)e(ab)s(o)m(v)m(e.)141
5227 y(The)h(t)m(yp)s(e)g(of)g(the)g(stac)m(k)h(at)g(an)m(y)f(p)s(oin)m
(t)g(in)f(a)i(Lilt)f(program)g(can)g(b)s(e)f(determined)h(using)f(the)h
(function)g FB(ST)0 5340 y FF(in)36 b(Figure)g(23.)58
b(In)m(tuitiv)m(ely)-8 b(,)40 b FB(ST)1172 5354 y Fx(\032)1208
5363 y Fu(1)1243 5354 y Fx(;\032)1299 5363 y Fu(2)1333
5354 y Fx(;\013)1398 5366 y Fn(f)1438 5354 y Fx(;\013)1503
5366 y Fn(h)1543 5354 y Fx(;a)1604 5340 y FF(\(\004)p
Fy(;)15 b FF(\000)p Fy(;)g(\034)10 b FF(\))37 b(is)f(the)g(t)m(yp)s(e)g
(of)g(the)h(stac)m(k)g(t)m(yp)s(e)f(corresp)s(onding)f(to)i(a)1905
5589 y(36)p eop
%%Page: 37 39
37 38 bop 237 473 a FB(ST)365 487 y Fx(\032)401 496 y
Fu(1)436 487 y Fx(;\032)492 496 y Fu(2)526 487 y Fx(;\013)591
499 y Fn(f)631 487 y Fx(;\013)696 499 y Fn(h)736 487
y Fx(;a)797 473 y FF(\()p Fw(\001)p Fy(;)15 b FF(\000)p
Fy(;)g(\034)10 b FF(\))85 b(=)e Fy(\013)1376 488 y Fx(f)1441
473 y Fw(\002)20 b(j)p Fy(\034)1597 488 y Fx(l)q Fv(1)1658
473 y Fw(j)h(\002)f(\001)15 b(\001)g(\001)21 b(\002)f(j)p
Fy(\034)2077 488 y Fx(l)q(L)2151 473 y Fw(j)g(\002)g
Fy(\034)2327 487 y Fx(r)2385 473 y Fw(\002)g Fy(\033)2528
487 y Fv(0)829 749 y FB(wher)-5 b(e:)238 b FF(\000)25
b(=)g([)p Fz(arg)o FF(\(1\):)p Fy(\034)1844 763 y Fx(a)p
Fv(1)1922 749 y Fy(;)15 b(:)g(:)g(:)i(;)e Fz(arg)o FF(\()p
Fy(A)p FF(\):)p Fy(\034)2470 763 y Fx(aA)2566 749 y Fy(;)g
Fz(loc)o FF(\(1\):)p Fy(\034)2929 764 y Fx(l)q Fv(1)2992
749 y Fy(;)g(:)g(:)g(:)h(;)f Fz(loc)p FF(\()p Fy(L)p
FF(\):)p Fy(\034)3534 764 y Fx(l)q(L)3608 749 y FF(])1318
886 y Fy(\033)1370 900 y Fv(0)1434 886 y FF(=)25 b Fw(j)p
Fy(\034)1595 900 y Fx(a)p Fv(1)1672 886 y Fw(j)20 b(\002)g(\001)15
b(\001)g(\001)22 b(\002)e(j)p Fy(\034)2091 900 y Fx(aA)2185
886 y Fw(j)h(\002)e Fy(\032)2368 900 y Fv(1)2428 886
y Fw(\002)h Fy(\034)2559 901 y Fx(h)2624 886 y Fw(\002)g
Fy(\032)2762 900 y Fv(2)1318 1024 y Fy(\034)1358 1039
y Fx(h)1427 1024 y FF(=)25 b Fy(\013)1581 1039 y Fx(h)1646
1024 y Fw(^)20 b(8)p Fy(b)p FF(:)p Fs(N)p Fy(:)p Fw(f)p
Fz(eax)p FF(:)p Fw(j)p Fy(\034)2210 1038 y Fv(exn)2323
1024 y Fw(j)p Fy(;)15 b Fz(ebx)o FF(:)p Fz(got)p Fy(;)g
Fz(esp)o FF(:)p Fy(\032)2955 1038 y Fv(2)2995 1024 y
Fy(;)g Fz(mck)3179 1039 y Fx(b)3213 1024 y FF(:)p 3238
951 83 4 v Fy(H)7 b Fw(g)26 b(!)f FF(0)1318 1162 y Fy(\034)1358
1176 y Fx(r)1420 1162 y FF(=)g Fw(8)p Fy(b)1606 1124
y Ft(0)1629 1162 y FF(:)p Fs(N)p Fy(:)p Fw(f)p Fz(eax)q
FF(:)p Fw(j)p Fy(\034)10 b Fw(j)p Fy(;)15 b Fz(ebx)p
FF(:)p Fz(got)p Fy(;)g Fz(ebp)o FF(:)p Fy(\013)2677 1177
y Fx(f)2723 1162 y Fy(;)g Fz(edi)p FF(:)p Fy(\034)2972
1176 y Fx(e)3008 1162 y Fy(;)g Fz(esp)p FF(:)p Fy(\033)3269
1176 y Fv(0)3309 1162 y Fy(;)g Fz(mck)3492 1177 y Fx(b)3522
1158 y Fm(0)3549 1162 y FF(:)p Fy(a)p Fw(g)26 b(!)f FF(0)1318
1300 y Fy(\034)1358 1314 y Fx(e)1419 1300 y FF(=)g Fz(sptr)o
FF(\()p Fy(\034)1781 1315 y Fx(h)1846 1300 y Fw(\002)20
b Fy(\032)1984 1314 y Fv(2)2024 1300 y FF(\))45 1575
y FB(ST)174 1589 y Fx(\032)210 1598 y Fu(1)244 1589 y
Fx(;\032)300 1598 y Fu(2)335 1589 y Fx(;\013)400 1601
y Fn(f)439 1589 y Fx(;\013)504 1601 y Fn(h)545 1589 y
Fx(;a)606 1575 y FF(\(\()p Fw(\001)p Fy(;)15 b FF(\000)798
1538 y Ft(0)822 1575 y FF(\))p Fy(;)g FF(\000)p Fy(;)g(\034)10
b FF(\))85 b(=)e(\()p Fw(8)p Fy(b)p FF(:)p Fs(N)p Fy(:)p
Fw(f)p Fz(eax)p FF(:)p Fw(j)p Fy(\034)1836 1589 y Fv(exn)1948
1575 y Fw(j)p Fy(;)15 b Fz(ebx)p FF(:)p Fz(got)o Fy(;)g
Fz(esp)p FF(:)p Fy(\034)2574 1589 y Fx(e)2631 1575 y
Fw(\002)20 b FB(ST)12 b FF(\()p Fw(\001)p Fy(;)j FF(\000)3007
1538 y Ft(0)3031 1575 y Fy(;)g(\034)10 b FF(\))p Fy(;)15
b Fz(mck)3341 1590 y Fx(b)3375 1575 y FF(:)p 3400 1502
V Fy(H)7 b Fw(g)26 b(!)f FF(0\))1681 1713 y Fw(\002)p
Fy(\034)1792 1727 y Fx(e)1849 1713 y Fw(\002)20 b FB(ST)12
b FF(\()p Fw(\001)p FF(;)j(\000;)g Fy(\034)10 b FF(\))829
1851 y FB(wher)-5 b(e:)238 b Fy(\034)1358 1866 y Fx(h)1427
1851 y FF(=)25 b Fy(\013)1581 1866 y Fx(h)1646 1851 y
Fw(^)20 b(8)p Fy(b)p FF(:)p Fs(N)p Fy(:)p Fw(f)p Fz(eax)p
FF(:)p Fw(j)p Fy(\034)2210 1865 y Fv(exn)2323 1851 y
Fw(j)p Fy(;)15 b Fz(ebx)o FF(:)p Fz(got)p Fy(;)g Fz(esp)o
FF(:)p Fy(\032)2955 1865 y Fv(2)2995 1851 y Fy(;)g Fz(mck)3179
1866 y Fx(b)3213 1851 y FF(:)p 3238 1778 V Fy(H)7 b Fw(g)26
b(!)f FF(0)1318 1989 y Fy(\034)1358 2003 y Fx(e)1419
1989 y FF(=)g Fz(sptr)o FF(\()p Fy(\034)1781 2004 y Fx(h)1846
1989 y Fw(\002)20 b Fy(\032)1984 2003 y Fv(2)2024 1989
y FF(\))442 2265 y FB(ST)13 b FF(\(\(\004)p Fy(;)i FF(\000)799
2227 y Ft(0)822 2265 y FF(\))p Fy(;)g FF(\000)p Fy(;)g(\034)10
b FF(\))85 b(=)e(\()p Fw(8)p Fy(b)p FF(:)p Fs(N)p Fy(:)p
Fw(f)p Fz(eax)p FF(:)p Fw(j)p Fy(\034)1836 2279 y Fv(exn)1948
2265 y Fw(j)p Fy(;)15 b Fz(ebx)p FF(:)p Fz(got)o Fy(;)g
Fz(esp)p FF(:)p FB(ST)e FF(\(\004)p Fy(;)i FF(\000)2856
2227 y Ft(0)2879 2265 y Fy(;)g(\034)10 b FF(\))p Fy(;)15
b Fz(mck)3188 2280 y Fx(b)3223 2265 y FF(:)p 3248 2192
V Fy(H)7 b Fw(g)26 b(!)f FF(0\))1681 2402 y Fw(\002)p
FB(ST)12 b FF(\(\004)p Fy(;)j FF(\000)p Fy(;)g(\034)10
b FF(\))1318 2540 y FB(if)32 b FF(\004)25 b Fw(6)p FF(=)g
Fw(\001)1147 2827 y FF(Figure)31 b(23:)41 b(Determining)31
b(the)g(Stac)m(k)g(T)m(yp)s(e)217 3653 y FB(RF)355 3667
y Fx(\032)391 3676 y Fu(1)426 3667 y Fx(;\032)482 3676
y Fu(2)516 3667 y Fx(;\013)581 3679 y Fn(f)621 3667 y
Fx(;\013)686 3679 y Fn(h)726 3667 y Fx(;a;u)848 3653
y FF(\()p Fw(\001)p Fy(;)15 b FF(\000)p Fy(;)g(\034)5
b(;)15 b(t)p FF(\))85 b(=)d Fw(f)p Fz(ebx)p FF(:)p Fz(got)o
Fy(;)15 b Fz(edi)p FF(:)p Fy(\034)2042 3667 y Fx(e)2079
3653 y Fy(;)g Fz(ebp)o FF(:)p Fz(sptr)p FF(\()p Fy(\033)2566
3667 y Fv(1)2605 3653 y FF(\))p Fy(;)g Fz(esp)p FF(:)p
Fy(\033)2901 3667 y Fv(1)2941 3653 y Fy(;)g Fz(mck)3125
3667 y Fx(u)3170 3653 y FF(:)p Fy(t)p Fw(g)948 3802 y
FB(wher)-5 b(e:)237 b Fy(\034)1476 3817 y Fx(h)1546 3802
y FF(=)25 b Fy(\013)1700 3817 y Fx(h)1765 3802 y Fw(^)20
b(8)p Fy(b)1936 3764 y Ft(0)1959 3802 y FF(:)p Fs(N)p
Fy(:)p Fw(f)p Fz(eax)p FF(:)p Fw(j)p Fy(\034)2352 3816
y Fv(exn)2465 3802 y Fw(j)p Fy(;)15 b Fz(ebx)o FF(:)p
Fz(got)p Fy(;)g Fz(esp)p FF(:)p Fy(\032)3098 3816 y Fv(2)3137
3802 y Fy(;)g Fz(mck)3321 3817 y Fx(b)3351 3798 y Fm(0)3377
3802 y FF(:)p 3402 3729 V Fy(H)8 b Fw(g)25 b(!)h FF(0)1436
3939 y Fy(\034)1476 3953 y Fx(e)1538 3939 y FF(=)f Fz(sptr)o
FF(\()p Fy(\034)1900 3954 y Fx(h)1965 3939 y Fw(\002)20
b Fy(\032)2103 3953 y Fv(2)2143 3939 y FF(\))1436 4077
y Fy(\033)1488 4091 y Fv(1)1553 4077 y FF(=)25 b FB(ST)1777
4091 y Fx(\032)1813 4100 y Fu(1)1848 4091 y Fx(;\032)1904
4100 y Fu(2)1938 4091 y Fx(;\013)2003 4103 y Fn(f)2043
4091 y Fx(;a)2104 4077 y FF(\()p Fw(\001)p Fy(;)15 b
FF(\000)p Fy(;)g(\034)10 b FF(\))182 4353 y FB(RF)320
4367 y Fx(\032)356 4376 y Fu(1)390 4367 y Fx(;\032)446
4376 y Fu(2)481 4367 y Fx(;\013)546 4379 y Fn(f)586 4367
y Fx(;\013)651 4379 y Fn(h)691 4367 y Fx(;a;u)812 4353
y FF(\(\004)p Fy(;)15 b FF(\000)p Fy(;)g(\034)5 b(;)15
b(t)p FF(\))85 b(=)d Fw(f)p Fz(ebx)p FF(:)p Fz(got)o
Fy(;)15 b Fz(edi)p FF(:)p Fz(sptr)o FF(\()p Fy(\033)2280
4367 y Fv(2)2320 4353 y FF(\))p Fy(;)g Fz(ebp)p FF(:)p
Fz(sptr)o FF(\()p Fy(\033)2842 4367 y Fv(1)2882 4353
y FF(\))p Fy(;)g Fz(esp)p FF(:)p Fy(\033)3178 4367 y
Fv(2)3217 4353 y Fy(;)g Fz(mck)3401 4367 y Fx(u)3446
4353 y FF(:)p Fy(t)p Fw(g)948 4491 y FB(wher)-5 b(e:)237
b Fy(\033)1488 4505 y Fv(1)1553 4491 y FF(=)25 b FB(ST)1777
4505 y Fx(\032)1813 4514 y Fu(1)1848 4505 y Fx(;\032)1904
4514 y Fu(2)1938 4505 y Fx(;\013)2003 4517 y Fn(f)2043
4505 y Fx(;\013)2108 4517 y Fn(h)2148 4505 y Fx(;a)2209
4491 y FF(\()p Fw(\001)p Fy(;)15 b FF(\000)p Fy(;)g(\034)10
b FF(\))1436 4629 y Fy(\033)1488 4643 y Fv(2)1553 4629
y FF(=)25 b FB(ST)1777 4643 y Fx(\032)1813 4652 y Fu(1)1848
4643 y Fx(;\032)1904 4652 y Fu(2)1938 4643 y Fx(;\013)2003
4655 y Fn(f)2043 4643 y Fx(;\013)2108 4655 y Fn(h)2148
4643 y Fx(;a)2209 4629 y FF(\(\004)p Fy(;)15 b FF(\000)p
Fy(;)g(\034)10 b FF(\))1436 4766 y(\004)25 b Fw(6)p FF(=)g
Fw(\001)1002 5054 y FF(Figure)31 b(24:)42 b(Determining)31
b(the)g(Register)g(File)h(T)m(yp)s(e)1905 5589 y(37)p
eop
%%Page: 38 40
38 39 bop 412 179 a FB(LL)p FF(\(\001)p Fy(;)15 b FF(\004)p
Fy(;)g FF(\000)p Fy(;)g(\034)5 b(;)15 b(\024;)g FF([)t(\026)-49
b Fy(r)1118 193 y Fv(1)1185 179 y Fw(7!)25 b Fy(\034)1341
193 y Fv(1)1381 179 y Fy(;)15 b(:)g(:)g(:)h(;)k FF(\026)-50
b Fy(r)1623 193 y Fx(n)1696 179 y Fw(7!)25 b Fy(\034)1852
193 y Fx(n)1899 179 y FF(]\))h(=)1012 292 y Fw(8)p Fy(\013)1121
306 y Fv(1)1161 292 y FF(:)p Fw(j)p Fy(k)1258 306 y Fv(1)1298
292 y Fw(j)p Fy(:)15 b(:)g(:)g(:)i Fw(8)p Fy(\013)1594
306 y Fx(m)1660 292 y FF(:)p Fw(j)p Fy(k)1757 306 y Fx(m)1824
292 y Fw(j)p Fy(:)p Fw(8)p Fy(\032)1972 306 y Fv(1)2012
292 y FF(:)p Fs(TD)p Fy(:)p Fw(8)p Fy(\032)2288 306 y
Fv(2)2327 292 y FF(:)p Fs(TD)o Fy(:)p Fw(8)p Fy(\013)2613
307 y Fx(f)2659 292 y FF(:)p Fs(T)p FF(4)p Fy(:)p Fw(8)p
Fy(\013)2925 307 y Fx(h)2970 292 y FF(:)p Fs(T)p FF(4)p
Fy(:)1012 406 y Fw(8)p Fy(a)p FF(:)p Fs(N)p Fy(:)p Fw(8)p
Fy(b)p FF(:)p Fs(N)p Fy(:)32 b FF(\()p 1496 333 73 4
v Fy(E)26 b FF(+)19 b Fy(a)26 b Fw(\024)p 1849 333 219
4 v 25 w Fy(L)20 b Fw(\000)g FF(1\))26 b Fw(\))1312 519
y FB(RF)1450 534 y Fx(\032)1486 543 y Fu(1)1521 534 y
Fx(;\032)1577 543 y Fu(2)1611 534 y Fx(;\013)1676 546
y Fn(f)1716 534 y Fx(;\013)1781 546 y Fn(h)1821 534 y
Fx(;a;b)1932 519 y FF(\(\004)p Fy(;)15 b FF(\000)p Fy(;)g(\034)5
b(;)15 b Fw(j)p Fy(\024)p Fw(j)2352 533 y Fx(a)2396 519
y FF(\)[)t(\026)-49 b Fy(r)2497 533 y Fv(1)2562 519 y
Fw(7!)25 b Fy(\034)2718 533 y Fv(1)2757 519 y Fy(;)15
b(:)g(:)g(:)i(;)i FF(\026)-49 b Fy(r)3000 533 y Fx(n)3073
519 y Fw(7!)25 b Fy(\034)3229 533 y Fx(n)3275 519 y FF(])h
Fw(!)f FF(0)743 634 y(where)30 b(\001)25 b(=)g Fy(\013)1261
648 y Fv(1)1300 634 y FF(:)p Fy(k)1372 648 y Fv(1)1412
634 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)1672 648 y Fx(m)1739
634 y FF(:)p Fy(k)1811 648 y Fx(m)260 938 y Fw(j)p FB(lbl)10
b FF(\(\001)494 905 y Ft(0)517 938 y FF(;)15 b(\004;)g(\000\))p
Fw(j)775 952 y Fv(\001)p Fx(;\034)t(;\024)1037 938 y
FF(=)82 b FB(LL)p FF(\(\(\001)p Fy(;)15 b FF(\001)1566
905 y Ft(0)1590 938 y FF(\);)g(\004;)g(\000)p Fy(;)g(\034)5
b(;)15 b(\024;)g FF([)g(]\))204 1164 y Fw(j)p FB(hnd)c
FF(\(\001)494 1131 y Ft(0)517 1164 y FF(;)k(\004;)g(\000\))p
Fw(j)775 1178 y Fv(\001)p Fx(;\034)t(;\024)1037 1164
y FF(=)82 b Fw(8)p Fy(\013)1299 1178 y Fv(1)1338 1164
y FF(:)p Fw(j)p Fy(k)1435 1178 y Fv(1)1476 1164 y Fw(j)p
Fy(:)15 b(:)g(:)g(:)i Fw(8)p Fy(\013)1772 1178 y Fx(m)1838
1164 y FF(:)p Fw(j)p Fy(k)1935 1178 y Fx(m)2002 1164
y Fw(j)p Fy(:)p Fw(8)p Fy(\032)2150 1178 y Fv(1)2190
1164 y FF(:)p Fs(TD)o Fy(:)p Fw(8)p Fy(\032)2465 1178
y Fv(2)2505 1164 y FF(:)p Fs(TD)o Fy(:)p Fw(8)p Fy(\013)2791
1179 y Fx(f)2837 1164 y FF(:)p Fs(T)p FF(4)p Fy(:)p Fw(8)p
Fy(\013)3103 1179 y Fx(h)3148 1164 y FF(:)p Fs(T)p FF(4)p
Fy(:)1190 1278 y Fw(8)p Fy(a)p FF(:)p Fs(N)p Fy(:)p Fw(8)p
Fy(b)p FF(:)p Fs(N)p Fy(:)32 b FF(\()p 1674 1205 73 4
v Fy(E)25 b FF(+)20 b Fy(a)26 b Fw(\024)p 2027 1205 219
4 v 25 w Fy(L)20 b Fw(\000)g FF(1\))26 b Fw(\))1281 1392
y(f)p Fz(eax)p FF(:)p Fw(j)p Fy(\034)1560 1406 y Fv(exn)1672
1392 y Fw(j)p Fy(;)15 b Fz(ebx)p FF(:)p Fz(got)o Fy(;)g
Fz(esp)p FF(:)p FB(ST)2387 1406 y Fx(\032)2423 1415 y
Fu(1)2457 1406 y Fx(;\032)2513 1415 y Fu(2)2548 1406
y Fx(;\013)2613 1418 y Fn(f)2652 1406 y Fx(;\013)2717
1418 y Fn(h)2758 1406 y Fx(;a)2819 1392 y FF(\(\004)p
Fy(;)g FF(\000)p Fy(;)g(\034)10 b FF(\))p Fy(;)15 b Fz(mck)3321
1407 y Fx(b)3356 1392 y FF(:)p 3381 1319 83 4 v Fy(H)7
b Fw(g)26 b(!)f FF(0)721 1506 y(where)236 b(\(\001)p
Fy(;)15 b FF(\001)1417 1473 y Ft(0)1441 1506 y FF(\))26
b(=)f Fy(\013)1656 1520 y Fv(1)1695 1506 y FF(:)p Fy(k)1767
1520 y Fv(1)1807 1506 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)2067
1520 y Fx(m)2134 1506 y FF(:)p Fy(k)2206 1520 y Fx(m)1252
1786 y FF(Figure)31 b(25:)41 b(Lab)s(el)31 b(and)e(Blo)s(c)m(k)j(T)m
(yp)s(es)0 2061 y(Lilt)26 b(exception)h(con)m(text)h(of)e(\004)f(and)g
(lo)s(cal)i(con)m(text)h(of)e(\000,)g(in)g(a)g(function)f(that)i
(returns)d(t)m(yp)s(e)i Fy(\034)10 b FF(.)39 b(The)25
b(subscripts)0 2174 y Fy(\032)47 2188 y Fv(1)86 2174
y Fy(;)15 b(\032)173 2188 y Fv(1)213 2174 y Fy(;)g(\013)311
2189 y Fx(f)357 2174 y Fy(;)g(\013)455 2189 y Fx(h)501
2174 y Fy(;)g(a)30 b FF(sp)s(ecify)g(some)h(sp)s(ecial)g(v)-5
b(ariables)31 b(that)f(are)h(allo)m(w)m(ed)h(to)f(o)s(ccur)f(free)h(in)
f(these)g(t)m(yp)s(es:)41 b Fy(\032)3684 2188 y Fv(1)3754
2174 y FF(and)0 2287 y Fy(\032)47 2301 y Fv(2)120 2287
y FF(are)33 b(the)g(t)m(w)m(o)i(unkno)m(wn)c(p)s(ortions)i(of)g(the)h
(stac)m(k,)h Fy(\013)1944 2302 y Fx(f)2023 2287 y FF(is)e(the)g(t)m(yp)
s(e)h(of)f(the)g(sa)m(v)m(ed)h(v)-5 b(alue)34 b(of)f
Fz(ebp)p FF(,)h Fy(\013)3602 2302 y Fx(h)3680 2287 y
FF(is)f(the)0 2399 y(precise)k(t)m(yp)s(e)f(of)h(the)f(exception)i
(handler,)f(and)f Fy(a)g FF(is)h(the)f(v)-5 b(alue)37
b(that)g(m)m(ust)g(b)s(e)e(on)i(the)f(minor)g(clo)s(c)m(k)i(when)0
2512 y(the)27 b(function)g(returns.)39 b(\(T)-8 b(o)28
b(reduce)f(v)m(erb)s(osit)m(y)-8 b(,)29 b(these)f(subscripts)e(are)h
(elided)h(for)f(o)s(ccurrences)g(of)g FB(ST)40 b FF(on)27
b(the)0 2625 y(righ)m(t-hand)32 b(side)h(of)g(eac)m(h)h(clause)f(when)f
(they)g(are)h(the)g(same)g(as)g(on)f(the)h(left-hand)g(side,)g(and)f
(are)h(elided)g(on)0 2738 y(the)e(left-hand)f(side)g(when)g(they)g(do)g
(not)h(app)s(ear)f(at)h(all)g(on)f(the)h(righ)m(t.\))141
2851 y(Figure)d(24)g(sho)m(ws)f(ho)m(w)g(to)h(\014nd)e(the)i(t)m(yp)s
(es)f(of)g(the)h(registers)g(for)f(an)m(y)g(p)s(oin)m(t)h(in)f(a)g
(compiled)h(Lilt)g(program,)0 2964 y(and)37 b(the)h(t)m(yp)s(e)g(of)g
(an)m(y)g(lo)s(cal)h(lab)s(el)f(o)s(ccurring)g(inside)f(the)h(BT)-8
b(AL)g(T-R)39 b(v)m(ersion)f(of)g(a)g(Lilt)h(function.)62
b(First,)0 3077 y FB(RF)138 3091 y Fx(\032)174 3100 y
Fu(1)208 3091 y Fx(;\032)264 3100 y Fu(2)299 3091 y Fx(;\013)364
3103 y Fn(f)404 3091 y Fx(;\013)469 3103 y Fn(h)509 3091
y Fx(;a;u)630 3077 y FF(\(\004)p Fy(;)15 b FF(\000)p
Fy(;)g(\034)5 b(;)15 b(t)p FF(\))28 b(is)f(the)f(register)i(\014le)f(t)
m(yp)s(e)f(asso)s(ciated)i(with)f(the)f(exception)i(con)m(text)h(\004)d
(and)g(lo)s(cal)0 3190 y(con)m(text)38 b(\000,)g(assuming)d
Fy(\034)46 b FF(is)36 b(the)h(return)e(t)m(yp)s(e)h(of)g(the)h(curren)m
(t)f(function)f(and)h Fy(t)g FF(is)g(the)g(v)-5 b(alue)37
b(of)f(the)g(minor)0 3303 y(clo)s(c)m(k.)48 b(The)31
b(subscripts)g Fy(\032)934 3317 y Fv(1)973 3303 y Fy(;)15
b(\032)1060 3317 y Fv(2)1100 3303 y Fy(;)g(\013)1198
3318 y Fx(f)1244 3303 y Fy(;)g(\013)1342 3318 y Fx(h)1388
3303 y Fy(;)g(a;)g(u)33 b FF(are)f(as)h(in)e(the)i(de\014nition)f(of)g
FB(ST)12 b FF(,)33 b(with)f(the)g(addition)h(of)f Fy(u)p
FF(,)h(the)0 3416 y(static)f(term)e(represen)m(tation)i(of)e(the)h
(register)g(clo)s(c)m(k.)141 3529 y(Finally)-8 b(,)29
b(Figure)d(25)h(sho)m(ws)f(ho)m(w)h(to)f(compute)h(t)m(yp)s(es)f(for)g
(lab)s(els)g(o)s(ccurring)g(within)g(a)g(translated)h(function)0
3641 y(b)s(o)s(dy)33 b(and)h(ho)m(w)g(to)i(translate)f(Lilt)h(blo)s(c)m
(k)f(t)m(yp)s(es.)53 b(First,)36 b FB(LL)p FF(\(\001)p
Fy(;)15 b FF(\004)p Fy(;)g FF(\000)p Fy(;)g(\034)5 b(;)15
b(\024;)g FF([)t(\026)-49 b Fy(r)2775 3655 y Fv(1)2849
3641 y Fw(7!)32 b Fy(\034)3012 3655 y Fv(1)3051 3641
y Fy(;)15 b(:)g(:)g(:)i(;)i FF(\026)-49 b Fy(r)3294 3655
y Fx(n)3373 3641 y Fw(7!)32 b Fy(\034)3536 3655 y Fx(n)3583
3641 y FF(]\))j(is)g(the)0 3754 y(t)m(yp)s(e)e(of)h(a)f(lo)s(cal)i(lab)
s(el)e(with)g(t)m(yp)s(e)h(parameters)f(giv)m(en)i(b)m(y)e(\001)g
(\(this)g(includes)g(b)s(oth)f(the)i(t)m(yp)s(e)f(parameters)h(of)0
3867 y(the)26 b(enclosing)g(function)f(and)g(an)m(y)h(additional)g
(parameters)g(of)g(the)f(curren)m(t)g(blo)s(c)m(k\))i(and)e(exp)s
(ecting)h(exception)0 3980 y(handlers)37 b(describ)s(ed)h(b)m(y)g
(\004,)i(lo)s(cal)f(storage)h(describ)s(ed)d(b)m(y)i(\000,)h(and)e
Fy(\024)g FF(describing)g(the)h(minor)e(clo)s(c)m(k,)42
b(where)0 4093 y Fy(\034)53 b FF(again)44 b(is)f(the)g(return)f(t)m(yp)
s(e)h(of)g(the)h(function)e(in)h(whic)m(h)g(the)g(lab)s(el)g(app)s
(ears)f(and)h(the)g(additional)h(t)m(yp)s(e)0 4206 y(assignmen)m(ts)36
b(\026)-49 b Fy(r)546 4220 y Fx(i)602 4206 y Fw(7!)27
b Fy(\034)760 4220 y Fx(i)820 4206 y FF(sp)s(ecify)k(the)h(t)m(yp)s(es)
g(of)g(v)-5 b(alues)32 b(stored)f(temp)s(orarily)h(in)g(registers.)45
b(The)31 b(translation)i(of)0 4319 y(an)e(ordinary)f(blo)s(c)m(k)i(t)m
(yp)s(e)f(is)g(easily)h(de\014ned)e(using)g FB(LL)p FF(;)i
FB(LL)f FF(is)g(also)g(used)g(to)g(annotate)i(lab)s(els)e(that)g(o)s
(ccur)g(in)0 4432 y(the)36 b(in)m(terior)g(of)g(a)g(Lilt)g(blo)s(c)m
(k.)56 b(Exception)37 b(handler)d(blo)s(c)m(ks)i(are)g(a)g(little)h
(di\013eren)m(t:)52 b(an)35 b(exception)i(handler)0 4545
y(blo)s(c)m(k)28 b(exp)s(ects)g(an)f(exception)i(v)-5
b(alue)28 b(in)f Fz(eax)o FF(,)h(the)g(global)h(o\013set)f(table)g(p)s
(oin)m(ter)g(in)f Fz(ebx)o FF(,)h(and)f Fy(H)34 b FF(on)28
b(the)f(minor)0 4658 y(clo)s(c)m(k.)0 4898 y FE(4.2.6)105
b(Compiling)36 b(Expressions)0 5069 y FF(Because)24 b(of)f(our)f
(assumptions)f(ab)s(out)i(the)f(names)h(of)f(lo)s(cal)i(storage)g(lo)s
(cations,)i(if)c(the)h(total)h(n)m(um)m(b)s(er)e Fy(L)g
FF(of)h(lo)s(cal)0 5182 y(v)-5 b(ariables)31 b(allo)s(cated)i(b)m(y)d
(the)h(curren)m(t)g(function)f(is)h(kno)m(wn)f(then)g(the)h(op)s(erand)
e(corresp)s(onding)h(to)h(lo)s(cation)h Fy(s)1905 5589
y FF(38)p eop
%%Page: 39 41
39 40 bop 1496 179 a Fw(C)88 b FF(::=)26 b(\(\010;)15
b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)10 b FF(\))1477
292 y Fw(T)105 b FF(::=)26 b Fy(`)1817 306 y Fv(1)1856
292 y FF(:)p Fy(\024)1933 306 y Fv(1)1973 292 y Fy(;)15
b(:)g(:)g(:)i(;)e(`)2213 306 y Fx(n)2260 292 y FF(:)p
Fy(\024)2337 306 y Fx(n)1295 571 y FF(Figure)30 b(26:)42
b(T)-8 b(ranslation)31 b(Con)m(texts)0 846 y(\(denoted)g(b)m(y)f
Fw(j)p Fy(s)p Fw(j)598 860 y Fx(L)650 846 y FF(\))h(can)g(b)s(e)e
(determined)h(from)g(the)h(name)f Fy(s)g FF(as)h(follo)m(ws:)1241
1051 y Fw(j)p Fz(loc)o FF(\()p Fy(i)p FF(\))p Fw(j)1535
1065 y Fx(L)1672 1051 y FF(=)82 b Fz([ebp)o(+)p FF(\(4)p
Fy(i)p FF(\))p Fz(])1241 1188 y Fw(j)p Fz(arg)o FF(\()p
Fy(i)p FF(\))p Fw(j)1535 1202 y Fx(L)1672 1188 y FF(=)g
Fz([ebp)o(+)p FF(\(4\(1)22 b(+)e Fy(L)g FF(+)g Fy(i)p
FF(\)\))p Fz(])0 1393 y FF(In)33 b(the)g(BT)-8 b(AL)g(T-R)35
b(syn)m(tax)f(used)e(in)i(this)f(do)s(cumen)m(t,)h(stac)m(k)h(op)s
(erands)e(suc)m(h)g(as)h(these)g(are)g(written)f(exactly)0
1505 y(the)25 b(same)g(as)g(the)g(destinations)h(denoting)f(the)g(same)
h(lo)s(cations.)40 b(T)-8 b(o)25 b(refer)g(to)g(the)g
FB(destination)34 b FF(corresp)s(onding)0 1618 y(to)d(the)g(lo)s
(cation)h Fy(s)e FF(w)m(e)g(will)h(write)g Fw(j)p Fy(s)p
Fw(j)1318 1585 y Fx(d)1318 1645 y(L)1370 1618 y FF(.)141
1731 y(W)-8 b(e)35 b(assume)e(there)h(is)g(an)g(ob)m(vious)g(em)m(b)s
(edding)f(of)h(Lilt)g(function)f(sym)m(b)s(ols)h(in)m(to)g(assem)m
(bly-lev)m(el)i(lab)s(els,)0 1844 y(and)30 b(extend)g(the)h(mapping)f
Fw(j)20 b(\001)g(j)1118 1858 y Fx(L)1201 1844 y FF(to)31
b(all)h(Lilt)e(op)s(erands)g(as)g(follo)m(ws:)1342 2046
y Fw(j)p Fy(n)p Fw(j)1447 2060 y Fx(L)1524 2046 y FF(=)25
b Fz(im)p FF(\()p 1751 1996 55 4 v Fy(n)o FF(\))206 b
Fw(j)20 b Fy(?)h Fw(j)2182 2060 y Fx(L)2259 2046 y FF(=)k
Fz(im)p FF(\()p 2486 1976 46 4 v(0)q(\))1326 2158 y Fw(j)p
Fz(tt)o Fw(j)1471 2172 y Fx(L)1549 2158 y FF(=)g Fz(im)p
FF(\()p 1776 2089 V(1\))284 b Fw(j)p Fy(f)10 b Fw(j)2245
2172 y Fx(L)2322 2158 y FF(=)25 b Fy(f)1326 2271 y Fw(j)p
Fz(ff)o Fw(j)1471 2285 y Fx(L)1549 2271 y FF(=)g Fz(im)p
FF(\()p 1776 2202 V(0\))183 b Fw(j)p Fy(q)s FF(@)p Fy(v)s
Fw(j)2251 2285 y Fx(L)2328 2271 y FF(=)25 b Fw(j)p Fy(v)s
Fw(j)2521 2285 y Fx(L)141 2468 y FF(In)30 b(general,)h(a)g(Lilt)g(blo)s
(c)m(k)f(ma)m(y)h(translate)g(to)g(more)g(than)f(one)g(BT)-8
b(AL)g(T-R)31 b(blo)s(c)m(k;)g(a)g(Lilt)g(expression)f(will)0
2581 y(translate)g(to)g(a)f(BT)-8 b(AL)g(T-R)30 b(instruction)f
(sequence)g(plus)f(zero)i(or)f(more)g(additional)h(blo)s(c)m(ks.)40
b(The)29 b(translation)0 2694 y(rules)h(will)h(use)f(the)g(letter)i
Fy(S)j FF(to)c(range)g(o)m(v)m(er)h(sequences)e(of)h(BT)-8
b(AL)g(T-R)31 b(blo)s(c)m(ks:)1591 2898 y Fy(S)f FF(::=)c
Fy(\017)f Fw(j)g Fy(`)p FF(:)p Fy(\034)36 b FF(=)25 b
Fy(I)37 b(S)0 3102 y FF(T)-8 b(o)22 b(mak)m(e)g(BT)-8
b(AL)g(T-R)22 b(co)s(de)f(lo)s(ok)h(more)f(lik)m(e)i(ordinary)d(assem)m
(bly)i(co)s(de,)h(w)m(e)f(will)f(freely)h(concatenate)i(sequences)0
3215 y(of)31 b(blo)s(c)m(ks)f(in)g(the)h(ob)m(vious)g(w)m(a)m(y)-8
b(.)141 3328 y(Since)25 b(the)g(translation)h(is)g(t)m(yp)s
(e-directed,)h(its)e(structure)g(follo)m(ws)h(the)f(t)m(yping)h(rules)e
(of)i(Lilt)f(rather)g(closely;)0 3441 y(ho)m(w)m(ev)m(er,)h(to)f
(reduce)e(the)g(clutter)h(on)g(the)f(left)h(side)g(of)f(the)h
(turnstile)f(in)g(translation)i(judgmen)m(ts,)f(w)m(e)g(collect)i(all)0
3554 y(the)e(con)m(text)i(information)e(for)g(a)g(Lilt)h(expression)f
(in)m(to)h(one)f FB(tr)-5 b(anslation)30 b(c)-5 b(ontext)p
FF(,)26 b(ranged)e(o)m(v)m(er)h(b)m(y)f Fw(C)29 b FF(as)c(sho)m(wn)0
3667 y(in)31 b(Figure)h(26.)45 b(The)30 b(\014gure)h(also)i(sho)m(ws)e
(the)g(syn)m(tax)h(for)f(lo)s(cal)i(timing)f(con)m(texts)h
Fw(T)23 b FF(;)32 b(a)g(lo)s(cal)g(timing)g(con)m(text)0
3780 y(maps)26 b(eac)m(h)i(lo)s(cal)h(lab)s(el)e(in)f(a)i(Lilt)f
(function)g(to)g(the)g(minor)g(clo)s(c)m(k)h(v)-5 b(alue)27
b(that)h(blo)s(c)m(k)f(exp)s(ects.)40 b(T)-8 b(o)28 b(manipulate)0
3893 y(the)36 b(con)m(text)i(information)f(collected)h(in)e(a)h
(translation)g(con)m(text)h Fw(C)j FF(as)36 b(required)g(b)m(y)g(the)g
(translation)h(rules,)0 4006 y(some)31 b(notation)g(is)g(required.)40
b(In)29 b(particular,)i(if)g Fw(C)f FF(=)25 b(\(\010;)15
b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)10 b FF(\),)32
b(then)e(de\014ne)g(the)h(follo)m(wing:)136 4193 y Fw(\017)46
b FF(lo)s(cs)q(\()p Fw(C)5 b FF(\))26 b(=)f(dom\(\000\))136
4381 y Fw(\017)46 b FF(handlers)o(\()p Fw(C)5 b FF(\))26
b(=)f(length)q(\(\004\))136 4568 y Fw(\017)46 b(C)5 b
FF(\()p Fy(`)p FF(\))26 b(=)f(\003\()p Fy(`)p FF(\))136
4756 y Fw(\017)46 b(C)5 b FF([)p Fy(s)26 b Fw(7!)f Fy(\034)540
4723 y Ft(0)563 4756 y FF(])h(=)f(\(\010;)15 b(\001;)g(\003;)g(\004;)g
(\000[)p Fy(s)26 b Fw(7!)f Fy(\034)1488 4723 y Ft(0)1511
4756 y FF(];)15 b Fy(\034)10 b FF(\))136 4944 y Fw(\017)46
b(C)26 b(\010)20 b FF(\001)468 4911 y Ft(0)516 4944 y
FF(=)25 b(\(\010;)15 b(\(\001)p Fy(;)g FF(\001)980 4911
y Ft(0)1004 4944 y FF(\);)g(\003;)g(\004;)g(\000;)g Fy(\034)10
b FF(\))136 5131 y Fw(\017)46 b(C)26 b(\010)20 b FF(\000)449
5098 y Ft(0)497 5131 y FF(=)25 b(\(\010;)15 b(\001;)g(\003;)g(\(\004)p
Fy(;)g FF(\000)1146 5098 y Ft(0)1170 5131 y FF(\);)g(\000;)g
Fy(\034)10 b FF(\))136 5319 y Fw(\017)46 b FF(p)s(oph)o(\()p
Fw(C)5 b FF(\))26 b(=)f(\(\010;)15 b(\001;)g(\003;)g(\004)1093
5286 y Ft(0)1117 5319 y FF(;)g(\000;)g Fy(\034)10 b FF(\),)31
b(if)g(\004)25 b(=)g(\(\004)1757 5286 y Ft(0)1780 5319
y Fy(;)15 b FF(\000)1877 5286 y Ft(0)1900 5319 y FF(\))1905
5589 y(39)p eop
%%Page: 40 42
40 41 bop 136 91 a Fw(\017)46 b(j)p Fy(s)p Fw(j)320 105
y Ft(C)391 91 y FF(=)25 b Fw(j)p Fy(s)p Fw(j)580 105
y Fx(B)640 91 y FF(,)i(where)d(dom\(\000\))i(=)f Fw(f)p
Fz(arg)p FF(\(1\))p Fy(;)15 b(:)g(:)g(:)i(;)e Fz(arg)p
FF(\()p Fy(A)p FF(\))p Fy(;)g Fz(loc)p FF(\(1\))p Fy(;)g(:)g(:)g(:)j(;)
d Fz(loc)p FF(\()p Fy(B)5 b FF(\))p Fw(g)26 b FF(\(and)f(similarly)g
(for)g Fw(j)p Fy(s)p Fw(j)3819 58 y Fx(d)3819 118 y Ft(C)3865
91 y FF(\))136 267 y Fw(\017)46 b(C)31 b(`)25 b Fy(c)g
FF(:)h Fy(k)33 b FF(i\013)e(\001)25 b Fw(`)f Fy(c)i FF(:)g
Fy(k)136 444 y Fw(\017)46 b(C)31 b(`)25 b Fy(c)426 458
y Fv(1)491 444 y FF(=)f Fy(c)625 458 y Fv(2)691 444 y
FF(:)h Fy(k)34 b FF(i\013)c(\001)25 b Fw(`)g Fy(c)1151
458 y Fv(1)1216 444 y FF(=)g Fy(c)1351 458 y Fv(2)1416
444 y FF(:)g Fy(k)136 620 y Fw(\017)46 b(C)31 b(`)25
b Fy(v)j FF(:)e Fy(\034)560 587 y Ft(0)613 620 y FF(i\013)31
b(\010;)15 b(\001;)g(\000)25 b Fw(`)g Fy(v)j FF(:)e Fy(\034)1280
587 y Ft(0)136 796 y Fw(\017)46 b(C)31 b Fl(\017)25 b
FF(\000)444 763 y Ft(0)497 796 y FF(i\013)31 b(\001)25
b Fw(`)f FF(\000)h Fw(\024)g FF(\000)1022 763 y Ft(0)136
972 y Fw(\017)46 b(C)31 b Fl(\017)25 b FF(\004)448 939
y Ft(0)501 972 y FF(i\013)30 b(\001)25 b Fw(`)g FF(\004)g
Fw(\024)g FF(\004)1034 939 y Ft(0)136 1148 y Fw(\017)46
b(C)31 b Fl(\017)25 b Fs(canraise)30 b FF(i\013)g(\001)25
b Fw(`)g FF(\004)30 b Fs(handles)g FF(\000)141 1307 y(The)21
b(complete)i(translation)f(rules)f(are)g(in)g(Section)h(4.2.7.)40
b(The)21 b(translation)h(judgmen)m(t,)h Fw(C)5 b Fy(;)15
b Fw(T)23 b Fy(;)15 b(\024)26 b Fw(`)f Fy(e)g Fl( )h
Fy(I)c(S)5 b FF(,)0 1420 y(means)43 b(that)h(the)g(instruction)f
(sequence)h Fy(I)7 b FF(,)47 b(together)e(with)e(the)g(additional)h
(blo)s(c)m(ks)g Fy(S)5 b FF(,)47 b(implemen)m(ts)d(the)0
1532 y(expression)c Fy(e)g FF(assuming)g Fy(\024)h FF(describ)s(es)e
(the)i(minor)e(clo)s(c)m(k.)72 b(The)40 b(translation)h(is)f(highly)g
(nondeterministic:)0 1645 y(in)35 b(particular,)h(it)g(mak)m(es)g(no)e
(commitmen)m(t)j(to)e(either)h(forw)m(ard)e(or)h(bac)m(kw)m(ard)g
(propagation,)j(and)c(do)s(es)h(not)0 1758 y(sp)s(ecify)26
b(ho)m(w)h(to)h(determine)f(the)g(initial)h(minor)e(clo)s(c)m(k)i
(requiremen)m(t)f(for)g(eac)m(h)h(blo)s(c)m(k)f(within)f(a)i(function.)
39 b(Tw)m(o)0 1871 y(translation)29 b(rules)f(ensure)g(that)h(a)f
(minor)g(yield)h(ma)m(y)g(b)s(e)e(inserted)i(b)s(efore)f(an)m(y)g(sub)s
(expression,)f(whether)h(it)h(is)0 1984 y(needed)h(or)g(not:)618
2117 y Fw(C)5 b FF(;)15 b Fw(T)23 b FF(;)15 b(\(just)g
Fy(m)p FF(\))26 b Fw(`)f Fy(e)g Fl( )g Fy(I)e(S)p 373
2160 1424 4 v 373 2245 a Fw(C)5 b FF(;)15 b Fw(T)23 b
FF(;)15 b(\(just)h Fy(n)p FF(\))25 b Fw(`)g Fy(e)g Fl( )g
Fz(YIELD)o FF(\()p Fy(n;)15 b(m)p FF(\))31 b Fy(I)22
b(S)2286 2117 y Fw(C)5 b FF(;)15 b Fw(T)23 b FF(;)15
b(\(just)g Fy(m)p FF(\))26 b Fw(`)e Fy(e)i Fl( )f Fy(I)d(S)p
1979 2160 1548 4 v 1979 2245 a Fw(C)5 b FF(;)15 b Fw(T)23
b FF(;)15 b(\(retplus)h Fy(n)p FF(\))25 b Fw(`)f Fy(e)i
Fl( )f Fz(YIELD)o FF(\()p Fy(n;)15 b(m)p FF(\))31 b Fy(I)22
b(S)0 2414 y FF(Note)k(that)g(this)f(rule)g(tak)m(es)h(adv)-5
b(an)m(tage)27 b(of)f(the)f(clo)s(c)m(k)i(register)f(\\tric)m(ks")g
(discussed)f(earlier,)i(setting)f(the)f(minor)0 2527
y(clo)s(c)m(k)e(to)f(an)f(arbitrary)g(v)-5 b(alue)22
b Fy(m)p FF(.)38 b(The)20 b(rules)h(do)h(not)f(sp)s(ecify)g(the)h(v)-5
b(alue)21 b(of)h Fy(m)p FF(;)i(in)d(practice)i(an)e(implemen)m(tation)0
2640 y(ma)m(y)38 b(either)g(use)f Fy(m)g FF(=)g Fy(L)g
FF(ev)m(erywhere)h(in)g(a)f(program,)j(or)d(it)h(ma)m(y)g(p)s(erform)f
(some)g(analysis)i(to)f(determine)0 2753 y(go)s(o)s(d)30
b(v)-5 b(alues)31 b(for)f Fy(m)g FF(at)h(eac)m(h)h(minor)e(yield)g(it)h
(generates.)141 2866 y(In)26 b(the)h(rule)g(for)f(translating)i(an)f
(in)m(trapro)s(cedural)g(jump,)f(the)h(timing)g(con)m(text)i
Fw(T)49 b FF(is)27 b(consulted)g(to)h(ensure)0 2979 y(the)j(target)g
(blo)s(c)m(k's)h(clo)s(c)m(k)f(exp)s(ectations)h(are)f(met:)1248
3141 y(\()p Fw(C)5 b FF(\()p Fy(`)p FF(\))27 b(=)e FB(lbl)9
b FF(\()p Fy(\013)1757 3155 y Fv(1)1797 3141 y FF(:)p
Fy(k)1869 3155 y Fv(1)1909 3141 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)2169
3155 y Fx(n)2217 3141 y FF(:)p Fy(k)2289 3155 y Fx(n)2336
3141 y FF(;)g(\004)2437 3108 y Ft(0)2460 3141 y FF(;)g(\000)2557
3108 y Ft(0)2581 3141 y FF(\)\))934 3254 y Fy(\024)21
b Fw(\000)e FF(1)26 b Fw(\025)f(T)e FF(\()p Fy(`)p FF(\))91
b Fw(C)31 b(`)24 b Fy(c)1734 3268 y Fx(i)1788 3254 y
FF(:)i Fy(k)1886 3268 y Fx(i)2005 3254 y Fw(C)31 b Fl(\017)24
b FF(\000)2221 3221 y Ft(0)2244 3254 y FF([)-5 b Fy(~)-40
b(c)q(=)r(~)-47 b(\013)q FF(])91 b Fw(C)31 b Fl(\017)24
b FF(\004)2749 3221 y Ft(0)2772 3254 y FF([)-5 b Fy(~)-40
b(c)q(=)r(~)-47 b(\013)q FF(])p 892 3307 2116 4 v 1253
3403 a Fw(C)5 b FF(;)15 b Fw(T)23 b FF(;)15 b Fy(\024)26
b Fw(`)f Fz(goto)k Fy(`)p FF([)p Fy(c)1941 3417 y Fv(1)1981
3403 y Fy(;)15 b(:)g(:)g(:)i(;)e(c)2222 3417 y Fx(n)2269
3403 y FF(])26 b Fl( )f Fz(jmp)k Fy(`)0 3573 y FF(Since)i(the)h
(initial)h(minor)e(clo)s(c)m(k)i(is)e Fy(\024)p FF(,)i(it)f(will)f(b)s
(e)g Fy(\024)22 b Fw(\000)e FF(1)32 b(after)g(the)g Fz(jmp)e
FF(instruction.)44 b(Th)m(us)31 b(in)g(order)g(for)g(this)0
3686 y(rule)39 b(to)h(apply)-8 b(,)42 b(it)e(m)m(ust)f(b)s(e)g(the)h
(case)g(that)g Fy(\024)27 b Fw(\000)f FF(1)39 b(is)h(greater)h(than)e
(or)g(equal)h(to)g(the)g(minor)f(clo)s(c)m(k)h(v)-5 b(alue)0
3799 y(exp)s(ected)36 b(b)m(y)g(blo)s(c)m(k)g Fy(`)p
FF(.)57 b(\(The)36 b(other)g(premises)f(of)h(this)g(rule)f(corresp)s
(ond)g(directly)h(to)g(the)g(premises)g(of)g(the)0 3912
y(t)m(yping)30 b(rule)g(for)f Fz(goto)o FF(.\))41 b(If)29
b(it)h(is)g(not)g(the)g(case)h(that)f Fy(\024)19 b Fw(\000)g
FF(1)26 b Fw(\025)f(T)d FF(\()p Fy(`)p FF(\),)31 b(then)e(this)h(rule)f
(will)h(not)g(apply)-8 b(,)31 b(but)e(one)0 4024 y(of)j(the)h(t)m(w)m
(o)g(yielding)g(rules)f(will;)h(th)m(us)f(a)h(w)m(ell-t)m(yp)s(ed)g
Fz(goto)e FF(expression)h(can)g(alw)m(a)m(ys)i(b)s(e)d(compiled,)j(p)s
(ossibly)0 4137 y(b)m(y)c(yielding)h(\014rst.)141 4250
y(The)24 b(rule)g(for)g(returning)f(from)h(a)g(function)g(tak)m(es)i
(accoun)m(t)g(of)e(the)h(fact)g(that)g(a)f(clo)s(c)m(k)i(sp)s
(eci\014er)d(of)i(retplus)14 b Fy(n)0 4363 y FF(means)31
b(minor)g(clo)s(c)m(k)h(is)f(su\016cien)m(t)h(to)f(execute)i
Fy(n)d FF(instructions,)i(the)f(last)h(of)f(whic)m(h)g(ma)m(y)h(b)s(e)e
(a)h Fz(ret)p FF(.)42 b(It)31 b(tak)m(es)0 4476 y(a)g(few)f
(instructions,)g(ho)m(w)m(ev)m(er,)i(to)f(get)h(ready)e(to)h(return:)
926 4638 y(\(lo)s(cs)q(\()p Fw(C)5 b FF(\))26 b(=)f([)p
Fz(arg)o FF(\(1\))p Fy(;)15 b(:)g(:)g(:)j(;)d Fz(arg)p
FF(\()p Fy(A)p FF(\))p Fy(;)g Fz(loc)p FF(\(1\))p Fy(;)g(:)g(:)g(:)j(;)
d Fz(loc)o FF(\()p Fy(B)5 b FF(\)]\))985 4751 y Fw(C)31
b(`)25 b Fy(v)j FF(:)e Fy(\034)101 b(\024)20 b Fw(\000)g
FF(4)26 b Fw(\025)f FF(retplus)o(\(0\))92 b(\(handlers\()p
Fw(C)5 b FF(\))26 b(=)f(0\))p 884 4805 2132 4 v 1431
4900 a Fw(C)5 b FF(;)15 b Fw(T)23 b FF(;)15 b Fy(\024)26
b Fw(`)f Fz(return)k Fy(v)g Fl( )1927 5013 y Fz(mov)h(eax)o
Fy(;)15 b Fw(j)p Fy(v)s Fw(j)2381 5027 y Ft(C)1927 5126
y Fz(pop)30 b(ebp)1927 5239 y(sfree)f FF(\(4)p Fy(B)5
b FF(\))1927 5352 y Fz(ret)1905 5589 y FF(40)p eop
%%Page: 41 43
41 42 bop 0 91 a FF(The)30 b(co)s(de)g(generated)i(b)m(y)e(this)g(rule)
g(mo)m(v)m(es)h(the)g(v)-5 b(alue)31 b(to)g(b)s(e)e(returned)g(in)m(to)
j Fz(eax)o FF(,)e(mo)m(v)m(es)i(the)e(caller's)i(frame)0
204 y(p)s(oin)m(ter)37 b(bac)m(k)h(in)m(to)g Fz(ebp)p
FF(,)h(frees)e(the)g(stac)m(k)i(space)f(allo)s(cated)h(b)m(y)e(the)g
(function,)i(and)e(\014nally)g(returns.)60 b(This)0 317
y(tak)m(es)29 b(four)d(instructions,)i(so)f(the)h(rule)e(requires)h
(that)h Fy(\024)14 b Fw(\000)g FF(4)25 b Fw(\025)g FF(retplus)o(\(0\).)
41 b(\(This)27 b(is)g(equiv)-5 b(alen)m(t)29 b(to)e(requiring)0
430 y Fy(\024)39 b Fw(\025)g FF(retplus\(4\).\))67 b(A)38
b(side)h(condition)g(in)g(this)f(rule)g(requires)h(that)g(handlers)o
(\()p Fw(C)5 b FF(\))40 b(=)f(0;)k(there)c(is)g(a)g(sligh)m(tly)0
543 y(di\013eren)m(t)28 b(rule)g(for)g(returning)f(when)g(there)h(are)h
(lo)s(cal)g(exception)g(handlers)e(that)i(m)m(ust)f(b)s(e)f(remo)m(v)m
(ed)i(from)f(the)0 656 y(stac)m(k.)141 769 y(Most)d(of)f(the)h(other)f
(instructions)g(simply)g(decremen)m(t)g(the)h(clo)s(c)m(k)g(sp)s
(eci\014er)f Fy(\024)g FF(b)m(y)g(the)g(appropriate)g(amoun)m(t)0
882 y(b)s(efore)g(translating)h(their)f(sub)s(expressions.)36
b(F)-8 b(or)25 b(example,)h(translation)f(of)f(primitiv)m(e)h
(arithmetic)g(is)f(straigh)m(t-)0 995 y(forw)m(ard:)807
1071 y Fw(C)31 b(`)24 b Fy(v)1010 1085 y Fx(i)1064 1071
y FF(:)h Fz(int)30 b FF(for)g(1)c(=)f(1)p Fy(;)15 b FF(2)92
b Fw(C)5 b FF([)p Fy(s)25 b Fw(7!)g Fz(int)p FF(];)15
b Fw(T)23 b FF(;)15 b(\()p Fy(\024)21 b Fw(\000)f FF(3\))26
b Fw(`)f Fy(e)g Fl( )h Fy(I)c(S)p 807 1114 2286 4 v 1267
1209 a Fw(C)5 b FF(;)15 b Fw(T)23 b FF(;)15 b Fy(\024)26
b Fw(`)f Fz(let)30 b Fy(s)25 b FF(=)f(+\()p Fy(v)2119
1223 y Fv(1)2159 1209 y Fy(;)15 b(v)2243 1223 y Fv(2)2283
1209 y FF(\))31 b Fz(in)e Fy(e)d Fl( )1763 1322 y Fz(mov)k(eax)o
Fy(;)15 b Fw(j)p Fy(v)2189 1336 y Fv(1)2229 1322 y Fw(j)2254
1336 y Ft(C)1763 1435 y Fz(add)30 b(eax)o Fy(;)15 b Fz(eax)o
Fy(;)g Fw(j)p Fy(v)2372 1449 y Fv(2)2413 1435 y Fw(j)2438
1449 y Ft(C)1763 1548 y Fz(mov)30 b Fw(j)p Fy(s)p Fw(j)2030
1515 y Fx(d)2030 1575 y Ft(C)2075 1548 y Fy(;)15 b Fz(eax)1763
1661 y Fy(I)1672 1774 y(S)0 1918 y FF(\(Note,)34 b(though,)e(that)g(a)g
(simple)f(addition)h(tak)m(es)h(three)f(BT)-8 b(AL)g(T-R)32
b(instructions)g(b)s(ecause)f(all)i(lo)s(cal)f(storage)0
2031 y(is)d(on)g(the)g(stac)m(k.)42 b(This)28 b(highligh)m(ts)h(the)g
(need)g(for)g(a)g(b)s(etter)g(register)h(allo)s(cation)h(sc)m(heme.\))
41 b(If)29 b(the)g(translation)0 2144 y(encoun)m(ters)j(an)g(addition)h
(expression)e(lik)m(e)j(this)e(one)g(in)f(a)i(Lilt)g(program)e(and)h
(the)g(minor)f(clo)s(c)m(k)j(is)e(less)g(than)0 2257
y(3)42 b(\(that)h(is,)i(if)d Fy(\024)28 b Fw(\000)g FF(3)42
b(is)g(unde\014ned\),)h(then)f(it)g(m)m(ust)g(translate)h(that)g
(expression)e(using)h(the)g(appropriate)0 2370 y(yielding)32
b(rule.)45 b(Unfortunately)-8 b(,)33 b(some)f(Lilt)h(op)s(erations)f
(can)g(in)f(principle)h(require)f(an)h(arbitrary)f(n)m(um)m(b)s(er)g
(of)0 2483 y(instructions:)58 b(allo)s(cating)41 b(a)f(tuple)f(of)g
(size)h Fy(n)e FF(requires)h(as)g(man)m(y)g(as)g(2)p
Fy(n)26 b FF(+)g(2)39 b(instructions,)j(and)c(calling)j(a)0
2596 y(function)27 b(with)g Fy(n)g FF(argumen)m(ts)h(costs)g
Fy(n)14 b FF(+)g Fy(E)20 b FF(+)14 b(3.)40 b(It)28 b(is)f(therefore)h
(imp)s(ossible)f(to)h(require)g(these)f(op)s(erations)h(to)0
2709 y(b)s(e)i(compiled)h(to)g(yield-free)g(instruction)g(sequences.)41
b(The)30 b(translation)i(in)e(this)h(pap)s(er)e(ignores)i(these)g
(issues,)0 2822 y(but)g(there)i(is)f(no)g(reason)g(a)h(real)g(compiler)
g(cannot)f(b)s(e)g(designed)g(to)h(deal)g(with)e(wide)h(tuples)g(and)g
(high-arit)m(y)0 2935 y(functions.)0 3169 y FE(4.2.7)105
b(Complete)35 b(T)-9 b(ranslation)35 b(Rules)694 3446
y Fk(`)23 b Fp(\001)83 b(\001)24 b Fk(`)e Fo(\034)1122
3458 y Fj(i)1173 3446 y Fp(:)i Fo(T)38 b Fp(for)27 b(eac)n(h)g
Fo(i)83 b Fp(\001)23 b Fk(`)g Fo(\034)33 b Fp(:)23 b
Fo(T)94 b Fp(\001)23 b Fk(`)g Fp(\003)83 b(\(dom\()p
Fk(T)21 b Fp(\))j(=)e(dom\(\003\)\))1103 3546 y(\(\010;)14
b(\001;)g(\003;)g Fk(\001)p Fp(;)g(\000;)g Fo(\034)9
b Fp(\);)14 b Fk(T)22 b Fp(;)14 b(\(retplus\()p Fo(E)23
b Fk(\000)18 b Fp(2\)\))24 b Fk(`)e Fo(e)h Fi( )g Fo(I)e(S)2760
3558 y Fh(0)957 3645 y Fp(\010;)14 b(\001;)g(\003;)g
Fo(\034)9 b Fp(;)14 b Fk(T)44 b(`)23 b Fo(B)1563 3657
y Fj(i)1613 3645 y Fp(:)h(\(\003\()p Fo(`)1817 3657 y
Fj(i)1844 3645 y Fp(\))p Fo(;)14 b Fk(T)22 b Fp(\()p
Fo(`)2047 3657 y Fj(i)2074 3645 y Fp(\)\))i Fi( )f Fo(I)2304
3657 y Fj(i)2346 3645 y Fo(S)2397 3657 y Fj(i)2452 3645
y Fp(for)k(1)c Fk(\024)f Fo(i)h Fk(\024)g Fo(m)p 631
3695 2639 4 v 672 3782 a Fp(\010)g Fk(`)g Fg(func)n Fp(\(\001;)12
b Fo(~)-40 b(\034)10 b Fp(;)k Fo(\034)9 b Fp(\))p Fo(:)p
Fp(\()p Fg(enter)p Fp(\()p Fo(L)p Fp(\))p Fo(:e;)14 b(`)1831
3794 y Fh(1)1890 3782 y Fp(=)23 b Fo(B)2041 3794 y Fh(1)2078
3782 y Fo(;)14 b(:)g(:)g(:)g(;)g(`)2298 3794 y Fj(m)2383
3782 y Fp(=)23 b Fo(B)2534 3794 y Fj(m)2597 3782 y Fp(\))g(:)g
Fk(8)p Fp(\001)p Fo(:)p Fp(\()n Fo(~)-40 b(\034)11 b
Fp(\))23 b Fk(!)g Fo(\034)33 b Fi( )1046 3881 y Fo(f)e
Fp(:)24 b Fk(j8)p Fp(\001)p Fo(:)p Fp(\()n Fo(~)-40 b(\034)10
b Fp(\))23 b Fk(!)g Fo(\034)9 b Fk(j)24 b Fp(=)1129 4080
y Fg(salloc)h Fp(\(4)p Fo(L)p Fp(\))1129 4180 y Fg(push)h(ebp)1129
4280 y Fo(I)1046 4379 y(S)1097 4391 y Fh(0)1046 4479
y Fo(`)1081 4491 y Fh(1)1141 4479 y Fp(:)d Fk(j)p Fp(\003\()p
Fo(`)1335 4491 y Fh(1)1372 4479 y Fp(\))p Fk(j)1427 4494
y Fh(\001)p Fj(;\034)s(;)p Ff(T)14 b Fh(\()p Fj(`)1662
4502 y Fe(1)1694 4494 y Fh(\))1747 4479 y Fp(=)23 b Fo(I)1871
4491 y Fh(1)1046 4579 y Fo(S)1097 4591 y Fh(1)1046 4667
y Fp(.)1046 4700 y(.)1046 4733 y(.)1046 4833 y Fo(`)1081
4845 y Fj(m)1166 4833 y Fp(:)h Fk(j)p Fp(\003\()p Fo(`)1361
4845 y Fj(m)1423 4833 y Fp(\))p Fk(j)1478 4848 y Fh(\001)p
Fj(;\034)s(;)p Ff(T)14 b Fh(\()p Fj(`)1713 4856 y Fd(m)1768
4848 y Fh(\))1821 4833 y Fp(=)23 b Fo(I)1945 4845 y Fj(m)1046
4933 y Fo(S)1097 4945 y Fj(m)0 5078 y Fp(where)788 5157
y(\000)g(=)f([)p Fg(arg)o Fp(\(1\):)p Fo(\034)1269 5169
y Fh(1)1307 5157 y Fo(;)14 b(:)g(:)g(:)f(;)h Fg(arg)o
Fp(\()p Fo(p)p Fp(\):)p Fo(\034)1787 5169 y Fj(p)1826
5157 y Fo(;)g Fg(loc)o Fp(\(1\):)p Fg(ns)o Fo(;)g(:)g(:)g(:)g(;)g
Fg(loc)n Fp(\()p Fo(L)p Fp(\):)p Fg(ns)p Fp(])788 5256
y(eac)n(h)26 b Fo(B)1037 5268 y Fj(i)1093 5256 y Fp(is)h(either)h
Fg(block)n Fp(\(\001)1731 5268 y Fj(i)1759 5256 y Fp(;)14
b(\004)1851 5268 y Fj(i)1879 5256 y Fp(;)g(\000)1968
5268 y Fj(i)1995 5256 y Fp(\))p Fo(:e)28 b Fp(or)e Fg(hndl)o
Fp(\(\001)2494 5268 y Fj(i)2522 5256 y Fp(;)14 b(\004)2614
5268 y Fj(i)2642 5256 y Fp(;)g(\000)2731 5268 y Fj(i)2758
5256 y Fp(;)g Fo(s)p Fp(\))p Fo(:e)p Fp(,)28 b(and)788
5356 y(dom)o(\(\000)1028 5368 y Fj(i)1056 5356 y Fp(\))c(=)e
(dom\(\000\))28 b(for)f(eac)n(h)g Fo(i)1905 5589 y FF(41)p
eop
%%Page: 42 44
42 43 bop 1775 252 a Fp(\001)p Fo(;)14 b Fp(\001)1950
222 y Ff(0)1996 252 y Fk(`)23 b Fp(\004)1061 352 y(\001)p
Fo(;)14 b Fp(\001)1236 322 y Ff(0)1283 352 y Fk(`)22
b Fp(\000)83 b(\(\010;)14 b(\(\001)p Fo(;)g Fp(\001)1827
322 y Ff(0)1851 352 y Fp(\);)g(\003;)g(\004;)g(\000;)g
Fo(\034)9 b Fp(\);)14 b Fk(T)22 b Fp(;)14 b Fo(\024)23
b Fk(`)g Fo(e)f Fi( )i Fo(I)c(S)p 884 402 2132 4 v 926
488 a Fp(\010;)14 b(\001;)g(\003;)g Fo(\034)9 b Fp(;)14
b Fk(T)44 b(`)23 b Fg(block)n Fp(\(\001)1788 458 y Ff(0)1812
488 y Fp(;)14 b(\004;)g(\000\))p Fo(:e)23 b Fp(:)g(\()p
Fc(lbl)9 b Fp(\(\001)2378 458 y Ff(0)2402 488 y Fp(;)14
b(\004;)g(\000\))p Fo(;)g(\024)p Fp(\))24 b Fi( )f Fo(I)e(S)1776
762 y Fp(\001)p Fo(;)14 b Fp(\001)1951 732 y Ff(0)1998
762 y Fk(`)23 b Fp(\000)896 862 y(\(\010;)14 b(\(\001)p
Fo(;)g Fp(\001)1232 832 y Ff(0)1256 862 y Fp(\);)g(\003;)g
Fk(\001)p Fp(;)g(\000[)p Fo(s)23 b Fk(7!)g Fo(\034)1759
874 y Fh(exn)1864 862 y Fp(];)14 b Fo(\034)9 b Fp(\);)14
b Fk(T)22 b Fp(;)14 b(\(just)q(\()p Fo(H)26 b Fk(\000)18
b Fp(3\)\))23 b Fk(`)g Fo(e)f Fk(7!)h Fo(I)e(S)p 855
912 2191 4 v 984 998 a Fp(\010;)14 b(\001;)g(\003;)g
Fo(\034)9 b Fp(;)14 b Fk(T)45 b(`)23 b Fg(hndl)n Fp(\(\001)1803
968 y Ff(0)1827 998 y Fp(;)14 b Fk(\001)p Fp(;)g(\000;)g
Fo(s)p Fp(\))p Fo(:e)22 b Fp(:)h(\()p Fc(hnd)10 b Fp(\(\001)2488
968 y Ff(0)2512 998 y Fp(;)k Fk(\001)p Fp(;)g(\000\))p
Fo(;)g(\024)p Fp(\))23 b Fi( )1441 1098 y Fg(pop)j(edi)1441
1197 y(mov)g(ebp)o Fo(;)14 b Fg(esp)1441 1297 y(mov)26
b Fk(j)p Fo(s)p Fk(j)1684 1309 y Fh(\000)1730 1297 y
Fo(;)14 b Fg(eax)1441 1396 y Fo(I)1358 1496 y(S)1148
1770 y Fp(\()p Fo(E)29 b Fp(=)22 b(length\(\004\))i Fk(6)p
Fp(=)f(0\))83 b(\001)p Fo(;)14 b Fp(\001)2146 1740 y
Ff(0)2192 1770 y Fk(`)23 b Fp(\004)83 b(\001)p Fo(;)14
b Fp(\001)2579 1740 y Ff(0)2626 1770 y Fk(`)23 b Fp(\000)880
1870 y(\(\010;)14 b(\(\001)p Fo(;)g Fp(\001)1216 1840
y Ff(0)1240 1870 y Fp(\);)g(\003;)g(\004;)g(\000[)p Fo(s)23
b Fk(7!)g Fo(\034)1775 1882 y Fh(exn)1880 1870 y Fp(];)14
b Fo(\034)9 b Fp(\);)14 b Fk(T)23 b Fp(;)14 b(\(just\()p
Fo(H)26 b Fk(\000)18 b Fp(4\)\))23 b Fk(`)g Fo(e)f Fk(7!)i
Fo(I)c(S)p 838 1919 2224 4 v 952 2006 a Fp(\010;)14 b(\001;)g(\003;)g
Fo(\034)9 b Fp(;)14 b Fk(T)44 b(`)23 b Fg(hndl)o Fp(\(\001)1771
1976 y Ff(0)1794 2006 y Fp(;)14 b(\004;)g(\000;)g Fo(s)p
Fp(\))p Fo(:e)23 b Fp(:)g(\()p Fc(hnd)10 b Fp(\(\001)2488
1976 y Ff(0)2512 2006 y Fp(;)k(\004;)g(\000\))p Fo(;)g(\024)p
Fp(\))23 b Fi( )1409 2105 y Fg(mov)j(edi)o Fo(;)14 b
Fg(esp)1409 2205 y(mov)26 b(ebp)o Fo(;)14 b Fg(esp)1409
2305 y(addsptr)24 b(ebp)o Fo(;)14 b Fg(ebp)o Fo(;)g Fp(4\()p
Fo(E)23 b Fp(+)18 b(1\))1409 2404 y Fg(mov)26 b Fk(j)p
Fo(s)p Fk(j)1652 2416 y Fh(\000)1697 2404 y Fo(;)14 b
Fg(eax)1409 2504 y Fo(I)1326 2604 y(S)1015 2878 y Fp(\(lo)r(cs)o(\()p
Fk(C)5 b Fp(\))24 b(=)e([)p Fg(arg)o Fp(\(1\))p Fo(;)14
b(:)g(:)g(:)g(;)g Fg(arg)n Fp(\()p Fo(A)p Fp(\))p Fo(;)g
Fg(loc)p Fp(\(1\))p Fo(;)g(:)g(:)g(:)g(;)g Fg(loc)n Fp(\()p
Fo(B)t Fp(\)]\))1069 2977 y Fk(C)28 b(`)22 b Fo(v)27
b Fp(:)c Fo(\034)93 b(\024)18 b Fk(\000)g Fp(4)k Fk(\025)h
Fp(retplus\(0\))83 b(\(handlers)o(\()p Fk(C)5 b Fp(\))24
b(=)e(0\))p 973 3027 1954 4 v 1472 3113 a Fk(C)5 b Fp(;)14
b Fk(T)20 b Fp(;)14 b Fo(\024)23 b Fk(`)g Fg(return)i
Fo(v)i Fi( )1928 3213 y Fg(mov)g(eax)n Fo(;)14 b Fk(j)p
Fo(v)s Fk(j)2343 3225 y Ff(C)1928 3313 y Fg(pop)27 b(ebp)1928
3412 y(sfree)f Fp(\(4)p Fo(B)t Fp(\))1928 3512 y Fg(ret)1015
3786 y Fp(\(lo)r(cs)o(\()p Fk(C)5 b Fp(\))24 b(=)e([)p
Fg(arg)o Fp(\(1\))p Fo(;)14 b(:)g(:)g(:)g(;)g Fg(arg)n
Fp(\()p Fo(A)p Fp(\))p Fo(;)g Fg(loc)p Fp(\(1\))p Fo(;)g(:)g(:)g(:)g(;)
g Fg(loc)n Fp(\()p Fo(B)t Fp(\)]\))1052 3885 y Fk(C)28
b(`)23 b Fo(v)j Fp(:)d Fo(\034)93 b(\024)18 b Fk(\000)g
Fp(5)23 b Fk(\025)f Fp(retplus\(0\))83 b(\()p Fo(X)30
b Fp(=)22 b(handlers)o(\()p Fk(C)5 b Fp(\)\))p 973 3935
V 1204 4022 a Fk(C)g Fp(;)14 b Fk(T)21 b Fp(;)14 b Fo(\024)23
b Fk(`)g Fg(return)i Fo(v)h Fi( )1661 4121 y Fg(mov)g(eax)o
Fo(;)14 b Fk(j)p Fo(v)s Fk(j)2076 4133 y Ff(C)1661 4221
y Fg(mov)26 b(edi)o Fo(;)14 b Fp([)p Fg(esp)j Fp(+)h(4)p
Fo(X)7 b Fp(])1661 4320 y Fg(mov)26 b(ebp)o Fo(;)14 b
Fp([)p Fg(esp)j Fp(+)h(\(4\()p Fo(X)25 b Fp(+)18 b(1\)\)])1661
4420 y Fg(sfree)25 b Fp(\(4\()p Fo(B)e Fp(+)18 b Fo(X)25
b Fp(+)18 b(2\)\))1661 4520 y Fg(ret)701 4943 y Fp(\()p
Fk(C)5 b Fp(\()p Fo(`)p Fp(\))23 b(=)g Fc(lbl)9 b Fp(\()p
Fo(\013)1166 4955 y Fh(1)1203 4943 y Fp(:)p Fo(k)1269
4955 y Fh(1)1307 4943 y Fo(;)14 b(:)g(:)g(:)g(;)g(\013)1545
4955 y Fj(n)1590 4943 y Fp(:)p Fo(k)1656 4955 y Fj(n)1701
4943 y Fp(;)g(\004)1793 4913 y Ff(0)1817 4943 y Fp(;)g(\000)1906
4913 y Ff(0)1929 4943 y Fp(\)\))415 5043 y Fo(\024)19
b Fk(\000)f Fp(1)k Fk(\025)h(T)e Fp(\()p Fo(`)p Fp(\))83
b Fk(C)28 b(`)23 b Fo(c)1147 5055 y Fj(i)1197 5043 y
Fp(:)g Fo(k)1286 5055 y Fj(i)1397 5043 y Fk(C)28 b Fi(\017)23
b Fp(\000)1595 5013 y Ff(0)1618 5043 y Fp([)-5 b Fo(~)-37
b(c=)r(~)-44 b(\013)p Fp(])83 b Fk(C)28 b Fi(\017)22
b Fp(\004)2078 5013 y Ff(0)2102 5043 y Fp([)-5 b Fo(~)-37
b(c=)r(~)-44 b(\013)p Fp(])p 374 5093 1947 4 v 709 5179
a Fk(C)5 b Fp(;)14 b Fk(T)20 b Fp(;)14 b Fo(\024)23 b
Fk(`)g Fg(goto)j Fo(`)p Fp([)p Fo(c)1338 5191 y Fh(1)1375
5179 y Fo(;)14 b(:)g(:)g(:)f(;)h(c)1595 5191 y Fj(n)1640
5179 y Fp(])24 b Fi( )f Fg(jmp)j Fo(`)2743 4794 y(\024)18
b Fk(\000)g Fp(3)k Fk(\025)h Fp(just)14 b Fo(H)2554 4893
y Fk(C)28 b(`)23 b Fo(v)j Fp(:)d Fo(\034)2848 4905 y
Fh(exn)3037 4893 y Fk(C)k Fi(\017)c Fb(canraise)p 2487
4943 1040 4 v 2528 5029 a Fk(C)5 b Fp(;)14 b Fk(T)21
b Fp(;)14 b Fo(\024)23 b Fk(`)f Fg(raise)k Fo(v)g Fi( )2985
5129 y Fg(mov)g(eax)o Fo(;)14 b Fk(j)p Fo(v)s Fk(j)3400
5141 y Ff(C)2985 5229 y Fg(mov)26 b(esp)o Fo(;)14 b Fg(edi)2985
5328 y(ret)1905 5589 y FF(42)p eop
%%Page: 43 45
43 44 bop 1269 252 a Fk(C)28 b(`)23 b Fo(v)j Fp(:)d(\()p
Fo(\034)1604 222 y Ff(0)1595 273 y Fh(1)1647 252 y Fo(:)14
b(:)g(:)g(;)g(\034)1840 222 y Ff(0)1831 273 y Fj(n)1876
252 y Fp(\))23 b Fk(!)g Fo(\034)2082 222 y Ff(00)2209
252 y Fk(C)k Fi(\017)c Fb(canraise)731 352 y Fk(C)28
b(`)23 b Fo(v)917 364 y Fj(i)968 352 y Fp(:)g Fo(\034)1059
322 y Ff(0)1050 374 y Fj(i)1110 352 y Fp(for)k(1)c Fk(\024)g
Fo(i)f Fk(\024)h Fo(n)83 b Fk(C)5 b Fp([)p Fo(s)22 b
Fk(7!)h Fo(\034)1946 322 y Ff(00)1990 352 y Fp(];)14
b Fk(T)21 b Fp(;)14 b(\()p Fo(\024)k Fk(\000)g Fp(\()p
Fo(n)h Fp(+)f(3)g(+)g Fo(E)5 b Fp(\)\))24 b Fk(`)e Fo(e)h
Fk(7!)g Fo(I)e(S)p 690 402 2521 4 v 1258 488 a Fk(C)5
b Fp(;)14 b Fk(T)21 b Fp(;)14 b Fo(\024)23 b Fk(`)f Fg(let)27
b Fo(s)c Fp(=)f Fo(v)s Fp(\()p Fo(v)2014 500 y Fh(1)2052
488 y Fo(;)14 b(:)g(:)g(:)g(;)g(v)2277 500 y Fj(n)2322
488 y Fp(\))28 b Fg(in)f Fo(e)c Fi( )1715 588 y Fg(push)j
Fk(j)p Fo(v)1980 600 y Fj(n)2025 588 y Fk(j)2048 600
y Ff(C)1715 676 y Fp(.)1715 709 y(.)1715 743 y(.)1715
842 y Fg(push)g Fk(j)p Fo(v)1980 854 y Fh(1)2017 842
y Fk(j)2040 854 y Ff(C)1715 942 y Fg(call)g Fk(j)p Fo(v)s
Fk(j)2006 954 y Ff(C)1715 1042 y Fg(mov)g Fk(j)p Fo(s)p
Fk(j)1958 1012 y Fj(d)1958 1065 y Ff(C)2001 1042 y Fo(;)14
b Fg(eax)1715 1142 y(sfree)25 b Fp(4)p Fo(n)1715 1242
y(I)1632 1341 y(S)1465 1615 y Fk(C)i(`)c Fo(v)j Fp(:)e
Fo(\034)1768 1585 y Ff(0)1805 1615 y Fg(array)81 b Fk(C)28
b(`)23 b Fo(v)2295 1585 y Ff(0)2341 1615 y Fp(:)g Fg(int)672
1715 y Fk(C)5 b Fp([)p Fo(s)22 b Fk(7!)h Fo(\034)956
1685 y Ff(0)980 1715 y Fp(];)14 b Fk(T)22 b Fp(;)14 b(\()p
Fo(\024)k Fk(\000)g Fp(7\))23 b Fk(`)g Fo(e)f Fi( )i
Fo(I)c(S)88 b Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14 b(\()p
Fo(\024)k Fk(\000)g Fp(4\))23 b Fk(`)g Fg(raise)12 b
Fo(v)2672 1727 y Fh(arra)n(y)n(exn)2950 1715 y Fi( )23
b Fo(I)3092 1727 y Fj(e)3142 1715 y Fo(S)3193 1727 y
Fj(e)p 344 1765 3213 4 v 385 1851 a Fk(C)5 b Fp(;)14
b Fk(T)21 b Fp(;)14 b Fo(\024)23 b Fk(`)g Fg(let)j Fo(s)d
Fp(=)g Fg(sub)n Fp(\()p Fo(v)s(;)14 b(v)1312 1821 y Ff(0)1336
1851 y Fp(\))28 b Fg(in)f Fo(e)c Fi( )842 1951 y Fg(mov)j(eax)o
Fo(;)14 b Fk(j)p Fo(v)s Fk(j)1257 1963 y Ff(C)842 2050
y Fg(mov)26 b(ecx)o Fo(;)14 b Fk(j)p Fo(v)1234 2020 y
Ff(0)1257 2050 y Fk(j)1280 2062 y Ff(C)842 2150 y Fg(cmpja)25
b Fp([)p Fg(eax)o Fp(])p Fo(;)14 b Fg(ecx)o Fo(;)g(`)1504
2162 y Fa(p)m(ass)842 2249 y Fo(I)878 2261 y Fj(e)759
2349 y Fo(S)810 2361 y Fj(e)759 2449 y Fo(`)794 2461
y Fa(p)m(ass)948 2449 y Fp(:)23 b Fk(8)p Fo(\013)1093
2461 y Fa(sz)1162 2449 y Fp(:)p Fb(W)n(o)n(rd)o Fo(:)925
2548 y Fc(LL)p Fp(\()p Fk(C)5 b Fo(;)14 b Fp([)p Fg(eax)22
b Fk(7!)h Fg(box)n Fp(\()p Fg(set)1723 2560 y Fh(=)1779
2548 y Fp(\()p Fo(\013)1864 2560 y Fa(sz)1932 2548 y
Fp(\))c Fk(\002)f Fg(mbox)n Fp(\()p Fk(j)p Fo(\034)2340
2518 y Ff(0)2365 2548 y Fk(j)23 b(")f Fo(\013)2528 2560
y Fa(sz)2596 2548 y Fp(\)\))p Fo(;)14 b Fg(ecx)23 b Fk(7!)g
Fg(set)3089 2560 y Fj(<)3145 2548 y Fp(\()p Fo(\013)3230
2560 y Fa(sz)3298 2548 y Fp(\)]\))h(=)842 2648 y Fg(mov)i(eax)o
Fo(;)14 b Fp([)p Fg(eax)j Fp(+)h(4])842 2748 y Fg(mov)26
b(eax)o Fo(;)14 b Fp([)p Fg(eax)j Fp(+)h(0)g(+)g(4)g
Fk(\001)h Fg(ecx)n Fp(])842 2848 y Fg(mov)26 b Fk(j)p
Fo(s)p Fk(j)1085 2818 y Fj(d)1085 2871 y Ff(C)1128 2848
y Fo(;)14 b Fg(eax)842 2948 y Fo(I)759 3047 y(S)1442
3321 y Fk(C)28 b(`)23 b Fo(v)1628 3333 y Fh(1)1688 3321
y Fp(:)g Fo(\034)1779 3291 y Ff(0)1817 3321 y Fg(array)81
b Fk(C)28 b(`)22 b Fo(v)2303 3333 y Fh(2)2364 3321 y
Fp(:)h Fg(int)591 3421 y Fk(C)5 b Fp(;)14 b Fk(T)21 b
Fp(;)14 b(\()p Fo(\024)k Fk(\000)g Fp(4\))23 b Fk(`)g
Fg(raise)12 b Fo(v)1404 3433 y Fh(arra)n(y)n(exn)1682
3421 y Fi( )23 b Fo(I)1824 3433 y Fj(e)1874 3421 y Fo(S)1925
3433 y Fj(e)2043 3421 y Fk(C)28 b(`)23 b Fo(v)2229 3433
y Fh(3)2289 3421 y Fp(:)h Fo(\034)2381 3391 y Ff(0)2488
3421 y Fk(C)5 b Fp(;)14 b Fk(T)20 b Fp(;)14 b(\()p Fo(\024)19
b Fk(\000)f Fp(7\))23 b Fk(`)f Fo(e)h Fi( )g Fo(I)e(S)p
344 3471 V 385 3557 a Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14
b Fo(\024)23 b Fk(`)g Fg(let)j(sub)o Fp(\()p Fo(v)1080
3569 y Fh(1)1118 3557 y Fo(;)14 b(v)1195 3569 y Fh(2)1232
3557 y Fp(\))23 b(:=)g Fo(v)1438 3569 y Fh(3)1503 3557
y Fg(in)k Fo(e)c Fi( )842 3657 y Fg(mov)j(eax)o Fo(;)14
b Fk(j)p Fo(v)1231 3669 y Fh(1)1268 3657 y Fk(j)1291
3669 y Ff(C)842 3756 y Fg(mov)26 b(ecx)o Fo(;)14 b Fk(j)p
Fo(v)1231 3768 y Fh(2)1268 3756 y Fk(j)1291 3768 y Ff(C)842
3856 y Fg(cmpja)25 b Fp([)p Fg(eax)o Fp(])p Fo(;)14 b
Fg(ecx)o Fo(;)g(`)1504 3868 y Fa(p)m(ass)842 3955 y Fo(I)878
3967 y Fj(e)759 4055 y Fo(S)810 4067 y Fj(e)759 4155
y Fo(`)794 4167 y Fa(p)m(ass)948 4155 y Fp(:)23 b Fk(8)p
Fo(\013)1093 4167 y Fa(sz)1162 4155 y Fp(:)p Fb(W)n(o)n(rd)o
Fo(:)925 4254 y Fc(LL)p Fp(\()p Fk(C)5 b Fo(;)14 b Fp([)p
Fg(eax)22 b Fk(7!)h Fg(box)n Fp(\()p Fg(set)1723 4266
y Fh(=)1779 4254 y Fp(\()p Fo(\013)1864 4266 y Fa(sz)1932
4254 y Fp(\))c Fk(\002)f Fg(mbox)n Fp(\()p Fk(j)p Fo(\034)2340
4224 y Ff(0)2365 4254 y Fk(j)23 b(")f Fo(\013)2528 4266
y Fa(sz)2596 4254 y Fp(\)\))p Fo(;)14 b Fg(ecx)23 b Fk(7!)g
Fg(set)3089 4266 y Fj(<)3145 4254 y Fp(\()p Fo(\013)3230
4266 y Fa(sz)3298 4254 y Fp(\)]\))h(=)842 4354 y Fg(mov)i(eax)o
Fo(;)14 b Fp([)p Fg(eax)j Fp(+)h(4])842 4454 y Fg(mov)26
b(edx)o Fo(;)14 b Fk(j)p Fo(v)1231 4466 y Fh(3)1268 4454
y Fk(j)1291 4466 y Ff(C)842 4553 y Fg(mov)26 b Fp([)p
Fg(eax)18 b Fp(+)g(0)f(+)i(4)e Fk(\001)i Fg(ecx)o Fp(])p
Fo(;)14 b Fg(edx)842 4653 y Fo(I)759 4752 y(S)1905 5589
y FF(43)p eop
%%Page: 44 46
44 45 bop 1581 266 a Fk(C)28 b(`)23 b Fo(v)j Fp(:)d([)p
1862 201 108 4 v Fo(j)5 b Fp(:)p Fo(\034)10 b(;)k(i)p
Fp(:)p Fo(\034)2104 236 y Ff(0)2128 266 y Fo(;)p 2165
201 V 14 w(j)5 b Fp(:)p Fo(\034)2272 215 y Ff(0)2295
266 y Fp(])528 379 y Fk(C)g Fp([)p Fo(s)23 b Fk(7!)g
Fp([)p Fo(i)p Fp(:)p Fo(\034)888 349 y Ff(0)912 379 y
Fp(]];)14 b Fk(T)21 b Fp(;)14 b(\()p Fo(\024)19 b Fk(\000)f
Fp(4\))k Fk(`)h Fo(e)1489 391 y Fh(1)1549 379 y Fi( )g
Fo(I)1691 391 y Fh(1)1743 379 y Fo(S)1794 391 y Fh(1)1914
379 y Fk(C)5 b Fp([)p Fo(s)23 b Fk(7!)g Fp([)p 2177 314
V Fo(j)5 b Fp(:)p Fo(\034)k(;)p 2321 314 V 14 w(j)c Fp(:)p
Fo(\034)2429 328 y Ff(0)2452 379 y Fp(]];)14 b Fk(T)22
b Fp(;)14 b(\()p Fo(\024)k Fk(\000)g Fp(4\))23 b Fk(`)g
Fo(e)3030 391 y Fh(2)3090 379 y Fi( )g Fo(I)3232 391
y Fh(2)3283 379 y Fo(S)3334 391 y Fh(2)p 487 429 2927
4 v 1131 515 a Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14 b
Fo(\024)23 b Fk(`)g Fg(case)j Fo(v)k Fg(of)d(inj)o Fp(\()p
Fo(i;)14 b(s)p Fp(\))23 b Fk(\))g Fo(e)2320 527 y Fh(1)2385
515 y Fg(else)j Fo(e)2626 527 y Fh(2)2686 515 y Fi( )1588
615 y Fg(mov)g(eax)o Fo(;)14 b Fk(j)p Fo(v)s Fk(j)2003
627 y Ff(C)1588 714 y Fg(cmpje)25 b Fp([)p Fg(eax)o Fp(])p
Fo(;)14 b(i;)g(`)2148 726 y Fa(match)1588 815 y Fg(mov)26
b Fk(j)p Fo(s)p Fk(j)1831 784 y Fj(d)1831 837 y Ff(C)1874
815 y Fo(;)14 b Fg(eax)1588 914 y Fo(I)1624 926 y Fh(2)1505
1014 y Fo(S)1556 1026 y Fh(2)1505 1113 y Fo(`)1540 1125
y Fa(match)1752 1113 y Fp(:)23 b Fc(LL)p Fp(\()p Fk(C)5
b Fo(;)14 b Fp([)p Fg(eax)22 b Fk(7!)h(j)p Fp([)p Fo(i)p
Fp(:)p Fo(\034)2446 1083 y Ff(0)2470 1113 y Fp(])p Fk(j)p
Fp(]\))g(=)1588 1214 y Fg(mov)j Fk(j)p Fo(s)p Fk(j)1831
1184 y Fj(d)1831 1237 y Ff(C)1874 1214 y Fo(;)14 b Fg(eax)1588
1313 y Fo(I)1624 1325 y Fh(1)1505 1413 y Fo(S)1556 1425
y Fh(1)826 1687 y Fk(C)27 b(`)c Fo(v)1011 1699 y Fj(i)1062
1687 y Fp(:)g Fg(int)j Fp(for)i Fo(i)22 b Fp(=)h(1)p
Fo(;)14 b Fp(2)276 1787 y Fk(C)5 b Fp(;)14 b Fk(T)21
b Fp(;)14 b(\()p Fo(\024)k Fk(\000)g Fp(3\))23 b Fk(`)g
Fo(e)856 1799 y Fh(1)916 1787 y Fi( )g Fo(I)1058 1799
y Fh(1)1109 1787 y Fo(S)1160 1799 y Fh(1)1281 1787 y
Fk(C)5 b Fp(;)14 b Fk(T)20 b Fp(;)14 b(\()p Fo(\024)19
b Fk(\000)f Fp(3\))23 b Fk(`)g Fo(e)1861 1799 y Fh(2)1921
1787 y Fi( )g Fo(I)2063 1799 y Fh(2)2114 1787 y Fo(S)2165
1799 y Fh(2)p 234 1836 2010 4 v 524 1923 a Fk(C)5 b Fp(;)14
b Fk(T)20 b Fp(;)14 b Fo(\024)23 b Fk(`)g Fg(if)k Fo(v)1012
1935 y Fh(1)1072 1923 y Fp(=)c Fo(v)1200 1935 y Fh(2)1265
1923 y Fg(then)j Fo(e)1506 1935 y Fh(1)1571 1923 y Fg(else)g
Fo(e)1812 1935 y Fh(2)1872 1923 y Fi( )980 2022 y Fg(mov)h(eax)n
Fo(;)14 b Fk(j)p Fo(v)1369 2034 y Fh(1)1407 2022 y Fk(j)1430
2034 y Ff(C)980 2122 y Fg(cmp)27 b(eax)n Fo(;)14 b Fk(j)p
Fo(v)1369 2134 y Fh(2)1407 2122 y Fk(j)1430 2134 y Ff(C)980
2222 y Fg(jne)27 b Fo(`)1174 2234 y Fa(else)980 2321
y Fo(I)1016 2333 y Fh(1)897 2421 y Fo(S)948 2433 y Fh(1)897
2521 y Fo(`)932 2533 y Fa(else)1073 2521 y Fp(:)c Fc(LL)p
Fp(\()p Fk(C)5 b Fo(;)14 b Fp([)g(]\))23 b(=)980 2620
y Fo(I)1016 2632 y Fh(2)897 2720 y Fo(S)948 2732 y Fh(2)2698
1836 y Fk(C)k(`)c Fo(v)k Fp(:)c Fk(h)p Fo(\034)3024 1848
y Fh(0)3061 1836 y Fo(;)14 b(:)g(:)g(:)g(;)g(\034)3282
1848 y Fj(m)3345 1836 y Fk(i)2457 1936 y(C)28 b(`)22
b Fo(v)27 b Fp(:)c Fo(\034)2751 1948 y Fj(i)2862 1936
y Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14 b Fo(\024)k Fk(\000)g
Fp(3)k Fk(`)h Fo(e)g Fi( )g Fo(I)e(S)p 2410 1986 1256
4 v 2451 2072 a Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14
b Fo(\024)23 b Fk(`)g Fg(let)j Fo(\031)2990 2084 y Fj(i)3032
2072 y Fo(v)g Fp(:=)d Fo(v)3252 2042 y Ff(0)3303 2072
y Fg(in)k Fo(e)c Fi( )2908 2172 y Fg(mov)j(eax)o Fo(;)14
b Fk(j)p Fo(v)s Fk(j)3323 2184 y Ff(C)2908 2272 y Fg(mov)26
b(ecx)o Fo(;)14 b Fk(j)p Fo(v)3300 2241 y Ff(0)3324 2272
y Fk(j)3347 2284 y Ff(C)2908 2371 y Fg(mov)26 b Fp([)p
Fg(eax)18 b Fp(+)g(4)p Fo(i)p Fp(])p Fo(;)c Fg(ecx)2908
2471 y Fo(I)2825 2570 y(S)1536 2994 y Fk(C)28 b(`)23
b Fo(v)1722 3006 y Fj(i)1773 2994 y Fp(:)g Fg(int)j Fp(for)h
Fo(i)c Fp(=)g(1)p Fo(;)14 b Fp(2)1051 3093 y Fk(C)5 b
Fp(;)14 b Fk(T)21 b Fp(;)14 b Fo(\024)k Fk(\000)g Fp(3)23
b Fk(`)g Fo(e)1567 3105 y Fh(1)1627 3093 y Fi( )g Fo(I)1769
3105 y Fh(1)1820 3093 y Fo(S)1871 3105 y Fh(1)1992 3093
y Fk(C)5 b Fp(;)14 b Fk(T)20 b Fp(;)14 b Fo(\024)k Fk(\000)g
Fp(3)23 b Fk(`)g Fo(e)2507 3105 y Fh(2)2567 3093 y Fi( )g
Fo(I)2709 3105 y Fh(2)2760 3093 y Fo(S)2811 3105 y Fh(2)p
1010 3143 1881 4 v 1234 3230 a Fk(C)5 b Fp(;)14 b Fk(T)21
b Fp(;)14 b Fo(\024)23 b Fk(`)g Fg(if)k Fo(v)1723 3242
y Fh(1)1783 3230 y Fo(<)c(v)1911 3242 y Fh(2)1976 3230
y Fg(then)j Fo(e)2217 3242 y Fh(1)2282 3230 y Fg(else)g
Fo(e)2523 3242 y Fh(2)2583 3230 y Fi( )1691 3329 y Fg(mov)g(eax)o
Fo(;)14 b Fk(j)p Fo(v)2080 3341 y Fh(1)2118 3329 y Fk(j)2141
3341 y Ff(C)1691 3429 y Fg(cmp)26 b(eax)o Fo(;)14 b Fk(j)p
Fo(v)2080 3441 y Fh(2)2118 3429 y Fk(j)2141 3441 y Ff(C)1691
3528 y Fg(ja)27 b Fo(`)1841 3540 y Fa(else)1691 3628
y Fo(I)1727 3640 y Fh(1)1608 3728 y Fo(S)1659 3740 y
Fh(1)1608 3827 y Fo(`)1643 3839 y Fa(else)1784 3827 y
Fp(:)c Fc(LL)p Fp(\()p Fk(C)5 b Fo(;)14 b Fp([)g(]\))23
b(=)1691 3927 y Fo(I)1727 3939 y Fh(2)1608 4027 y Fo(S)1659
4039 y Fh(2)455 4293 y Fk(C)k(`)c Fo(v)k Fp(:)c Fk(9)p
Fo(\013)812 4305 y Fh(1)849 4293 y Fp(:)p Fo(k)915 4305
y Fh(1)953 4293 y Fo(;)14 b(:)g(:)g(:)f(;)h(\013)1190
4305 y Fj(n)1235 4293 y Fp(:)p Fo(k)1301 4305 y Fj(n)1347
4293 y Fo(:\034)1415 4263 y Ff(0)1522 4293 y Fp(\()p
Fk(C)23 b(\010)18 b Fp(\()p Fo(\013)1789 4305 y Fh(1)1827
4293 y Fp(:)p Fo(k)1893 4305 y Fh(1)1930 4293 y Fo(;)c(:)g(:)g(:)g(;)g
(\013)2168 4305 y Fj(n)2213 4293 y Fp(:)p Fo(k)2279 4305
y Fj(n)2325 4293 y Fp(\)\)[)p Fo(s)23 b Fk(7!)g Fo(\034)2625
4263 y Ff(0)2649 4293 y Fp(];)14 b Fk(T)22 b Fp(;)14
b(\()p Fo(\024)k Fk(\000)g Fp(2\))23 b Fk(`)g Fo(e)g
Fi( )g Fo(I)d(S)p 455 4334 2991 4 v 1096 4420 a Fk(C)5
b Fp(;)14 b Fk(T)21 b Fp(;)14 b Fo(\024)23 b Fk(`)f Fg(let)o
Fp(\()p Fo(\013)1645 4432 y Fh(1)1683 4420 y Fo(;)14
b(:)g(:)g(:)f(;)h(\013)1920 4432 y Fj(n)1966 4420 y Fo(;)g(s)p
Fp(\))23 b(=)f Fg(unpack)k Fo(v)k Fg(in)d Fo(e)c Fi( )1553
4520 y Fg(mov)j(eax)o Fo(;)14 b Fk(j)p Fo(v)s Fk(j)1968
4532 y Ff(C)1553 4620 y Fg(mov)26 b Fk(j)p Fo(s)p Fk(j)1796
4590 y Fj(d)1796 4643 y Ff(C)1839 4620 y Fo(;)14 b Fg(eax)1553
4720 y Fo(I)1470 4820 y(S)1905 5589 y FF(44)p eop
%%Page: 45 47
45 46 bop 919 252 a Fp(\()p Fk(C)5 b Fp(\()p Fo(`)p Fp(\))23
b(=)g Fc(hnd)9 b Fp(\()p Fo(\013)1435 264 y Fh(1)1473
252 y Fp(:)p Fo(k)1539 264 y Fh(1)1576 252 y Fo(;)14
b(:)g(:)g(:)g(;)g(\013)1814 264 y Fj(n)1859 252 y Fp(:)p
Fo(k)1925 264 y Fj(n)1971 252 y Fp(;)g(\004)2063 222
y Ff(0)2086 252 y Fp(;)g(\000)2175 222 y Ff(0)2198 252
y Fp(\)\))84 b(\(handlers)o(\()p Fk(C)5 b Fp(\))23 b(=)g(0\))872
352 y Fk(C)28 b(`)23 b Fo(c)1054 364 y Fj(i)1104 352
y Fp(:)g Fo(k)1193 364 y Fj(i)1304 352 y Fk(C)28 b Fi(\017)23
b Fp(\004)1505 322 y Ff(0)1528 352 y Fp([)-5 b Fo(~)-37
b(c=)r(~)-44 b(\013)p Fp(])83 b Fk(C)23 b(\010)18 b Fp(\(\000)2022
322 y Ff(0)2046 352 y Fp([)-5 b Fo(~)-37 b(c=)r(~)-44
b(\013)p Fp(]\);)14 b Fk(T)21 b Fp(;)14 b(\()p Fo(\024)19
b Fk(\000)f Fp(3\))23 b Fk(`)f Fo(e)h Fi( )g Fo(I)e(S)p
831 402 2239 4 v 1176 488 a Fk(C)5 b Fp(;)14 b Fk(T)21
b Fp(;)14 b Fo(\024)23 b Fk(`)g Fg(pushhandler)g Fo(`)p
Fp([)p Fo(c)2111 500 y Fh(1)2148 488 y Fo(;)14 b(:)g(:)g(:)f(;)h(c)2368
500 y Fj(n)2413 488 y Fp(])28 b Fg(in)f Fo(e)c Fi( )1633
588 y Fg(push)j(edi)1633 687 y(push)g Fo(`)1633 787 y
Fg(mov)g(edi)o Fo(;)14 b Fg(esp)1633 887 y Fo(I)1550
986 y(S)919 1260 y Fp(\()p Fk(C)5 b Fp(\()p Fo(`)p Fp(\))23
b(=)g Fc(hnd)9 b Fp(\()p Fo(\013)1435 1272 y Fh(1)1473
1260 y Fp(:)p Fo(k)1539 1272 y Fh(1)1576 1260 y Fo(;)14
b(:)g(:)g(:)g(;)g(\013)1814 1272 y Fj(n)1859 1260 y Fp(:)p
Fo(k)1925 1272 y Fj(n)1971 1260 y Fp(;)g(\004)2063 1230
y Ff(0)2086 1260 y Fp(;)g(\000)2175 1230 y Ff(0)2198
1260 y Fp(\)\))84 b(\(handlers)o(\()p Fk(C)5 b Fp(\))23
b Fk(6)p Fp(=)g(0\))872 1360 y Fk(C)28 b(`)23 b Fo(c)1054
1372 y Fj(i)1104 1360 y Fp(:)g Fo(k)1193 1372 y Fj(i)1304
1360 y Fk(C)28 b Fi(\017)23 b Fp(\004)1505 1330 y Ff(0)1528
1360 y Fp([)-5 b Fo(~)-37 b(c=)r(~)-44 b(\013)p Fp(])83
b Fk(C)23 b(\010)18 b Fp(\(\000)2022 1330 y Ff(0)2046
1360 y Fp([)-5 b Fo(~)-37 b(c=)r(~)-44 b(\013)p Fp(]\);)14
b Fk(T)21 b Fp(;)14 b(\()p Fo(\024)19 b Fk(\000)f Fp(2\))23
b Fk(`)f Fo(e)h Fi( )g Fo(I)e(S)p 831 1410 V 1176 1496
a Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14 b Fo(\024)23 b
Fk(`)g Fg(pushhandler)g Fo(`)p Fp([)p Fo(c)2111 1508
y Fh(1)2148 1496 y Fo(;)14 b(:)g(:)g(:)f(;)h(c)2368 1508
y Fj(n)2413 1496 y Fp(])28 b Fg(in)f Fo(e)c Fi( )1633
1596 y Fg(push)j Fo(`)1633 1695 y Fg(mov)g(edi)o Fo(;)14
b Fg(esp)1633 1795 y Fo(I)1550 1895 y(S)81 2161 y Fp(\(handlers)o(\()p
Fk(C)5 b Fp(\))24 b(=)e(1\))83 b(p)r(oph\()p Fk(C)5 b
Fp(\);)14 b Fk(T)21 b Fp(;)14 b(\()p Fo(\024)19 b Fk(\000)f
Fp(2\))23 b Fk(`)g Fo(e)f Fi( )h Fo(I)e(S)p 81 2202 1787
4 v 402 2288 a Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14 b
Fo(\024)22 b Fk(`)h Fg(pophandler)h(in)j Fo(e)22 b Fi( )859
2388 y Fg(mov)k(edi)o Fo(;)14 b Fp([)p Fg(esp)j Fp(+)h(4])859
2487 y Fg(sfree)25 b Fp(8)859 2587 y Fo(I)776 2687 y(S)2033
2161 y Fp(\(handlers)o(\()p Fk(C)5 b Fp(\))24 b Fo(>)e
Fp(1\))83 b(p)r(oph\()p Fk(C)5 b Fp(\);)14 b Fk(T)22
b Fp(;)14 b(\()p Fo(\024)k Fk(\000)g Fp(2\))23 b Fk(`)g
Fo(e)f Fi( )i Fo(I)c(S)p 2033 2202 V 2398 2288 a Fk(C)5
b Fp(;)14 b Fk(T)21 b Fp(;)14 b Fo(\024)22 b Fk(`)h Fg(pophandler)h(in)
j Fo(e)22 b Fi( )2854 2388 y Fg(sfree)k Fp(4)2854 2487
y Fg(mov)h(edi)o Fo(;)14 b Fg(esp)2854 2587 y Fo(I)2771
2687 y(S)65 3003 y Fk(C)28 b(`)23 b Fo(v)j Fp(:)d Fo(\034)368
2973 y Ff(0)475 3003 y Fk(C)5 b Fp([)p Fo(s)23 b Fk(7!)g
Fo(\034)760 2973 y Ff(0)784 3003 y Fp(];)14 b Fk(T)21
b Fp(;)14 b(\()p Fo(\024)k Fk(\000)g Fp(2\))23 b Fk(`)g
Fo(e)g Fi( )g Fo(I)e(S)p 65 3044 1515 4 v 344 3130 a
Fk(C)28 b(`)22 b Fg(let)27 b Fo(s)c Fp(=)f Fo(v)31 b
Fg(in)c Fo(e)c Fi( )801 3230 y Fg(mov)j(eax)o Fo(;)14
b Fk(j)p Fo(v)s Fk(j)1216 3242 y Ff(C)801 3330 y Fg(mov)26
b Fk(j)p Fo(s)p Fk(j)1044 3300 y Fj(d)1044 3353 y Ff(C)1087
3330 y Fo(;)14 b Fg(eax)801 3430 y Fo(I)718 3529 y(S)1745
2953 y Fk(C)28 b(`)23 b Fo(v)1931 2965 y Fj(i)1982 2953
y Fp(:)g Fg(int)j Fp(for)h(1)c(=)g(1)p Fo(;)14 b Fp(2)82
b Fk(C)5 b Fp([)p Fo(s)22 b Fk(7!)h Fg(int)o Fp(];)14
b Fk(T)21 b Fp(;)14 b(\()p Fo(\024)19 b Fk(\000)f Fp(3\))23
b Fk(`)f Fo(e)h Fi( )g Fo(I)e(S)p 1745 2994 2090 4 v
2165 3080 a Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14 b Fo(\024)23
b Fk(`)g Fg(let)j Fo(s)d Fp(=)g(+\()p Fo(v)2944 3092
y Fh(1)2981 3080 y Fo(;)14 b(v)3058 3092 y Fh(2)3095
3080 y Fp(\))28 b Fg(in)f Fo(e)c Fi( )2622 3180 y Fg(mov)j(eax)o
Fo(;)14 b Fk(j)p Fo(v)3011 3192 y Fh(1)3049 3180 y Fk(j)3072
3192 y Ff(C)2622 3279 y Fg(add)26 b(eax)o Fo(;)14 b Fg(eax)o
Fo(;)g Fk(j)p Fo(v)3179 3291 y Fh(2)3216 3279 y Fk(j)3239
3291 y Ff(C)2622 3380 y Fg(mov)26 b Fk(j)p Fo(s)p Fk(j)2865
3350 y Fj(d)2865 3403 y Ff(C)2908 3380 y Fo(;)14 b Fg(eax)2622
3479 y Fo(I)2539 3579 y(S)639 3845 y Fk(C)27 b(`)c Fo(v)824
3857 y Fj(i)875 3845 y Fp(:)g Fo(\034)957 3857 y Fj(i)1013
3845 y Fp(for)k(1)c Fk(\024)f Fo(i)h Fk(\024)f Fo(n)83
b Fk(C)5 b Fp([)p Fo(s)23 b Fk(7!)g(h)p Fo(\034)1872
3857 y Fh(1)1910 3845 y Fo(;)14 b(:)g(:)g(:)f(;)h(\034)2130
3857 y Fj(n)2176 3845 y Fk(i)p Fp(];)g Fk(T)21 b Fp(;)14
b(\()p Fo(\024)19 b Fk(\000)f Fp(\(2)p Fo(n)g Fp(+)g(2\)\))23
b Fk(`)g Fo(e)g Fi( )g Fo(I)e(S)p 639 3886 2623 4 v 1280
3973 a Fk(C)5 b Fp(;)14 b Fk(T)20 b Fp(;)14 b Fo(\024)23
b Fk(`)g Fg(let)j Fo(s)d Fp(=)g Fk(h)p Fo(v)1993 3985
y Fh(1)2031 3973 y Fo(;)14 b(:)g(:)g(:)f(;)h(v)2255 3985
y Fj(n)2301 3973 y Fk(i)28 b Fg(in)f Fo(e)22 b Fi( )1736
4072 y Fg(push)k Fk(j)p Fo(v)2001 4084 y Fj(n)2047 4072
y Fk(j)2070 4084 y Ff(C)1736 4161 y Fp(.)1736 4194 y(.)1736
4227 y(.)1736 4327 y Fg(push)g Fk(j)p Fo(v)2001 4339
y Fh(1)2039 4327 y Fk(j)2062 4339 y Ff(C)1736 4426 y
Fg(malloc)f(eax)o Fo(;)14 b Fg(ebx)o Fo(;)g Fp(4)p Fo(n)1736
4526 y Fg(pop)27 b Fp([)p Fg(eax)17 b Fp(+)h(4)g Fk(\001)g
Fp(0])1736 4614 y(.)1736 4648 y(.)1736 4681 y(.)1736
4780 y Fg(pop)27 b Fp([)p Fg(eax)17 b Fp(+)h(4)g Fk(\001)g
Fp(\()p Fo(n)h Fk(\000)f Fp(1\)])1736 4881 y Fg(mov)27
b Fk(j)p Fo(s)p Fk(j)1980 4851 y Fj(d)1980 4904 y Ff(C)2023
4881 y Fo(;)14 b Fg(eax)1736 4980 y Fo(I)1653 5080 y(S)1905
5589 y FF(45)p eop
%%Page: 46 48
46 47 bop 1028 236 a Fk(C)27 b(`)c Fo(v)k Fp(:)c Fk(h)p
Fo(\034)1354 248 y Fh(0)1391 236 y Fo(;)14 b(:)g(:)g(:)g(;)g(\034)1612
248 y Fj(n)1657 236 y Fk(i)84 b(C)5 b Fp([)p Fo(s)22
b Fk(7!)h Fo(\034)2048 248 y Fj(i)2076 236 y Fp(];)14
b Fk(T)22 b Fp(;)14 b(\()p Fo(\024)k Fk(\000)g Fp(3\))23
b Fk(`)g Fo(e)g Fi( )g Fo(I)d(S)p 1028 276 1845 4 v 1364
363 a Fk(C)5 b Fp(;)14 b Fk(T)20 b Fp(;)14 b Fo(\024)23
b Fk(`)g Fg(let)j Fo(s)d Fp(=)g Fo(\031)2052 375 y Fj(i)2094
363 y Fo(v)31 b Fg(in)c Fo(e)22 b Fi( )1820 462 y Fg(mov)27
b(eax)n Fo(;)14 b Fk(j)p Fo(v)s Fk(j)2235 474 y Ff(C)1820
562 y Fg(mov)27 b(eax)n Fo(;)14 b Fp([)p Fg(eax)k Fp(+)g(4)p
Fo(i)p Fp(])1820 662 y Fg(mov)27 b Fk(j)p Fo(s)p Fk(j)2064
632 y Fj(d)2064 685 y Ff(C)2107 662 y Fo(;)14 b Fg(eax)1820
762 y Fo(I)1737 862 y(S)603 1117 y Fk(C)28 b(`)23 b Fo(\034)794
1087 y Ff(0)841 1117 y Fp(=)g([)p Fo(:)14 b(:)g(:)f(;)h(j)5
b Fp(:)p Fo(\034)1197 1129 y Fj(j)1232 1117 y Fo(;)14
b(:)g(:)g(:)p Fp(])23 b(:)g Fo(T)303 1217 y Fk(C)k(`)c
Fo(v)j Fp(:)e Fo(\034)597 1229 y Fj(j)715 1217 y Fk(C)5
b Fp([)p Fo(s)22 b Fk(7!)h Fo(\034)999 1187 y Ff(0)1023
1217 y Fp(];)14 b Fk(T)22 b Fp(;)14 b(\()p Fo(\024)k
Fk(\000)g Fp(5\))23 b Fk(`)g Fo(e)g Fi( )g Fo(I)e(S)p
261 1267 1600 4 v 421 1353 a Fk(C)5 b Fp(;)14 b Fk(T)21
b Fp(;)14 b Fo(\024)23 b Fk(`)f Fg(let)27 b Fo(s)c Fp(=)f
Fg(inj)1193 1323 y Ff(0)1193 1376 y Fj(\034)1235 1353
y Fp(\()p Fo(j;)14 b(v)s Fp(\))28 b Fg(in)f Fo(e)c Fi( )878
1453 y Fg(push)j Fk(j)p Fo(v)s Fk(j)1169 1465 y Ff(C)878
1552 y Fg(malloc)f(eax)o Fo(;)14 b Fg(ebx)n Fo(;)g Fp(8)878
1652 y Fg(mov)26 b Fp([)p Fg(eax)o Fp(])p Fo(;)14 b(j)878
1752 y Fg(pop)26 b Fp([)p Fg(eax)17 b Fp(+)h(4])878 1852
y Fg(mov)26 b Fk(j)p Fo(s)p Fk(j)1121 1822 y Fj(d)1121
1875 y Ff(C)1164 1852 y Fo(;)14 b Fg(eax)878 1952 y Fo(I)795
2051 y(S)2027 1326 y Fk(C)27 b(`)c Fo(v)j Fp(:)e([)p
Fo(i)p Fp(:)p Fo(\034)2405 1296 y Ff(0)2428 1326 y Fp(])83
b Fk(C)5 b Fp([)p Fo(s)23 b Fk(7!)g Fo(\034)2819 1296
y Ff(0)2843 1326 y Fp(];)14 b Fk(T)21 b Fp(;)14 b(\()p
Fo(\024)19 b Fk(\000)f Fp(3\))23 b Fk(`)f Fo(e)h Fi( )g
Fo(I)e(S)p 2027 1367 1613 4 v 2227 1453 a Fk(C)5 b Fp(;)14
b Fk(T)21 b Fp(;)14 b Fo(\024)23 b Fk(`)g Fg(let)j Fo(s)d
Fp(=)g Fg(outj)n Fp(\()p Fo(v)s Fp(\))29 b Fg(in)d Fo(e)d
Fi( )2684 1552 y Fg(mov)j(eax)o Fo(;)14 b Fk(j)p Fo(v)s
Fk(j)3099 1564 y Ff(C)2684 1652 y Fg(mov)26 b(eax)o Fo(;)14
b Fp([)p Fg(eax)j Fp(+)h(4])2684 1752 y Fg(mov)26 b Fk(j)p
Fo(s)p Fk(j)2927 1722 y Fj(d)2927 1775 y Ff(C)2971 1752
y Fo(;)14 b Fg(eax)2684 1852 y Fo(I)2601 1952 y(S)732
2300 y Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14 b(\(just)g
Fo(R)q Fp(\))23 b Fk(`)g Fo(e)g Fi( )g Fo(I)e(S)p 498
2340 1313 4 v 498 2419 a Fk(C)5 b Fp(;)14 b Fk(T)21 b
Fp(;)14 b(\(just)h Fo(F)d Fp(\))23 b Fk(`)g Fo(e)f Fi( )h
Fg(YIELD)n Fp(\()p Fo(F)r(;)14 b(R)q Fp(\))29 b Fo(I)21
b(S)2267 2300 y Fk(C)5 b Fp(;)14 b Fk(T)21 b Fp(;)14
b(\(just)g Fo(R)q Fp(\))23 b Fk(`)g Fo(e)g Fi( )g Fo(I)e(S)p
1976 2340 1426 4 v 1976 2419 a Fk(C)5 b Fp(;)14 b Fk(T)21
b Fp(;)14 b(\(retplus)g Fo(F)e Fp(\))23 b Fk(`)g Fo(e)g
Fi( )g Fg(YIELD)n Fp(\()p Fo(F)r(;)14 b(R)q Fp(\))28
b Fo(I)21 b(S)0 2704 y FC(5)135 b(Conclusion)0 2910 y
FA(5.1)112 b(Related)38 b(W)-9 b(ork)0 3082 y FF(The)38
b(idea)i(of)f(a)g(certi\014ed)h(co)s(de)f(format)g(that)h(coun)m(ts)f
(instructions)g(to)g(b)s(ound)e(running)g(time)j(is)f(not)g(new.)0
3195 y(Necula)28 b(and)e(Lee)i([30)q(])f(prop)s(osed)e(just)h(this)h
(idea,)h(and)f(Crary)f(and)g(W)-8 b(eiric)m(h)28 b([10)r(])f(based)f
(the)h(languages)h(LXres)0 3308 y(and)36 b(T)-8 b(ALres)36
b(on)g(it.)60 b(Our)35 b(w)m(ork)h(is)h(largely)g(inspired)f(b)m(y)g
(their)g(tec)m(hniques;)41 b(ho)m(w)m(ev)m(er,)e(to)e(the)g(b)s(est)f
(of)g(our)0 3421 y(kno)m(wledge,)28 b(neither)e(of)g(these)g(previous)f
(e\013orts)i(resulted)e(in)h(an)g(implemen)m(tation)h(of)f(su\016cien)m
(t)g(generalit)m(y)i(to)0 3533 y(supp)s(ort)20 b(real)i(applications.)
39 b(Crary)21 b(and)h(W)-8 b(eiric)m(h's)23 b(w)m(ork)f(in)g
(particular)g(su\013ers)f(from)g(the)h(fact)h(that)f(one)g(m)m(ust)0
3646 y(sp)s(ecify)29 b(the)h(running)e(time)i(of)g(a)g(function)f(in)g
(terms)g(of)h(its)g(input,)f(all)i(in)e(a)h(theory)f(whose)h(complexit)
m(y)h(m)m(ust)0 3759 y(b)s(e)e(carefully)g(con)m(trolled)i(to)f(k)m
(eep)g(t)m(yping)g(decidable.)41 b(W)-8 b(e)30 b(a)m(v)m(oid)h(this)e
(di\016cult)m(y)h(b)m(y)f(c)m(hanging)h(the)f(problem:)0
3872 y(since)h(w)m(e)g(are)g(concerned)g(with)f(b)s(ounding)f(the)i
(time)g(b)s(et)m(w)m(een)g(yields,)g(rather)g(than)f(the)h(total)h
(running)d(time)0 3985 y(of)33 b(functions)g(or)g(programs,)h(w)m(e)g
(do)f(not)g(need)g(to)h(reason)f(ab)s(out)g(the)g(dep)s(endency)f(of)h
(a)h(function's)f(cost)h(on)0 4098 y(its)g(argumen)m(ts.)51
b(On)33 b(the)h(other)g(hand,)f(some)h(optimization)i(of)e(yield)g
(placemen)m(t)h(migh)m(t)f(b)s(e)f(enabled)h(if)g(the)0
4211 y(T)-8 b(AL)g(T-R)32 b(t)m(yp)s(e)f(theory)h(w)m(ere)g(extended)f
(along)i(the)e(lines)h(of)f(LXres)h(so)f(that)h(function)f(costs)i
(could)e(b)s(e)g(more)0 4324 y(precisely)g(describ)s(ed.)141
4437 y(The)39 b(in)m(tegration)i(of)e(arithmetic)h(or)f(logical)j
(reasoning)d(in)m(to)h(a)g(t)m(yp)s(e)f(system)g(is)g(not)g(new,)i
(either.)68 b(Xi)0 4550 y(and)33 b(Harp)s(er's)h(DT)-8
b(AL)34 b([43)q(])h(is)f(a)g(t)m(yp)s(ed)g(assem)m(bly)g(language)i(in)
d(whic)m(h)h FB(dep)-5 b(endent)37 b(typ)-5 b(es)p FF(,)37
b(singleton)e(t)m(yp)s(es,)0 4663 y(and)g(constrain)m(ts)i(are)f(used)g
(to)g(trac)m(k)h(kno)m(wledge)g(of)f(in)m(teger)h(v)-5
b(alues.)58 b(As)36 b(an)g(example,)i(they)e(sho)m(w)g(ho)m(w)g(a)0
4775 y(t)m(yp)s(ed)28 b(assem)m(bly)h(language)h(can)f(safely)g(supp)s
(ort)d(unc)m(hec)m(k)m(ed)k(arra)m(y)f(primitiv)m(es|essen)m(tially)i
(b)m(y)d(forcing)h(the)0 4888 y(programmer)36 b(to)h(p)s(erform)e(b)s
(ounds)f(c)m(hec)m(ks)k(explicit)m(y)g(when)e(they)g(are)h(needed.)59
b(The)36 b(arra)m(y)h(op)s(erations)f(in)0 5001 y(T)-8
b(AL)g(T)35 b(are)g(more)g(or)g(less)g(based)g(on)f(DT)-8
b(AL.)36 b(Other)e(t)m(yp)s(e)h(systems)g(that)g(allo)m(w)i(the)e(in)m
(tegration)h(of)f(logical)0 5114 y(reasoning)22 b(include)f(L)-8
b(TT)21 b([8)q(],)j(in)d(whic)m(h)g(function)g(preconditions)h(and)f
(pro)s(ofs)f(that)i(they)g(hold)f(are)h(represen)m(ted)0
5227 y(via)j(the)g(Linear)f(LF)h(t)m(yp)s(e)f(theory)h([3)q(,)f(39)q
(],)i(and)e(a)h(system)g(describ)s(ed)e(b)m(y)h(Shao)h
FB(et)i(al.)e FF([37)q(])g(whic)m(h)f(accomplishes)0
5340 y(a)31 b(similar)f(feat)i(using)e(the)g(Calculus)g(of)h(Inductiv)m
(e)f(Constructions)h([32)q(].)1905 5589 y(46)p eop
%%Page: 47 49
47 48 bop 141 91 a FF(Sp)s(eaking)24 b(more)g(broadly)-8
b(,)26 b(the)e(en)m(tire)h(issue)f(of)h(\\resource)g(b)s(ounds")d(is)i
(essen)m(tially)i(the)f(problem)e(of)i(ensur-)0 204 y(ing)32
b(that)g(a)g(program)g(co)s(op)s(erates)g(with)g(other)g(soft)m(w)m
(are)h(executing)g(concurren)m(tly)f(on)g(the)g(same)g(computer.)0
317 y(In)g(particular,)i(the)f(idea)g(of)g(requiring)f(a)h(program)g
(to)g(\\yield")h(is)f(fundamen)m(tal)g(to)g(m)m(ultitasking)h(or)f(m)m
(ulti-)0 430 y(threading)26 b(in)g(an)m(y)h(setting)g(where)f
(preemptiv)m(e)h(sc)m(heduling)f(is)h(not)f(a)h(p)s(ossibilit)m(y)-8
b(.)40 b(This)26 b(problem)f(is)i(probably)0 543 y(as)38
b(old)g(as)g(the)g(v)m(ery)g(notion)g(of)g(an)f(op)s(erating)h(system,)
i(and)d(has)h(b)s(een)f(w)m(ell)h(studied)f(o)m(v)m(er)i(the)f(y)m
(ears.)64 b(Of)0 656 y(course,)28 b(w)m(e)g(are)g(in)m(terested)g(in)f
(pro)s(ducing)f FB(foundational)33 b(pr)-5 b(o)g(ofs)37
b FF(that)28 b(programs)f(co)s(op)s(erate;)j(in)d(this)g(resp)s(ect)0
769 y(our)38 b(w)m(ork)g(di\013ers)g(from)g(m)m(uc)m(h)g(of)h(the)f
(systems)h(literature.)65 b(F)-8 b(or)39 b(example,)j(the)c(\\engine")i
(abstraction)f(in)0 882 y(Sc)m(heme)31 b(captures)g(the)f(notion)h(of)g
(a)g(computation)h(that)f(is)g(allo)m(w)m(ed)h(to)f(run)e(for)i(a)g(sp)
s(eci\014c)f(amoun)m(t)h(of)g(time,)0 995 y(whic)m(h)f(ma)m(y)h(or)f
(ma)m(y)h(not)g(b)s(e)f(enough)g(for)g(it)h(to)g(\014nish.)39
b(\(F)-8 b(or)32 b(a)e(go)s(o)s(d)h(in)m(tro)s(duction)f(to)h(engines)g
(w)m(e)g(refer)f(the)0 1108 y(reader)j(to)i(Dyb)m(vig's)f(b)s(o)s(ok)f
(on)h(Sc)m(heme)g([12)q(].\))51 b(Ha)m(ynes)34 b(and)f(F)-8
b(riedman)34 b([19)q(])g(ha)m(v)m(e)h(sho)m(wn)e(that)h(the)f(engine)0
1220 y(abstraction)j(ma)m(y)f(b)s(e)f(used)f(to)i(implemen)m(t)h
(user-lev)m(el)f(threads;)i(Dyb)m(vig)e(and)f(Hieb)h([13)q(])g(ha)m(v)m
(e)g(sho)m(wn)f(that)0 1333 y(engines)f(ma)m(y)g(in)f(turn)f(b)s(e)h
(implemen)m(ted)g(using)i Fz(call/cc)c FF(and)i(a)g(timer)h(in)m
(terrupt.)46 b(Ho)m(w)m(ev)m(er,)35 b(none)e(of)f(this)0
1446 y(w)m(ork)k(explains)g(ho)m(w)g(to)h FB(guar)-5
b(ante)g(e)45 b FF(that)36 b(an)g(engine)h(is)f(stopp)s(ed)f(at)i(the)f
(end)f(of)i(its)f(allotted)i(time,)h(unless)0 1559 y(the)28
b(op)s(erating)h(system)f(can)g(b)s(e)g(coun)m(ted)g(on)g(to)h(deliv)m
(er)g(an)e(async)m(hronous)h(in)m(terrupt)f(at)i(the)f(righ)m(t)h
(momen)m(t.)0 1672 y(\(The)c(implemen)m(tation)j(of)d(engines)h(using)f
(a)h(timer)g(is)g(in)m(tended)f(to)i(w)m(ork)e(regardless)h(of)g(ho)m
(w)f(the)h(timer)g(is)g(im-)0 1785 y(plemen)m(ted;)31
b(Dyb)m(vig)f(and)f(Hieb)h(suggest)g(using)g(an)f(explicit)i(coun)m
(ter)f(if)g(true)f(preemption)g(is)h(not)g(a)m(v)-5 b(ailable.\))0
1898 y(Our)29 b(T)-8 b(AL)g(T-R)31 b(t)m(yp)s(e)f(theory)h(pro)m(vides)
f(some)h(insigh)m(t)g(for)f(ho)m(w)h(suc)m(h)f(guaran)m(tees)h(ma)m(y)g
(b)s(e)f(ac)m(hiev)m(ed.)141 2011 y(Man)m(y)45 b(securit)m(y)g(prop)s
(erties)e(can)h(b)s(e)g(sp)s(eci\014ed)f(using)h FB(se)-5
b(curity)45 b(automata)54 b FF([35)q(].)82 b(Brie\015y)-8
b(,)48 b(a)c(securit)m(y)0 2124 y(automaton)32 b(has)e(a)h(set)g(of)g
(states,)h(one)f(of)g(whic)m(h)f(is)h(designated)g(as)g(the)g(initial)h
(state)g(and)e(another)g(of)h(whic)m(h)0 2237 y(is)j(the)h(\\bad")g
(state;)j(transitions)d(b)s(et)m(w)m(een)g(states)h(are)e(lab)s(eled)h
(b)m(y)f(actions)i(the)f(program)f(migh)m(t)h(p)s(erform,)0
2350 y(and)g(there)h(is)g(no)g(transition)h(from)e(the)h(bad)g(state)h
(to)g(an)m(y)f(other)g(state.)59 b(An)m(y)36 b(suc)m(h)f(automaton)j
(de\014nes)d(a)0 2462 y(securit)m(y)j(p)s(olicy)-8 b(,)39
b(namely)e(the)h(one)f(in)f(whic)m(h)h(a)g(sequence)h(of)f(actions)h
(is)f(p)s(ermissible)f(i\013)h(it)h(do)s(es)e(not)h(lead)0
2575 y(from)26 b(the)g(initial)i(state)f(to)g(the)g(bad)e(state.)41
b(Sc)m(hneider)26 b([35)q(])g(describ)s(es)g(a)g(safet)m(y)i(mec)m
(hanism)e(called)i FB(exe)-5 b(cution)0 2688 y(monitoring)p
FF(,)43 b(in)c(whic)m(h)g(the)h(actions)g(of)f(a)h(program)f(are)h
(observ)m(ed)f(at)h(run)e(time)i(and)f(the)g(corresp)s(onding)0
2801 y(transitions)32 b(of)g(some)h(securit)m(y)f(automaton)h(are)f
(sim)m(ulated;)i(if)e(the)g(automaton)h(ev)m(er)g(en)m(ters)f(the)g
(bad)f(state,)0 2914 y(the)37 b(program)g(is)g(terminated.)62
b(Sc)m(hneider)36 b(argues)i(that)f(only)h FB(safety)h(pr)-5
b(op)g(erties)47 b FF(can)38 b(b)s(e)e(enforced)h(in)g(this)0
3027 y(w)m(a)m(y)-8 b(,)30 b(and)e(p)s(oin)m(ts)g(out)h(that)g(liv)m
(eness)g(is)f(not)h(a)g(safet)m(y)g(prop)s(ert)m(y)-8
b(.)40 b(Ho)m(w)m(ev)m(er,)31 b(prop)s(erties)d(suc)m(h)g(as)g(liv)m
(eness)i(can)0 3140 y(b)s(e)e(conserv)-5 b(ativ)m(ely)31
b(appro)m(ximated)e(b)m(y)f(sp)s(ecifying)g(a)h(\\maxim)m(um)g(w)m
(aiting)h(time";)g(in)e(particular,)i(our)e(safet)m(y)0
3253 y(requiremen)m(t)j(that)g(an)m(y)g(T)-8 b(AL)g(T-R)31
b(program)f(m)m(ust)h(yield)g(after)g(at)g(most)g Fy(Y)51
b FF(instructions)30 b(can)h(b)s(e)f(seen)h(as)g(an)0
3366 y(appro)m(ximation)h(of)e(the)h(p)s(olicy)g(that)g(an)m(y)g
(program)f(m)m(ust)h FB(eventual)5 b(ly)39 b FF(yield|although)31
b(for)f(the)h(purp)s(ose)e(of)0 3479 y(b)s(ounding)h(CPU)h(usage,)j(it)
e(is)g(imp)s(ortan)m(t)g(for)g(us)f(to)h(ha)m(v)m(e)h(a)g(sp)s
(eci\014c)e(upp)s(er)f(b)s(ound)g(on)i(latency)-8 b(.)46
b(Sc)m(hneider)0 3592 y(attributes)31 b(the)g(idea)f(of)h(a)g(maxim)m
(um)f(w)m(aiting)i(time)f(to)g(Gligor)h([17)q(].)141
3704 y(Based)45 b(on)f(the)g(idea)h(of)g(execution)g(monitoring,)k(W)-8
b(alk)m(er)46 b([40)q(])e(dev)m(elop)s(ed)h(a)g(t)m(yp)s(e)f(system)g
(in)g(whic)m(h)0 3817 y(conformance)36 b(to)g(the)g(p)s(olicy)f
(de\014ned)g(b)m(y)g(a)h(securit)m(y)g(automaton)g(can)g(b)s(e)f
(certi\014ed.)56 b(He)36 b(also)g(exhibited)g(a)0 3930
y(program)22 b(transformation)g(that)h(automatically)i(instrumen)m(ts)d
(co)s(de)g(with)g(safet)m(y)h(c)m(hec)m(ks,)j(and)21
b(sho)m(ws)h(that)h(the)0 4043 y(output)33 b(of)h(this)f
(transformation)h(is)f(w)m(ell-formed)h(according)h(to)f(his)f(t)m(yp)s
(e)g(system.)50 b(W)-8 b(alk)m(er's)36 b(t)m(yp)s(e)e(system,)0
4156 y(lik)m(e)27 b(ours,)f(is)g(inspired)f(b)m(y)h(the)g(dep)s(enden)m
(t)f(re\014nemen)m(t)g(t)m(yp)s(es)h(of)g(DML)g(and)g(DT)-8
b(AL;)26 b(he)g(uses)f(singleton)i(t)m(yp)s(es)0 4269
y(and)j(pro)m(vides)g(the)h(means)f(to)h(in)m(tegrate)i(kno)m(wledge)e
(of)g(the)f(safet)m(y)i(p)s(olicy)e(in)m(to)i(the)e(t)m(yp)s(e)h
(system.)141 4382 y(Thiemann)25 b([38)q(])h(has)g(prop)s(osed)e(an)i
(implemen)m(tation)i(of)e(execution)h(monitoring)f(based)g(on)f
(partial)i(ev)-5 b(alu-)0 4495 y(ation,)30 b(in)d(whic)m(h)h(the)g
(instrumen)m(ted)f(v)m(ersion)i(of)f(a)g(program)g(is)g(pro)s(duced)e
(b)m(y)i(sp)s(ecializing)i(an)e(instrumen)m(ted)0 4608
y(in)m(terpreter)33 b(to)h(the)g(un)m(trusted)e(program.)48
b(This)33 b(approac)m(h)g(is)g(general,)i(in)e(the)g(sense)g(that)h(it)
g(can)f(handle)g(a)0 4721 y(wide)f(v)-5 b(ariet)m(y)33
b(of)g(forms)e(of)h(instrumen)m(tation,)h(but)f(it)g(do)s(es)g(not)h
(pro)s(duce)d(certi\014ed)j(output.)45 b(Instead,)33
b(Thie-)0 4834 y(mann)25 b(claims)i(that)f(the)g(partial)g(ev)-5
b(aluation)28 b(algorithm)e(is)g(simple)g(enough)f(that)i(the)f(en)m
(tire)g(instrumen)m(tation)0 4946 y(pro)s(cess)f(can)h(o)s(ccur)f
(within)g(the)h(trusted)f(computing)h(base.)39 b(This)25
b(p)s(oin)m(t)g(of)h(view)g(is)f(essen)m(tially)j(incompatible)0
5059 y(with)i(our)g(commitmen)m(t)i(to)f(foundational)g(certi\014ed)f
(co)s(de.)141 5172 y(The)h(in)m(terrupt)g(calculus)g(of)h(P)m(alsb)s
(erg)f(and)g(Ma)h([31)q(])g(is)f(a)h(t)m(yp)s(e)f(system)g(for)h(in)m
(terrupt-driv)m(en)e(programs)0 5285 y(that)f(ensures)e(b)s(ounded)f
(stac)m(k)k(usage.)40 b(Recen)m(tly)-8 b(,)31 b(Naik)e([28)q(])f(ga)m
(v)m(e)j(a)d(v)-5 b(arian)m(t)29 b(of)g(the)f(in)m(terrupt)g(calculus)g
(that)1905 5589 y(47)p eop
%%Page: 48 50
48 49 bop 0 91 a FF(is)28 b(capable)i(of)e(ensuring)f(in)m(terrupts)h
(will)h(alw)m(a)m(ys)h(b)s(e)d(handled)h(within)g(a)g(certain)i(amoun)m
(t)e(of)h(time)g(after)g(they)0 204 y(o)s(ccur.)49 b(As)33
b(in)g(T)-8 b(AL)g(T-R,)33 b(singleton)h(t)m(yp)s(es)f(pla)m(y)h(a)g(k)
m(ey)g(role;)h(Naik)f(com)m(bines)f(them)h(with)e(extensiv)m(e)j(use)e
(of)0 317 y(in)m(tersection)28 b(and)e(union)g(t)m(yp)s(es)h(to)g(giv)m
(e)h(statemen)m(ts)g(and)e(in)m(terrupt)g(handlers)g(t)m(yp)s(es)g
(that)i(precisely)f(capture)0 430 y(the)j(p)s(ossible)f(state)i
(transitions)g(of)f(the)g(program.)40 b(As)30 b(a)g(result,)g(a)g
(program)g(is)f(t)m(ypable)i(whenev)m(er)f(it)g(passes)0
543 y(a)35 b(certain)g(mo)s(del-c)m(hec)m(king)h(analysis.)52
b(This)34 b(means)g(that)h(mo)s(del)f(c)m(hec)m(king)i(can)e(b)s(e)g
(used)f(to)i(p)s(erform)e(t)m(yp)s(e)0 656 y(inference.)47
b(Naik)33 b(argues)g(that)g(this)f(relationship)h(b)s(et)m(w)m(een)g(t)
m(yp)s(e)g(c)m(hec)m(king)h(and)e(mo)s(del)g(c)m(hec)m(king)i(is)e
(useful,)0 769 y(since)f(mo)s(del)f(c)m(hec)m(king)i(systems)e(are)g
(go)s(o)s(d)g(at)h(explaining)g(failures)f(\()p FB(i.e.,)g
FF(b)m(y)g(pro)m(viding)g(coun)m(terexamples\),)0 882
y(while)45 b(t)m(yp)s(e)f(c)m(hec)m(king)j(is)d(b)s(etter)h(at)g
(explaining)h(successes)f(\(b)s(ecause)g(t)m(yp)s(e)f(annotations)i
(pro)m(vide)f(useful)0 995 y(information)31 b(for)f(understanding)f(a)h
(w)m(ell-t)m(yp)s(ed)i(program\).)141 1108 y(Liblit)i
FB(et)h(al.)e FF([21)q(])g(ha)m(v)m(e)i(implemen)m(ted)e(a)h(system)f
(that)g(randomly)g(samples)g(program)g(b)s(eha)m(vior)g(for)g(the)0
1220 y(purp)s(ose)39 b(of)i(detecting)h(bugs.)71 b(Lik)m(e)42
b(T)-8 b(AL)g(T-R,)41 b(their)g(tec)m(hnique)g(is)g(based)f(on)h
(forcing)g(a)g(program)g(to)g(do)0 1333 y(something)31
b(with)f(a)g(certain)h(frequency)-8 b(,)31 b(and)f(they)g(mak)m(e)h
(similar)g(use)f(of)g(a)h(dynamic)f(coun)m(ter)h(to)g(determine)0
1446 y(when)k(a)i(\\sample")g(m)m(ust)f(o)s(ccur.)58
b(There)36 b(are)g(t)m(w)m(o)i(ma)5 b(jor)36 b(di\013erences)g(from)g
(our)g(w)m(ork.)58 b(First,)38 b(unlik)m(e)e(our)0 1559
y(virtual)f(clo)s(c)m(k)h(whic)m(h)e(is)g(decremen)m(ted)h(for)g(ev)m
(ery)g(instruction,)g(their)g(coun)m(ter)g(only)g(trac)m(ks)g(the)g(n)m
(um)m(b)s(er)e(of)0 1672 y(designated)g(sampling)g(p)s(oin)m(ts)f(that)
h(are)g(encoun)m(tered.)48 b(Second,)33 b(in)f(order)g(for)h(their)f
(sampling)h(to)g(ha)m(v)m(e)h(the)0 1785 y(desired)h(statistical)j
(prop)s(erties,)f(their)e(coun)m(ter)h(m)m(ust)g(b)s(e)f(precise;)j
(our)d(virtual)h(clo)s(c)m(k)h(is)f(merely)g(an)f(upp)s(er)0
1898 y(b)s(ound)30 b(on)i(the)g(time)h(to)g(the)g(next)f(yield.)46
b(It)33 b(is)f(p)s(ossible)f(that)i(a)g(t)m(yp)s(e)f(system)g(similar)h
(to)g(ours)e(could)h(allo)m(w)0 2011 y(the)39 b(sampling)f(b)s(eha)m
(vior)h(of)g(a)g(system)g(lik)m(e)h(that)f(of)g(Liblit)g
FB(et)h(al.)f FF(to)g(b)s(e)f(certi\014ed)h(correct;)44
b(ho)m(w)m(ev)m(er,)f(the)0 2124 y(statistical)31 b(prop)s(erties)c(of)
h(data)h(collection)h(are)e(usually)g(not)g(safet)m(y-critical,)k(so)c
(it)h(is)f(unclear)f(whether)h(there)0 2237 y(is)i(an)m(y)h(incen)m
(tiv)m(e)h(to)g(do)e(this.)141 2350 y(Hofmann)35 b([20)r(])h(has)f
(presen)m(ted)h(a)g(language)h(in)f(whic)m(h)f(an)m(y)h(de\014nable)g
(function)f(ma)m(y)h(b)s(e)g(computed)f(in)0 2462 y(p)s(olynomial)28
b(time.)41 b(This)27 b(seems)h(sup)s(er\014cially)f(related)i(to)g(our)
e(goal)j(of)e(b)s(ounding)e(CPU)i(usage,)h(but)e(is)h(really)0
2575 y(quite)42 b(di\013eren)m(t.)73 b(One)41 b(di\013erence)h(is)f
(that)h(Hofmann's)f(complexit)m(y)i(b)s(ounds)c(apply)i(to)h(en)m(tire)
g(functions,)0 2688 y(whereas)33 b(in)h(T)-8 b(AL)g(T-R)34
b(a)g(program)f(ma)m(y)i(run)d(for)h(arbitrarily)h(long)g(pro)m(vided)g
(it)g(yields)g(often)g(enough.)50 b(An-)0 2801 y(other)33
b(di\013erence)g(is)g(that)g(the)g(time)h(b)s(et)m(w)m(een)f(yields)g
(in)g(T)-8 b(AL)g(T-R)33 b(is)g(b)s(ounded)d(b)m(y)j(a)g(\014xed)f
(constan)m(t,)j(while)0 2914 y(Hofmann's)26 b(results)h(\\b)s(ound")e
(running)g(time)i(only)g(b)m(y)g(restricting)g(to)g(a)g(certain)h
(computational)g(complexit)m(y)0 3027 y(class,)j(meaning)g(that)g(a)f
(function)g(in)g(Hofmann's)g(language)i(can)f(actually)g(tak)m(e)h(an)f
(arbitrarily)f(long)h(time)g(if)0 3140 y(giv)m(en)e(a)g(large)h(enough)
e(input.)39 b(Finally)-8 b(,)31 b(Hofmann's)d(results)g(are)h(for)f(a)h
(fairly)f(high-lev)m(el)j(language;)f(it)f(is)g(not)0
3253 y(at)35 b(all)g(clear)g(ho)m(w)f(w)m(ell)g(they)h(could)f(b)s(e)f
(extended)h(to)h(pro)m(vide)f(foundational)g(pro)s(ofs)f(of)h(similar)h
(guaran)m(tees)0 3366 y(for)30 b(programs)g(at)h(the)g(assem)m(bly)g
(language)g(lev)m(el.)0 3609 y FA(5.2)112 b(Con)m(tin)m(uing)38
b(and)h(F)-9 b(uture)37 b(W)-9 b(ork)0 3781 y FF(As)28
b(men)m(tioned)g(earlier,)h(W)-8 b(e)29 b(are)f(curren)m(tly)g
(undertaking)f(a)h(complete)i(end-to-end)d(implemen)m(tation)j(of)e(co)
s(de)0 3894 y(certi\014cation)h(based)e(on)g(the)h(T)-8
b(AL)g(T-R)27 b(t)m(yp)s(e)h(theory)f(describ)s(ed)f(in)h(this)h(rep)s
(ort.)39 b(Our)26 b(implemen)m(tation,)j(from)0 4007
y(certifying)k(P)m(op)s(corn)e(compiler)h(to)h(v)m(erifying)f(loader)g
(and)f(run)m(time)h(system,)g(is)g(in)m(tended)f(to)i(b)s(e)e(suitable)
h(for)0 4120 y(use)c(in)f(the)h(ConCert)g(grid)f(computing)h(framew)m
(ork.)40 b(As)28 b(a)h(result,)f(the)g(ConCert)g(no)s(de)f(implemen)m
(tation)j(will)0 4232 y(b)s(e)d(able)h(to)h(monitor)f(and)f(regulate)i
(foreign)f(co)s(de)g(easily)-8 b(,)30 b(expanding)d(the)h(options)g(a)m
(v)-5 b(ailable)30 b(to)e(host)g(o)m(wners)0 4345 y(for)i(allo)s
(cation)j(of)d(their)h(system)f(resources.)141 4458 y(Of)f(course,)h
(there)g(are)g(a)g(n)m(um)m(b)s(er)f(of)h(other)f(p)s(ossible)h
(applications)h(for)e(T)-8 b(AL)g(T-R)30 b(and)f(for)g(the)h(in)m
(tuitions)0 4571 y(motiv)-5 b(ating)27 b(its)f(design.)39
b(The)25 b(relativ)m(ely)i(imp)s(o)m(v)m(erished)f(en)m(vironmen)m(ts)g
(and)e(ligh)m(t)m(w)m(eigh)m(t)29 b(op)s(erating)d(systems)0
4684 y(of)32 b(handheld)e(devices)i(and)f(smart)g(cards,)h(for)f
(example,)i(mak)m(e)f(resource)g(b)s(ound)d(certi\014cation)k(seem)f
(partic-)0 4797 y(ularly)d(useful)e(in)i(these)g(domains.)39
b(Certi\014cation)30 b(of)f(resources)f(other)h(than)f(CPU)h(time)g(is)
f(also)i(a)f(p)s(ossibilit)m(y)-8 b(.)0 4910 y(Heap)32
b(allo)s(cation)i(in)d(a)h(garbage-collected)k(setting,)d(for)f
(example,)h(can)e(b)s(e)g(treated)i(in)e(m)m(uc)m(h)h(the)g(same)g(w)m
(a)m(y)0 5023 y(as)k(w)m(e)h(ha)m(v)m(e)g(view)m(ed)g(time)f(in)g(this)
g(rep)s(ort:)52 b(in)35 b(place)i(of)f(the)h(\\yield")g(op)s(eration)f
(that)h(m)m(ust)f(happ)s(en)e(after)0 5136 y(at)e(most)f
Fy(Y)51 b FF(instructions,)32 b(one)f(has)g(an)g(instruction)g(that)h
(calls)g(the)f(garbage)h(collector)i(and)d(a)g(limit)h(on)f(ho)m(w)0
5249 y(m)m(uc)m(h)h(space)g(can)g(b)s(e)g(allo)s(cated)h(b)s(efore)f
(the)g(collector)i(m)m(ust)e(run)e(again.)47 b(Another)31
b(p)s(ossible)h(direction)g(is)g(to)1905 5589 y(48)p
eop
%%Page: 49 51
49 50 bop 0 91 a FF(c)m(hange)29 b(the)e(rules)g(of)h(the)g(t)m(yp)s(e)
g(system)f(so)h(that)g(certain)h(sp)s(ecial)f(instructions)f(are)h
(executed)g(with)g FB(at)i(le)-5 b(ast)38 b FF(a)0 204
y(certain)28 b(n)m(um)m(b)s(er)d(of)i(other)g(instructions)f(in)g(b)s
(et)m(w)m(een)i(\(that)f(is,)h(pro)m(viding)f(lo)m(w)m(er)h(rather)e
(than)h(upp)s(er)d(b)s(ounds)0 317 y(on)38 b(certain)i(latencies\).)67
b(This)37 b(could)i(giv)m(e)g(a)g(useful)f(mec)m(hanism)h(for)f
(bandwidth)e(limiting,)42 b(applicable)d(to)0 430 y(either)31
b(lo)s(cal)g(disk)f(or)h(net)m(w)m(ork)g(access.)42 b(Man)m(y)31
b(of)g(these)f(p)s(ossibilities)h(will)g(b)s(e)f(considered)g(in)g
(future)f(w)m(ork.)0 716 y FC(References)45 919 y FF([1])47
b(Andrew)34 b(W.)h(App)s(el.)53 b(F)-8 b(oundational)37
b(pro)s(of-carrying)e(co)s(de.)54 b(In)34 b FB(16th)k(A)n(nnual)f(IEEE)
f(Symp)-5 b(osium)38 b(on)187 1032 y(L)-5 b(o)g(gic)33
b(in)g(Computer)h(Scienc)-5 b(e)32 b(\(LICS\))p FF(,)f(June)e(2001.)45
1220 y([2])47 b(Andrew)27 b(W.)i(App)s(el)e(and)h(Am)m(y)g(P)-8
b(.)29 b(F)-8 b(elt)m(y)g(.)39 b(A)29 b(seman)m(tic)g(mo)s(del)f(of)h
(t)m(yp)s(es)f(and)f(mac)m(hine)i(instructions)f(for)187
1333 y(pro)s(of-carrying)i(co)s(de.)40 b(In)30 b FB(Pr)-5
b(o)g(c)g(e)g(e)g(dings)34 b(of)f(the)g(Twenty-Seventh)g(A)n(CM)e(Symp)
-5 b(osium)34 b(on)f(Principles)g(of)187 1446 y(Pr)-5
b(o)g(gr)g(amming)35 b(L)-5 b(anguages)p FF(,)31 b(Boston,)h(MA,)f
(2000.)45 1633 y([3])47 b(Iliano)22 b(Cerv)m(esato)h(and)e(F)-8
b(rank)21 b(Pfenning.)k(A)d(linear)g(logical)i(framew)m(ork.)i(In)20
b FB(Eleventh)25 b(IEEE)e(Symp)-5 b(osium)187 1746 y(on)33
b(L)-5 b(o)g(gic)33 b(in)g(Computer)h(Scienc)-5 b(e)p
FF(,)30 b(pages)h(264{275,)j(July)29 b(1996.)45 1934
y([4])47 b(The)30 b(ConCert)g(pro)5 b(ject)31 b(home)f(page.)41
b Fz(http://www.cs.cmu.edu/~con)o(cer)o(t/)p FF(.)45
2122 y([5])47 b(Karl)d(Crary)-8 b(.)82 b(T)m(yp)s(ed)43
b(compilation)i(of)g(inclusiv)m(e)g(subt)m(yping.)81
b(In)43 b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)48 b(of)d(the)h(Fifth)g(A)n
(CM)187 2234 y(SIGPLAN)32 b(International)j(Confer)-5
b(enc)g(e)33 b(on)g(F)-7 b(unctional)34 b(Pr)-5 b(o)g(gr)g(amming)35
b(\(ICFP\))p FF(,)c(2000.)45 2422 y([6])47 b(Karl)32
b(Crary)-8 b(.)44 b(T)-8 b(o)m(w)m(ard)33 b(a)f(foundational)g(t)m(yp)s
(ed)g(assem)m(bly)g(language.)46 b(In)31 b FB(Pr)-5 b(o)g(c)g(e)g(e)g
(dings)36 b(of)e(the)h(Thirtieth)187 2535 y(A)n(CM)44
b(Symp)-5 b(osium)48 b(on)e(Principles)g(of)h(Pr)-5 b(o)g(gr)g(amming)
48 b(L)-5 b(anguages)p FF(,)49 b(pages)c(198{212,)52
b(New)45 b(Orleans,)187 2648 y(Jan)m(uary)30 b(2003.)45
2836 y([7])47 b(Karl)37 b(Crary)f(and)g(Susmit)h(Sark)-5
b(ar.)60 b(F)-8 b(oundational)38 b(certi\014ed)f(co)s(de)h(in)e(a)i
(metalogical)i(framew)m(ork.)61 b(In)187 2948 y FB(Pr)-5
b(o)g(c)g(e)g(e)g(dings)35 b(of)d(the)h(Confer)-5 b(enc)g(e)34
b(on)f(A)n(utomate)-5 b(d)34 b(De)-5 b(duction)33 b(\(CADE-19\))p
FF(,)d(Miami,)i(FL,)e(July)g(2003.)45 3136 y([8])47 b(Karl)c(Crary)g
(and)g(Joseph)f(C.)i(V)-8 b(anderw)m(aart.)80 b(An)43
b(expressiv)m(e,)k(scalable)e(t)m(yp)s(e)f(theory)f(for)h(certi\014ed)
187 3249 y(co)s(de.)g(In)31 b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)36
b(of)e(the)g(Seventh)g(A)n(CM)f(SIGPLAN)g(International)j(Confer)-5
b(enc)g(e)34 b(on)h(F)-7 b(unctional)187 3362 y(Pr)i(o)g(gr)g(amming)35
b(\(ICFP\))p FF(,)c(pages)g(191{205,)j(Pittsburgh,)c(P)-8
b(A,)31 b(Octob)s(er)f(2002.)45 3550 y([9])47 b(Karl)e(Crary)g(and)g
(Stephanie)g(W)-8 b(eiric)m(h.)87 b(Flexible)47 b(t)m(yp)s(e)f
(analysis.)86 b(In)44 b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)49
b(of)e(the)f(F)-7 b(ourth)187 3662 y(A)n(CM)40 b(SIGPLAN)g
(International)k(Confer)-5 b(enc)g(e)42 b(on)g(F)-7 b(unctional)43
b(Pr)-5 b(o)g(gr)g(amming)43 b(\(ICFP\))p FF(,)e(pages)f(233{)187
3775 y(248,)32 b(Septem)m(b)s(er)e(1999.)0 3963 y([10])47
b(Karl)22 b(Crary)g(and)g(Stephanie)h(W)-8 b(eiric)m(h.)29
b(Resource)23 b(b)s(ound)e(certi\014cation.)30 b(In)22
b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)27 b(of)f(the)g(Twenty-)187
4076 y(Seventh)33 b(A)n(CM)e(Symp)-5 b(osium)35 b(on)e(Principles)g(of)
g(Pr)-5 b(o)g(gr)g(amming)35 b(L)-5 b(anguages)p FF(,)31
b(Boston,)h(MA,)f(2000.)0 4264 y([11])47 b(Karl)26 b(Crary)-8
b(,)27 b(Stephanie)f(W)-8 b(eiric)m(h,)29 b(and)d(Greg)h(Morrisett.)35
b(In)m(tensional)27 b(p)s(olymorphism)e(in)h(t)m(yp)s(e-erasure)187
4376 y(seman)m(tics.)g(In)21 b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)25
b(of)g(the)f(Thir)-5 b(d)25 b(A)n(CM)e(SIGPLAN)g(International)j
(Confer)-5 b(enc)g(e)25 b(on)g(F)-7 b(unctional)187 4489
y(Pr)i(o)g(gr)g(amming)35 b(\(ICFP\))p FF(,)c(pages)g(301{312,)j(1998.)
0 4677 y([12])47 b(R.)32 b(Ken)m(t)h(Dyb)m(vig.)47 b
FB(The)35 b(Scheme)g(Pr)-5 b(o)g(gr)g(amming)37 b(L)-5
b(anguage)p FF(.)47 b(Pren)m(tice-Hall,)35 b(Inc.,)e(Englew)m(o)s(o)s
(d)g(Cli\013s,)187 4790 y(New)d(Jersey)-8 b(,)31 b(1987.)0
4978 y([13])47 b(R.)53 b(Ken)m(t)g(Dyb)m(vig)g(and)f(Rob)s(ert)h(Hieb.)
107 b(Engines)52 b(from)h(con)m(tin)m(uations.)108 b
FB(Computer)55 b(L)-5 b(anguages)p FF(,)187 5090 y(14\(2\):109{123,)36
b(1989.)1905 5589 y(49)p eop
%%Page: 50 52
50 51 bop 0 91 a FF([14])47 b(Marc)26 b(F)-8 b(eeley)g(.)34
b(P)m(olling)26 b(e\016cien)m(tly)h(on)e(sto)s(c)m(k)h(hardw)m(are.)31
b(In)24 b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)30 b(of)e(the)g(A)n(CM)e
(SIGPLAN)h(Con-)187 204 y(fer)-5 b(enc)g(e)32 b(on)g(F)-7
b(unctional)33 b(Pr)-5 b(o)g(gr)g(amming)35 b(and)d(Computer)i(A)n(r)-5
b(chite)g(ctur)g(e)p FF(,)30 b(pages)g(179{187,)j(Cop)s(enhagen,)187
317 y(Denmark,)e(June)e(1993.)0 505 y([15])47 b(F)-8
b(olding@home.)41 b Fz(http://folding.stanford.ed)o(u)p
FF(.)0 692 y([16])47 b(Jean-Yv)m(es)40 b(Girard.)65 b
FB(Interpr)n(\023)-44 b(etation)43 b(fonctionel)5 b(le)41
b(et)d(\023)-44 b(elimination)42 b(des)f(c)-5 b(oupur)g(es)41
b(de)g(l'arithm)n(\023)-44 b(etique)187 805 y(d'or)-5
b(dr)g(e)35 b(sup)n(\023)-44 b(erieur)p FF(.)41 b(PhD)30
b(thesis,)h(Univ)m(ersit)m(\023)-43 b(e)32 b(P)m(aris)f(VI)s(I,)f
(1972.)0 993 y([17])47 b(Virgil)41 b(D.)f(Gligor.)70
b(A)40 b(note)g(on)g(denial-of-service)i(in)d(op)s(erating)i(systems.)
68 b FB(IEEE)41 b(T)-7 b(r)i(ansactions)43 b(on)187 1106
y(Softwar)-5 b(e)34 b(Engine)-5 b(ering)p FF(,)31 b
(SE-10\(3\):320{324,)k(Ma)m(y)d(1984.)0 1293 y([18])47
b(Nadeem)c(A.)h(Hamid,)i(Zhong)c(Shao,)k(V)-8 b(alery)44
b(T)-8 b(rifono)m(v,)47 b(Stefan)c(Monnier,)j(and)c(Zhaozhong)i(Ni.)78
b(A)187 1406 y(syn)m(tactic)32 b(approac)m(h)e(to)h(foundational)f(pro)
s(of-carrying)g(co)s(de.)41 b(In)29 b FB(17th)34 b(A)n(nnual)e(IEEE)f
(Symp)-5 b(osium)34 b(on)187 1519 y(L)-5 b(o)g(gic)33
b(in)g(Computer)h(Scienc)-5 b(e)32 b(\(LICS\))p FF(,)f(2002.)0
1707 y([19])47 b(Christopher)29 b(T.)i(Ha)m(ynes)g(and)f(Daniel)i(P)-8
b(.)31 b(F)-8 b(riedman.)42 b(Abstracting)32 b(timed)f(preemption)f
(with)g(engines.)187 1820 y FB(Computer)k(L)-5 b(anguages)p
FF(,)31 b(12\(2\):102{121,)36 b(1987.)0 2007 y([20])47
b(M.)40 b(Hofmann.)69 b(Linear)40 b(t)m(yp)s(es)g(and)g(non-size)g
(increasing)h(p)s(olynomial)f(time)h(computation.)70
b(In)39 b FB(14th)187 2120 y(A)n(nnual)32 b(IEEE)g(Symp)-5
b(osium)35 b(on)e(L)-5 b(o)g(gic)33 b(in)f(Computer)i(Scienc)-5
b(e)33 b(\(LICS\))p FF(,)e(T)-8 b(ren)m(to,)31 b(Italy)-8
b(,)32 b(July)e(1999.)0 2308 y([21])47 b(Ben)41 b(Liblit,)k(Alice)e(X.)
f(Zheng,)i(Alex)e(Aik)m(en,)j(and)c(Mic)m(hael)i(I.)f(Jordan.)72
b(Bug)42 b(isolation)h(via)f(remote)187 2421 y(program)e(sampling.)72
b(In)40 b FB(A)n(CM)h(SIGPLAN)g(Confer)-5 b(enc)g(e)43
b(on)g(Pr)-5 b(o)g(gr)g(amming)45 b(L)-5 b(anguage)42
b(Design)g(and)187 2534 y(Implementation)p FF(,)33 b(San)d(Diego,)i
(CA,)f(June)e(2003.)0 2721 y([22])47 b(Tim)36 b(Lindholm)f(and)h(F)-8
b(rank)37 b(Y)-8 b(ellin.)60 b FB(The)39 b(Java)f(Virtual)h(Machine)f
(Sp)-5 b(e)g(ci\014c)g(ation)p FF(.)61 b(Addison-W)-8
b(esley)g(,)187 2834 y(1996.)0 3022 y([23])47 b FB(Merriam-Webster's)35
b(Col)5 b(le)-5 b(giate)36 b(Dictionary)p FF(.)51 b(Merriam-W)-8
b(ebster,)36 b(Spring\014eld,)c(MA,)i(ten)m(th)g(edition,)187
3135 y(1994.)0 3323 y([24])47 b(Greg)38 b(Morrisett,)i(Karl)d(Crary)-8
b(,)39 b(Neal)g(Glew,)h(Dan)d(Grossman,)i(Ric)m(hard)e(Sam)m(uels,)j(F)
-8 b(rederic)m(k)38 b(Smith,)187 3435 y(Da)m(vid)32 b(W)-8
b(alk)m(er,)32 b(Stephanie)f(W)-8 b(eiric)m(h,)33 b(and)d(Stev)m(e)h
(Zdancewic.)42 b(T)-8 b(ALx86:)42 b(A)31 b(realistic)h(t)m(yp)s(ed)e
(assem)m(bly)187 3548 y(language.)42 b(In)30 b FB(A)n(CM)h(SIGPLAN)h
(Workshop)i(on)f(Compiler)h(Supp)-5 b(ort)35 b(for)e(System)h(Softwar)
-5 b(e)p FF(,)32 b(1999.)0 3736 y([25])47 b(Greg)33 b(Morrisett,)h
(Karl)f(Crary)-8 b(,)33 b(Neal)g(Glew,)h(and)e(Da)m(vid)h(W)-8
b(alk)m(er.)49 b(Stac)m(k-based)33 b(t)m(yp)s(ed)g(assem)m(bly)f(lan-)
187 3849 y(guage.)42 b FB(Journal)33 b(of)g(F)-7 b(unctional)34
b(Pr)-5 b(o)g(gr)g(amming)p FF(,)33 b(12\(1\):43{88,)j(Jan)m(uary)30
b(2002.)0 4037 y([26])47 b(Greg)28 b(Morrisett,)h(Da)m(vid)g(W)-8
b(alk)m(er,)30 b(Karl)d(Crary)-8 b(,)28 b(and)e(Neal)j(Glew.)36
b(F)-8 b(rom)28 b(System)f(F)g(to)h(t)m(yp)s(ed)f(assem)m(bly)187
4149 y(language.)57 b FB(A)n(CM)36 b(T)-7 b(r)i(ansactions)39
b(on)f(Pr)-5 b(o)g(gr)g(amming)40 b(L)-5 b(anguages)38
b(and)g(Systems)p FF(,)f(21\(3\):527{568,)43 b(Ma)m(y)187
4262 y(1999.)0 4450 y([27])k(Stev)m(en)41 b(S.)f(Muc)m(hnic)m(k.)70
b FB(A)-5 b(dvanc)g(e)g(d)44 b(Compiler)f(Design)e(and)i
(Implementation)p FF(.)72 b(Morgan)41 b(Kaufmann,)187
4563 y(1997.)0 4751 y([28])47 b(Ma)m(yur)27 b(Naik.)37
b(A)27 b(t)m(yp)s(e)h(system)f(equiv)-5 b(alen)m(t)29
b(to)f(mo)s(del)f(c)m(hec)m(king.)38 b(Master's)28 b(thesis,)g(Purdue)e
(Univ)m(ersit)m(y)-8 b(,)187 4863 y(2003.)0 5051 y([29])47
b(George)36 b(Necula.)52 b(Pro)s(of-carrying)35 b(co)s(de.)51
b(In)34 b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)38 b(of)e(the)g(Twenty-F)-7
b(ourth)38 b(A)n(CM)d(Symp)-5 b(osium)187 5164 y(on)33
b(Principles)g(of)g(Pr)-5 b(o)g(gr)g(amming)35 b(L)-5
b(anguages)p FF(,)31 b(pages)g(106{119,)j(P)m(aris,)d(Jan)m(uary)f
(1997.)1905 5589 y(50)p eop
%%Page: 51 53
51 52 bop 0 91 a FF([30])47 b(George)23 b(Necula)g(and)e(P)m(eter)h
(Lee.)27 b(Safe,)d(un)m(trusted)c(agen)m(ts)j(using)e(pro)s
(of-carrying)h(co)s(de.)k(In)21 b FB(Sp)-5 b(e)g(cial)26
b(Issue)187 204 y(on)h(Mobile)f(A)-5 b(gent)26 b(Se)-5
b(curity)p FF(,)25 b(v)m(olume)g(1419)g(of)f FB(L)-5
b(e)g(ctur)g(e)27 b(Notes)f(in)h(Computer)g(Scienc)-5
b(e)p FF(.)24 b(Springer-V)-8 b(erlag,)187 317 y(Octob)s(er)30
b(1997.)0 505 y([31])47 b(Jens)34 b(P)m(alsb)s(erg)i(and)e(Di)i(Ma.)55
b(A)36 b(t)m(yp)s(ed)e(in)m(terrupt)h(calculus.)55 b(In)34
b FB(Seventh)k(International)h(Symp)-5 b(osium)187 618
y(on)36 b(F)-7 b(ormal)39 b(T)-7 b(e)i(chniques)36 b(in)g(R)-5
b(e)g(al-Time)37 b(and)g(F)-7 b(ault)37 b(T)-7 b(oler)i(ant)38
b(Systems)p FF(,)f(pages)d(291{310,)39 b(Olden)m(burg,)187
731 y(German)m(y)-8 b(,)31 b(Septem)m(b)s(er)f(2002.)0
918 y([32])47 b(C.)33 b(P)m(aulin-Mohring.)50 b(Inductiv)m(e)34
b(de\014nitions)f(in)g(the)g(system)h(Co)s(q|rules)e(and)h(prop)s
(erties.)49 b(In)33 b FB(Inter-)187 1031 y(national)i(Confer)-5
b(enc)g(e)34 b(on)g(T)-7 b(yp)i(e)g(d)34 b(L)-5 b(amb)g(da)36
b(Calculi)d(and)h(Applic)-5 b(ations)p FF(,)34 b(v)m(olume)d(664)i(of)e
FB(L)-5 b(e)g(ctur)g(e)34 b(Notes)187 1144 y(in)e(Computer)i(Scienc)-5
b(e)p FF(.)31 b(Springer-V)-8 b(erlag,)31 b(1993.)0 1332
y([33])47 b(Leaf)25 b(P)m(etersen,)i(P)m(erry)d(Cheng,)i(Rob)s(ert)e
(Harp)s(er,)h(and)f(Chris)g(Stone.)31 b(Implemen)m(ting)25
b(the)g(TIL)-8 b(T)24 b(in)m(ternal)187 1445 y(language.)42
b(T)-8 b(ec)m(hnical)32 b(Rep)s(ort)e(CMU-CS-00-180,)j(Carnegie)e
(Mellon)h(Univ)m(ersit)m(y)-8 b(,)32 b(2000.)0 1632 y([34])47
b(Benjamin)30 b(C.)f(Pierce.)41 b FB(Pr)-5 b(o)g(gr)g(amming)34
b(with)f(Interse)-5 b(ction)33 b(T)-7 b(yp)i(es)33 b(and)g(Bounde)-5
b(d)34 b(Polymorphism)p FF(.)42 b(PhD)187 1745 y(thesis,)31
b(Carnegie)g(Mellon)g(Univ)m(ersit)m(y)-8 b(,)33 b(Pittsburgh,)c(P)-8
b(A,)31 b(1991.)0 1933 y([35])47 b(F)-8 b(red)44 b(B.)g(Sc)m(hneider.)
80 b(Enforceable)44 b(securit)m(y)g(p)s(olicies.)82 b
FB(A)n(CM)43 b(T)-7 b(r)i(ansactions)48 b(on)d(Information)i(and)187
2046 y(System)33 b(Se)-5 b(curity)p FF(,)31 b(3\(1\):30{50,)k(F)-8
b(ebruary)30 b(2000.)0 2233 y([36])47 b(SETI@home.)39
b Fz(http://setiathome.ssl.ber)o(kel)o(ey.e)o(du)p FF(.)0
2421 y([37])47 b(Zhong)c(Shao,)j(Bratin)e(Saha,)j(V)-8
b(alery)45 b(T)-8 b(rifono)m(v,)47 b(and)c(Nik)m(olaos)j(P)m(apasp)m
(yrou.)79 b(A)44 b(t)m(yp)s(e)g(system)f(for)187 2534
y(certi\014ed)30 b(binaries.)38 b(In)29 b FB(Pr)-5 b(o)g(c)g(e)g(e)g
(dings)34 b(of)e(the)g(Twenty-Ninth)g(A)n(CM)e(Symp)-5
b(osium)34 b(on)e(Principles)g(of)g(Pr)-5 b(o-)187 2647
y(gr)g(amming)34 b(L)-5 b(anguages)p FF(,)31 b(pages)g(217{232,)j(P)m
(ortland,)d(OR,)f(Jan)m(uary)g(2002.)0 2834 y([38])47
b(P)m(eter)c(Thiemann.)76 b(Program)43 b(sp)s(ecialization)i(for)d
(execution)i(monitoring.)78 b FB(Journal)44 b(of)h(F)-7
b(unctional)187 2947 y(Pr)i(o)g(gr)g(amming)p FF(,)33
b(13\(3\):573{600,)j(Ma)m(y)c(2003.)0 3135 y([39])47
b(Joseph)39 b(C.)g(V)-8 b(anderw)m(aart)41 b(and)e(Karl)g(Crary)-8
b(.)68 b(A)39 b(simpli\014ed)g(accoun)m(t)i(of)f(the)g(metatheory)g(of)
g(Linear)187 3248 y(LF.)59 b(In)36 b(F)-8 b(rank)36 b(Pfenning,)i
(editor,)h FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)40 b(of)e(the)h(Thir)-5
b(d)40 b(International)g(Workshop)h(on)d(L)-5 b(o)g(gic)g(al)187
3361 y(F)e(r)i(ameworks)31 b(and)e(Meta-L)-5 b(anguages)28
b(\(LFM\))p FF(,)e(v)m(olume)g(70,)h(issue)e(2)h(of)f
FB(Ele)-5 b(ctr)g(onic)29 b(Notes)g(in)e(The)-5 b(or)g(etic)g(al)187
3474 y(Computer)34 b(Scienc)-5 b(e)p FF(.)30 b(Elsevier,)h(2002.)0
3661 y([40])47 b(Da)m(vid)34 b(W)-8 b(alk)m(er.)53 b(A)33
b(t)m(yp)s(e)h(system)g(for)f(expressiv)m(e)h(securit)m(y)h(p)s
(olicies.)51 b(In)32 b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)38
b(of)e(the)g(Twenty-)187 3774 y(Seventh)g(A)n(CM)f(Symp)-5
b(osium)38 b(on)f(Principles)f(of)h(Pr)-5 b(o)g(gr)g(amming)38
b(L)-5 b(anguages)p FF(,)36 b(pages)f(254{267,)k(Boston,)187
3887 y(MA,)31 b(2000.)0 4075 y([41])47 b(J.)26 b(B.)h(W)-8
b(ells.)36 b(T)m(ypabilit)m(y)27 b(and)f(t)m(yp)s(e)h(c)m(hec)m(king)h
(in)e(System)g(F)h(are)f(equiv)-5 b(alen)m(t)28 b(and)e(undecidable.)34
b FB(A)n(nnals)187 4188 y(of)f(Pur)-5 b(e)32 b(and)i(Applie)-5
b(d)34 b(L)-5 b(o)g(gic)p FF(,)31 b(98\(1{3\):111{156,)37
b(1999.)0 4375 y([42])47 b(Hongw)m(ei)35 b(Xi.)51 b FB(Dep)-5
b(endent)37 b(T)-7 b(yp)i(es)36 b(in)g(Pr)-5 b(actic)g(al)37
b(Pr)-5 b(o)g(gr)g(amming)p FF(.)54 b(PhD)33 b(thesis,)i(Carnegie)g
(Mellon)g(Uni-)187 4488 y(v)m(ersit)m(y)-8 b(,)32 b(1998.)0
4676 y([43])47 b(Hongw)m(ei)42 b(Xi)g(and)e(Rob)s(ert)h(Harp)s(er.)72
b(A)41 b(dep)s(enden)m(tly)g(t)m(yp)s(ed)g(assem)m(bly)g(language.)74
b(In)41 b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)187 4789 y(of)38
b(the)g(Sixth)h(A)n(CM)d(SIGPLAN)h(International)j(Confer)-5
b(enc)g(e)39 b(on)f(F)-7 b(unctional)39 b(Pr)-5 b(o)g(gr)g(amming)40
b(\(ICFP\))p FF(,)187 4902 y(Florence,)32 b(Italy)-8
b(,)32 b(Septem)m(b)s(er)d(2001.)0 5089 y([44])47 b(Hongw)m(ei)33
b(Xi)f(and)g(F)-8 b(rank)32 b(Pfenning.)44 b(Dep)s(enden)m(t)32
b(t)m(yp)s(es)g(in)f(practical)j(programming.)45 b(In)31
b FB(Pr)-5 b(o)g(c)g(e)g(e)g(dings)187 5202 y(of)33 b(the)g
(Twenty-Sixth)g(A)n(CM)f(Symp)-5 b(osium)34 b(on)f(Principles)g(of)g
(Pr)-5 b(o)g(gr)g(amming)35 b(L)-5 b(anguages)p FF(,)32
b(1999.)1905 5589 y(51)p eop
%%Page: 52 54
52 53 bop 0 91 a FC(A)134 b(Rules)46 b(for)f(BT)-11 b(AL)g(T-R)p
0 306 438 4 v 0 419 4 113 v 28 394 a FF(\001)25 b Fw(`)g
Fy(c)h FF(:)f Fy(K)p 434 419 V 0 422 438 4 v 165 576
a Fp(\(\()p Fo(\013)p Fp(:)p Fo(K)6 b Fp(\))24 b Fk(2)f
Fp(\001\))p 165 616 453 4 v 209 691 a(\001)g Fk(`)g Fo(\013)g
Fp(:)g Fo(K)p 728 616 421 4 v 160 w Fp(\001)h Fk(`)f
Fg(ns)f Fp(:)h Fb(T)p Fp(1)p 1260 616 V 110 w(\001)g
Fk(`)g Fg(B0)f Fp(:)h Fb(T)p Fp(0)p 1791 616 V 110 w(\001)g
Fk(`)g Fg(B1)f Fp(:)h Fb(T)p Fp(1)p 2322 616 489 4 v
110 w(\001)g Fk(`)g Fo(B)k Fp(:)c Fb(W)n(o)n(rd)2921
584 y Fp(\001)h Fk(`)e Fo(\034)3123 596 y Fh(1)3184 584
y Fp(:)h Fb(T)83 b Fp(\001)23 b Fk(`)g Fo(\034)3572 596
y Fh(2)3632 584 y Fp(:)g Fb(T)p 2921 616 814 4 v 3058
691 a Fp(\001)g Fk(`)g Fo(\034)3260 703 y Fh(1)3316 691
y Fk(\002)18 b Fo(\034)3435 703 y Fh(2)3496 691 y Fp(:)23
b Fb(T)149 943 y Fp(\001)g Fk(`)g Fo(\034)351 955 y Fh(1)412
943 y Fp(:)g Fb(TD)82 b Fp(\001)24 b Fk(`)e Fo(\034)859
955 y Fh(2)920 943 y Fp(:)h Fb(TD)p 149 976 934 4 v 316
1050 a Fp(\001)g Fk(`)g Fo(\034)518 1062 y Fh(1)574 1050
y Fk(\002)18 b Fo(\034)693 1062 y Fh(2)753 1050 y Fp(:)24
b Fb(TD)1249 935 y Fp(\001)f Fk(`)g Fo(\034)1451 947
y Fh(1)1511 935 y Fp(:)g Fb(T)p Fo(i)83 b Fp(\001)23
b Fk(`)g Fo(\034)1928 947 y Fh(2)1988 935 y Fp(:)g Fb(T)p
Fo(j)p 1249 971 882 4 v 1302 1050 a Fp(\001)h Fk(`)e
Fo(\034)1504 1062 y Fh(1)1560 1050 y Fk(\002)c Fo(\034)1679
1062 y Fh(2)1740 1050 y Fp(:)23 b Fb(T)p Fp(\()p Fo(i)18
b Fp(+)g Fo(j)5 b Fp(\))2438 951 y(\001)24 b Fk(`)f Fo(\034)32
b Fp(:)23 b Fb(T)p 2296 971 623 4 v 2296 1050 a Fp(\001)g
Fk(`)g Fg(box)o Fp(\()p Fo(\034)9 b Fp(\))24 b(:)f Fb(T)p
Fo(W)3249 951 y Fp(\001)g Fk(`)g Fo(\034)33 b Fp(:)23
b Fb(T)p 3085 971 667 4 v 3085 1050 a Fp(\001)g Fk(`)g
Fg(mbox)n Fp(\()p Fo(\034)9 b Fp(\))24 b(:)f Fb(T)p Fo(W)291
1303 y Fp(\001)g Fk(`)g Fo(\034)33 b Fp(:)23 b Fb(TD)p
156 1323 V 156 1402 a Fp(\001)h Fk(`)f Fg(sptr)n Fp(\()p
Fo(\034)9 b Fp(\))24 b(:)f Fb(T)p Fo(W)989 1307 y Fp(\001)g
Fk(`)g Fo(\034)33 b Fp(:)23 b Fb(T)82 b Fp(\001)23 b
Fk(`)g Fo(x)h Fp(:)f Fb(W)n(o)n(rd)p 989 1327 890 4 v
1207 1402 a Fp(\001)g Fk(`)g Fo(\034)g Fk(")14 b Fo(x)23
b Fp(:)g Fb(T)1989 1307 y Fp(\001)g Fk(`)g Fo(\034)33
b Fp(:)23 b Fb(TD)83 b Fp(\001)23 b Fk(`)g Fo(x)g Fp(:)g
Fb(W)n(o)n(rd)p 1989 1327 950 4 v 2207 1402 a Fp(\001)g
Fk(`)g Fo(\034)h Fk(")13 b Fo(x)23 b Fp(:)h Fb(TD)3214
1303 y Fp(\001)f Fk(`)g Fo(\034)32 b Fp(:)23 b Fb(T)p
Fo(i)p 3050 1323 695 4 v 3050 1402 a Fp(\001)g Fk(`)g
Fo(\034)g Fk(")13 b Fo(B)28 b Fp(:)23 b Fb(T)p Fp(\()p
Fo(i)18 b Fk(\001)g Fo(B)t Fp(\))238 1659 y(\001)23 b
Fk(`)g Fo(\034)32 b Fp(:)23 b Fb(T)p 161 1679 490 4 v
161 1753 a Fp(\001)h Fk(`)e Fo(\034)i Fk(")13 b Fp(0)23
b(:)g Fb(T)p Fp(0)955 1659 y(\001)g Fk(`)g Fp(\000)p
762 1679 605 4 v 762 1753 a(\001)g Fk(`)g Fp(\000)g Fk(!)g
Fp(0)f(:)i Fb(T)p Fo(W)1582 1654 y Fp(\001)f Fk(`)g Fo(x)g
Fp(:)g Fb(W)n(o)n(rd)p 1477 1674 680 4 v 1477 1753 a
Fp(\001)g Fk(`)g Fg(set)1773 1765 y Fh(=)1829 1753 y
Fp(\()p Fo(x)p Fp(\))h(:)f Fb(T)p Fo(W)2373 1654 y Fp(\001)g
Fk(`)g Fo(x)g Fp(:)g Fb(W)n(o)n(rd)p 2267 1674 681 4
v 2267 1753 a Fp(\001)g Fk(`)g Fg(set)2564 1765 y Fj(<)2620
1753 y Fp(\()p Fo(x)p Fp(\))h(:)f Fb(T)p Fo(W)3164 1654
y Fp(\001)g Fk(`)g Fo(x)g Fp(:)g Fb(W)n(o)n(rd)p 3058
1674 V 3058 1753 a Fp(\001)g Fk(`)g Fg(set)3355 1765
y Fj(>)3411 1753 y Fp(\()p Fo(x)p Fp(\))h(:)f Fb(T)p
Fo(W)129 2020 y Fp(\001)p Fo(;)14 b(\013)p Fp(:)p Fo(K)29
b Fk(`)23 b Fo(\034)33 b Fp(:)23 b Fb(T)p 115 2056 555
4 v 115 2130 a Fp(\001)h Fk(`)e(8)p Fo(\013)p Fp(:)p
Fo(K)q(:\034)34 b Fp(:)23 b Fb(T)836 2011 y Fp(\001)p
Fo(;)14 b(\013)p Fp(:)p Fo(K)29 b Fk(`)23 b Fo(\034)33
b Fp(:)23 b Fb(T)83 b Fp(\001)23 b Fk(`)g Fo(c)g Fp(:)g
Fo(K)88 b Fp(\001)23 b Fk(`)g Fo(\034)9 b Fp([)p Fo(c=\013)p
Fp(])24 b(:)f Fo(K)2412 1981 y Ff(0)p 836 2051 1599 4
v 1337 2130 a Fp(\001)g Fk(`)g(8)p Fo(\013)p Fp(:)p Fo(K)q(:\034)33
b Fp(:)23 b Fo(K)1912 2100 y Ff(0)2476 2072 y Fp(\()p
Fo(K)2585 2042 y Ff(0)2631 2072 y Fk(2)h(f)p Fb(TD)o
Fo(;)14 b Fb(T)p Fo(i)p Fk(g)p Fp(\))3244 2020 y(\001)p
Fo(;)g(\013)p Fp(:)p Fo(K)29 b Fk(`)22 b Fo(\034)33 b
Fp(:)23 b Fb(T)p 3230 2056 555 4 v 3230 2130 a Fp(\001)g
Fk(`)g(9)p Fo(\013)p Fp(:)p Fo(K)q(:\034)33 b Fp(:)23
b Fb(T)72 2372 y Fp(\001)p Fo(;)14 b(\013)p Fp(:)p Fo(K)29
b Fk(`)23 b Fo(\034)32 b Fp(:)24 b Fb(T)p Fo(i)p 58 2408
584 4 v 58 2482 a Fp(\001)f Fk(`)g(9)p Fo(\013)p Fp(:)p
Fo(K)q(:\034)33 b Fp(:)23 b Fb(T)p Fo(i)p 752 2408 495
4 v 110 w Fp(\001)g Fk(`)g Fg(void)f Fp(:)h Fb(T)p Fo(i)1358
2372 y Fp(\001)p Fo(;)14 b(\013)p Fp(:)p Fb(T)23 b Fk(`)g
Fo(\034)32 b Fp(:)23 b Fb(T)p 1358 2408 508 4 v 1379
2482 a Fp(\001)h Fk(`)e Fo(\026\013:\034)34 b Fp(:)23
b Fb(T)1976 2367 y Fp(\001)p Fo(;)14 b(\013)p Fp(:)p
Fb(T)23 b Fk(`)g Fo(\034)32 b Fp(:)23 b Fb(T)83 b Fp(\001)23
b Fk(`)g Fo(\034)9 b Fp([)p Fo(\026\013:\034)g(=\013)p
Fp(])25 b(:)e Fo(K)p 1976 2408 1261 4 v 2364 2482 a Fp(\001)g
Fk(`)g Fo(\026\013:\034)33 b Fp(:)24 b Fo(K)3278 2428
y Fp(\()p Fo(K)29 b Fk(2)23 b(f)p Fb(TD)o Fo(;)14 b Fb(T)p
Fo(i)p Fk(g)p Fp(\))83 2730 y(\001)23 b Fk(`)g Fo(\034)285
2742 y Fh(1)345 2730 y Fp(:)g Fb(T)83 b Fp(\001)23 b
Fk(`)g Fo(\034)733 2742 y Fh(2)794 2730 y Fp(:)g Fb(T)p
83 2762 814 4 v 224 2837 a Fp(\001)g Fk(`)g Fo(\034)426
2849 y Fh(1)482 2837 y Fk(^)c Fo(\034)592 2849 y Fh(2)652
2837 y Fp(:)k Fb(T)1007 2730 y Fp(\001)g Fk(`)g Fo(\034)1209
2742 y Fh(1)1269 2730 y Fp(:)h Fb(TD)82 b Fp(\001)23
b Fk(`)g Fo(\034)1717 2742 y Fh(2)1778 2730 y Fp(:)g
Fb(T)p 1007 2762 874 4 v 1148 2837 a Fp(\001)g Fk(`)g
Fo(\034)1350 2849 y Fh(1)1406 2837 y Fk(^)c Fo(\034)1516
2849 y Fh(2)1577 2837 y Fp(:)k Fb(TD)1991 2730 y Fp(\001)g
Fk(`)g Fo(\034)2193 2742 y Fh(1)2254 2730 y Fp(:)g Fb(T)82
b Fp(\001)24 b Fk(`)e Fo(\034)2641 2742 y Fh(2)2702 2730
y Fp(:)h Fb(TD)p 1991 2762 V 2132 2837 a Fp(\001)h Fk(`)e
Fo(\034)2334 2849 y Fh(1)2390 2837 y Fk(^)d Fo(\034)2500
2849 y Fh(2)2561 2837 y Fp(:)k Fb(TD)2975 2730 y Fp(\001)h
Fk(`)e Fo(\034)3177 2742 y Fh(1)3238 2730 y Fp(:)h Fb(T)p
Fo(i)82 b Fp(\001)23 b Fk(`)g Fo(\034)3654 2742 y Fh(2)3715
2730 y Fp(:)g Fb(T)p 2975 2762 843 4 v 3117 2837 a Fp(\001)g
Fk(`)g Fo(\034)3319 2849 y Fh(1)3375 2837 y Fk(^)18 b
Fo(\034)3484 2849 y Fh(2)3545 2837 y Fp(:)23 b Fb(T)p
Fo(i)254 3081 y Fp(\001)h Fk(`)e Fo(\034)456 3093 y Fh(1)517
3081 y Fp(:)h Fb(T)83 b Fp(\001)23 b Fk(`)g Fo(\034)905
3093 y Fh(2)965 3081 y Fp(:)g Fb(T)p Fo(i)p 254 3114
V 396 3188 a Fp(\001)g Fk(`)g Fo(\034)598 3200 y Fh(1)654
3188 y Fk(^)18 b Fo(\034)763 3200 y Fh(2)824 3188 y Fp(:)23
b Fb(T)p Fo(i)1207 3081 y Fp(\001)g Fk(`)g Fo(\034)1409
3093 y Fh(1)1470 3081 y Fp(:)g Fb(T)83 b Fp(\001)23 b
Fk(`)g Fo(\034)1858 3093 y Fh(2)1918 3081 y Fp(:)g Fb(T)p
1207 3114 814 4 v 1348 3188 a Fp(\001)h Fk(`)f Fo(\034)1551
3200 y Fh(1)1606 3188 y Fk(_)c Fo(\034)1716 3200 y Fh(2)1777
3188 y Fp(:)k Fb(T)2131 3081 y Fp(\001)h Fk(`)f Fo(\034)2334
3093 y Fh(1)2394 3081 y Fp(:)g Fb(T)p Fo(i)82 b Fp(\001)24
b Fk(`)e Fo(\034)2810 3093 y Fh(2)2871 3081 y Fp(:)h
Fb(T)p Fo(i)p 2131 3114 871 4 v 2287 3188 a Fp(\001)g
Fk(`)g Fo(\034)2489 3200 y Fh(1)2545 3188 y Fk(_)c Fo(\034)2655
3200 y Fh(2)2715 3188 y Fp(:)24 b Fb(T)p Fo(i)3217 3089
y Fp(\001)g Fk(`)e Fo(t)h Fp(:)g Fb(N)p 3113 3109 533
4 v 3113 3188 a Fp(\001)g Fk(`)g(S)6 b Fp(\()p Fo(t)p
Fp(\))24 b(:)f Fb(T)p Fo(W)314 3441 y Fp(\001)h Fk(`)e
Fo(')i Fp(:)f Fb(P)83 b Fp(\001)23 b Fk(`)g Fo(\034)33
b Fp(:)23 b Fo(K)p 314 3477 783 4 v 435 3551 a Fp(\001)h
Fk(`)e Fo(')i Fk(\))f Fo(\034)33 b Fp(:)23 b Fo(K)1139
3497 y Fp(\()p Fo(K)29 b Fk(2)23 b(f)p Fb(T)p Fo(;)14
b Fb(T)p Fo(i;)g Fb(TD)m Fk(g)p Fp(\))p 1962 3477 344
4 v 1962 3551 a(\001)23 b Fk(`)p 2128 3505 50 4 v 23
w Fo(n)g Fp(:)g Fb(N)2348 3497 y Fp(\()p Fo(n)g Fk(\025)f
Fp(0\))2780 3444 y(\001)h Fk(`)g Fo(t)2976 3456 y Fh(1)3037
3444 y Fp(:)g Fb(N)82 b Fp(\001)24 b Fk(`)f Fo(t)3421
3456 y Fh(2)3481 3444 y Fp(:)g Fb(N)p 2780 3477 806 4
v 2918 3551 a Fp(\001)g Fk(`)g Fo(t)3114 3563 y Fh(1)3170
3551 y Fp(+)18 b Fo(t)3283 3563 y Fh(2)3343 3551 y Fp(:)23
b Fb(N)498 3799 y Fp(\001)g Fk(`)g Fo(t)694 3811 y Fh(1)754
3799 y Fp(:)g Fb(N)83 b Fp(\001)24 b Fk(`)e Fo(t)1138
3811 y Fh(2)1199 3799 y Fp(:)h Fb(N)p 498 3831 V 634
3906 a Fp(\001)g Fk(`)g Fo(t)830 3918 y Fh(1)890 3906
y Fk(\024)g Fo(t)1008 3918 y Fh(2)1068 3906 y Fp(:)g
Fb(P)1470 3799 y Fp(\001)g Fk(`)g Fo(t)1666 3811 y Fh(1)1726
3799 y Fp(:)g Fb(N)83 b Fp(\001)23 b Fk(`)g Fo(t)2110
3811 y Fh(2)2170 3799 y Fp(:)g Fb(N)p 1470 3831 V 1606
3906 a Fp(\001)g Fk(`)g Fo(t)1802 3918 y Fh(1)1862 3906
y Fp(=)g Fo(t)1980 3918 y Fh(2)2040 3906 y Fp(:)g Fb(P)2441
3811 y Fp(\001)g Fk(`)g Fo(\034)33 b Fp(:)23 b Fb(TD)p
2441 3831 398 4 v 2471 3906 a Fp(\001)g Fk(`)g Fo(\034)33
b Fp(:)23 b Fb(T)3020 3811 y Fp(\001)h Fk(`)e Fo(\034)33
b Fp(:)23 b Fb(T)p Fo(i)p 3005 3831 V 3005 3906 a Fp(\001)g
Fk(`)g Fo(\034)32 b Fp(:)24 b Fb(TD)p 0 4113 296 4 v
0 4226 4 113 v 28 4201 a FF(\001)h Fw(`)g FF(\000)p 292
4226 V 0 4229 296 4 v 1548 4390 a Fp(\001)e Fk(`)g Fo(\034)33
b Fp(:)23 b Fb(TD)82 b Fp(\001)23 b Fk(`)g Fo(t)g Fp(:)g
Fb(N)1466 4490 y Fp(\001)g Fk(`)g Fo(\034)1668 4502 y
Fj(i)1719 4490 y Fp(:)g Fb(T)p Fo(W)39 b Fp(for)28 b(1)22
b Fk(\024)h Fo(i)f Fk(\024)h Fo(N)p 1354 4540 1193 4
v 1354 4619 a Fp(\001)g Fk(`)g(f)p Fg(r1)o Fp(:)p Fo(\034)1708
4631 y Fh(1)1745 4619 y Fo(;)14 b(:)g(:)g(:)g(;)g Fg(rN)o
Fp(:)p Fo(\034)2076 4631 y Fj(N)2139 4619 y Fo(;)g Fg(sp)o
Fp(:)p Fo(\034)5 b(;)14 b Fg(ck)p Fp(:)p Fo(t)p Fk(g)p
0 4826 480 4 v 0 4957 4 131 v 28 4914 a FF(\001)25 b
Fw(`)g Fy(')31 b Fs(true)p 476 4957 V 0 4960 480 4 v
128 5128 a FF(\(\()p Fy(')h Fs(true)p FF(\))26 b Fw(2)f
FF(\001\))p 128 5171 570 4 v 202 5250 a(\001)g Fw(`)f
Fy(')31 b Fs(true)977 5151 y FF(\001)25 b Fw(`)g Fy(t)g
FF(:)h Fs(N)p 879 5171 551 4 v 879 5250 a FF(\001)f Fw(`)g
Fy(t)g FF(=)g Fy(t)30 b Fs(true)1612 5137 y FF(\001)25
b Fw(`)f Fy(t)1826 5151 y Fv(2)1891 5137 y FF(=)h Fy(t)2020
5151 y Fv(1)2089 5137 y Fs(true)p 1612 5171 630 4 v 1612
5250 a FF(\001)g Fw(`)f Fy(t)1826 5264 y Fv(1)1891 5250
y FF(=)h Fy(t)2020 5264 y Fv(2)2089 5250 y Fs(true)2422
5137 y FF(\001)h Fw(`)e Fy(t)2637 5151 y Fv(1)2702 5137
y FF(=)h Fy(t)2831 5151 y Fv(3)2900 5137 y Fs(true)92
b FF(\001)25 b Fw(`)f Fy(t)3357 5151 y Fv(3)3422 5137
y FF(=)h Fy(t)3551 5151 y Fv(2)3620 5137 y Fs(true)p
2422 5171 1350 4 v 2783 5250 a FF(\001)g Fw(`)f Fy(t)2997
5264 y Fv(1)3062 5250 y FF(=)h Fy(t)3191 5264 y Fv(2)3260
5250 y Fs(true)1905 5589 y FF(52)p eop
%%Page: 53 55
53 54 bop 252 260 a FF(\001)25 b Fw(`)g Fy(t)467 274
y Fv(1)532 260 y FF(=)g Fy(t)661 227 y Ft(0)661 285 y
Fv(1)730 260 y Fs(true)91 b FF(\001)25 b Fw(`)g Fy(t)1187
274 y Fv(2)1252 260 y FF(=)g Fy(t)1381 227 y Ft(0)1381
285 y Fv(2)1450 260 y Fs(true)p 252 305 1350 4 v 429
391 a FF(\001)g Fw(`)g Fy(t)644 405 y Fv(1)703 391 y
FF(+)20 b Fy(t)827 405 y Fv(2)892 391 y FF(=)25 b Fy(t)1021
358 y Ft(0)1021 416 y Fv(1)1080 391 y FF(+)20 b Fy(t)1204
358 y Ft(0)1204 416 y Fv(2)1274 391 y Fs(true)p 1783
303 976 4 v 358 w FF(\001)25 b Fw(`)p 1965 341 80 4 v
25 w Fy(m)20 b FF(+)p 2156 341 55 4 v 20 w Fy(n)25 b
FF(=)p 2332 327 246 4 v 25 w Fy(m)20 b FF(+)g Fy(n)30
b Fs(true)3117 278 y FF(\001)25 b Fw(`)g Fy(t)g FF(:)g
Fs(N)p 2941 298 707 4 v 2941 391 a FF(\001)g Fw(`)p 3123
322 46 4 v 25 w FF(0)20 b(+)g Fy(t)25 b FF(=)g Fy(t)30
b Fs(true)667 688 y FF(\001)25 b Fw(`)g Fy(t)882 702
y Fv(1)947 688 y FF(:)g Fs(N)92 b FF(\001)25 b Fw(`)f
Fy(t)1367 702 y Fv(2)1432 688 y FF(:)h Fs(N)p 609 722
996 4 v 609 801 a FF(\001)g Fw(`)g Fy(t)824 815 y Fv(1)883
801 y FF(+)20 b Fy(t)1007 815 y Fv(2)1072 801 y FF(=)25
b Fy(t)1201 815 y Fv(2)1260 801 y FF(+)20 b Fy(t)1384
815 y Fv(1)1454 801 y Fs(true)2042 674 y FF(\001)25 b
Fw(`)g Fy(t)2257 688 y Fx(i)2311 674 y FF(:)g Fs(N)31
b FF(\(for)f Fy(i)c FF(=)f(1)p Fy(;)15 b FF(2)p Fy(;)g
FF(3\))p 1787 717 1505 4 v 1787 801 a(\001)25 b Fw(`)g
FF(\()p Fy(t)2037 815 y Fv(1)2096 801 y FF(+)20 b Fy(t)2220
815 y Fv(2)2260 801 y FF(\))g(+)g Fy(t)2439 815 y Fv(3)2504
801 y FF(=)25 b Fy(t)2633 815 y Fv(1)2692 801 y FF(+)20
b(\()p Fy(t)2851 815 y Fv(2)2911 801 y FF(+)g Fy(t)3035
815 y Fv(3)3074 801 y FF(\))31 b Fs(true)286 1077 y FF(\001)25
b Fw(`)f Fy(t)500 1091 y Fv(1)565 1077 y FF(=)h Fy(t)694
1091 y Fv(2)764 1077 y Fs(true)p 286 1111 630 4 v 286
1191 a FF(\001)g Fw(`)f Fy(t)500 1205 y Fv(1)565 1191
y Fw(\024)h Fy(t)694 1205 y Fv(2)764 1191 y Fs(true)1097
1077 y FF(\001)g Fw(`)f Fy(t)1311 1091 y Fv(1)1376 1077
y Fw(\024)h Fy(t)1505 1091 y Fv(3)1574 1077 y Fs(true)92
b FF(\001)25 b Fw(`)f Fy(t)2031 1091 y Fv(3)2096 1077
y Fw(\024)h Fy(t)2225 1091 y Fv(2)2294 1077 y Fs(true)p
1097 1111 1350 4 v 1457 1191 a FF(\001)g Fw(`)f Fy(t)1671
1205 y Fv(1)1736 1191 y Fw(\024)h Fy(t)1865 1205 y Fv(2)1934
1191 y Fs(true)p 2628 1111 619 4 v 543 w FF(\001)g Fw(`)p
2809 1141 80 4 v 24 w Fy(m)g Fw(\024)p 3010 1141 55 4
v 25 w Fy(n)30 b Fs(true)3288 1134 y FF(\()p Fy(m)25
b Fw(\024)g Fy(n)p FF(\))726 1464 y(\001)g Fw(`)g Fy(t)941
1478 y Fv(1)1005 1464 y Fw(\024)g Fy(t)1134 1431 y Ft(0)1134
1489 y Fv(1)1204 1464 y Fs(true)91 b FF(\001)25 b Fw(`)g
Fy(t)1661 1478 y Fv(2)1725 1464 y Fw(\024)g Fy(t)1854
1431 y Ft(0)1854 1489 y Fv(2)1924 1464 y Fs(true)p 726
1509 1350 4 v 903 1595 a FF(\001)g Fw(`)f Fy(t)1117 1609
y Fv(1)1177 1595 y FF(+)c Fy(t)1301 1609 y Fv(2)1365
1595 y Fw(\024)25 b Fy(t)1494 1562 y Ft(0)1494 1619 y
Fv(1)1554 1595 y FF(+)20 b Fy(t)1678 1562 y Ft(0)1678
1619 y Fv(2)1747 1595 y Fs(true)2257 1482 y FF(\001)25
b Fw(`)g Fy(t)20 b FF(+)g Fy(t)2616 1496 y Fv(1)2680
1482 y Fw(\024)25 b Fy(t)20 b FF(+)g Fy(t)2953 1496 y
Fv(2)3023 1482 y Fs(true)p 2257 1515 918 4 v 2401 1595
a FF(\001)25 b Fw(`)g Fy(t)2616 1609 y Fv(1)2680 1595
y Fw(\024)g Fy(t)2809 1609 y Fv(2)2879 1595 y Fs(true)p
0 1821 1049 4 v 0 1955 4 134 v 28 1916 a FF(\001)g Fw(`)g
Fy(\034)250 1930 y Fv(1)314 1916 y Fw(\024)g Fy(\034)450
1930 y Fv(2)581 1916 y FF(\001)g Fw(`)f FF(\000)h Fw(\024)g
FF(\000)997 1883 y Ft(0)p 1045 1955 V 0 1958 1049 4 v
274 2157 369 4 v 274 2231 a Fp(\001)e Fk(`)g Fo(\034)33
b Fk(\024)22 b Fo(\034)808 2124 y Fp(\001)h Fk(`)g Fo(\034)1010
2136 y Fh(1)1071 2124 y Fk(\024)f Fo(\034)1194 2136 y
Fh(3)1315 2124 y Fp(\001)h Fk(`)g Fo(\034)1517 2136 y
Fh(3)1578 2124 y Fk(\024)f Fo(\034)1701 2136 y Fh(2)p
808 2157 931 4 v 1061 2231 a Fp(\001)i Fk(`)f Fo(\034)1264
2243 y Fh(1)1324 2231 y Fk(\024)g Fo(\034)1448 2243 y
Fh(2)1905 2111 y Fp(\001)g Fk(`)g Fo(\034)2107 2123 y
Fh(1)2167 2111 y Fk(\024)g Fo(\034)2300 2081 y Ff(0)2291
2132 y Fh(1)2412 2111 y Fp(\001)g Fk(`)g Fo(\034)2614
2123 y Fh(2)2674 2111 y Fk(\024)g Fo(\034)2807 2081 y
Ff(0)2798 2132 y Fh(2)p 1905 2152 V 1979 2231 a Fp(\001)g
Fk(`)g Fo(\034)2181 2243 y Fh(1)2237 2231 y Fk(\002)18
b Fo(\034)2356 2243 y Fh(1)2416 2231 y Fk(\024)23 b Fo(\034)2549
2201 y Ff(0)2540 2252 y Fh(1)2600 2231 y Fk(\024)g Fo(\034)2733
2201 y Ff(0)2724 2252 y Fh(2)3118 2121 y Fp(\001)g Fk(`)g
Fo(\034)33 b Fk(\024)23 b Fo(\034)3486 2091 y Ff(0)p
3001 2152 625 4 v 3001 2231 a Fp(\001)h Fk(`)e Fo(\034)i
Fk(")13 b Fo(x)24 b Fk(\024)f Fo(\034)3486 2201 y Ff(0)3523
2231 y Fk(")14 b Fo(x)272 2488 y Fp(\001)23 b Fk(`)g
Fp(\000)490 2457 y Ff(0)536 2488 y Fk(\024)g Fp(\000)p
102 2519 746 4 v 102 2598 a(\001)g Fk(`)g Fp(\000)g Fk(!)g
Fp(0)f Fk(\024)h Fp(\000)653 2568 y Ff(0)699 2598 y Fk(!)g
Fp(0)1208 2488 y(\001)g Fk(`)g Fo(\034)33 b Fk(\024)22
b Fo(\034)1575 2457 y Ff(0)p 1013 2519 783 4 v 1013 2598
a Fp(\001)h Fk(`)g Fg(box)n Fp(\()p Fo(\034)9 b Fp(\))25
b Fk(\024)d Fg(box)o Fp(\()p Fo(\034)1738 2568 y Ff(0)1762
2598 y Fp(\))1963 2488 y(\001)h Fk(`)g Fo(\034)32 b Fk(\024)23
b Fo(\034)2330 2457 y Ff(0)2437 2488 y Fp(\001)g Fk(`)g
Fo(\034)2648 2457 y Ff(0)2695 2488 y Fk(\024)g Fo(\034)p
1961 2519 870 4 v 1961 2598 a Fp(\001)g Fk(`)g Fg(mbox)n
Fp(\()p Fo(\034)9 b Fp(\))25 b Fk(\024)d Fg(mbox)o Fp(\()p
Fo(\034)2774 2568 y Ff(0)2798 2598 y Fp(\))p 2996 2519
803 4 v 166 w(\001)h Fk(`)g Fg(mbox)n Fp(\()p Fo(\034)9
b Fp(\))25 b Fk(\024)d Fg(box)o Fp(\()p Fo(\034)9 b Fp(\))270
2860 y(\001)23 b Fk(`)g Fo(\034)33 b Fk(\024)22 b Fo(\034)637
2829 y Ff(0)744 2860 y Fp(\001)h Fk(`)g Fo(\034)33 b
Fp(:)23 b Fb(TD)83 b Fp(\001)23 b Fk(`)g Fo(\034)1436
2829 y Ff(0)1483 2860 y Fp(:)g Fb(TD)p 270 2891 1376
4 v 523 2970 a Fp(\001)g Fk(`)g Fg(sptr)n Fp(\()p Fo(\034)9
b Fp(\))25 b Fk(\024)d Fg(sptr)o Fp(\()p Fo(\034)1336
2940 y Ff(0)1360 2970 y Fp(\))1934 2855 y(\001)p Fo(;)14
b(\013)p Fp(:)p Fo(K)29 b Fk(`)23 b Fo(\034)33 b Fk(\024)22
b Fo(\034)2491 2825 y Ff(0)p 1811 2891 827 4 v 1811 2970
a Fp(\001)i Fk(`)e(8)p Fo(\013)p Fp(:)p Fo(K)q(:\034)34
b Fk(\024)22 b(8)p Fo(\013)p Fp(:)p Fo(K)q(:\034)2613
2940 y Ff(0)2926 2855 y Fp(\001)p Fo(;)14 b(\013)p Fp(:)p
Fo(K)29 b Fk(`)23 b Fo(\034)33 b Fk(\024)23 b Fo(\034)3484
2825 y Ff(0)p 2804 2891 V 2804 2970 a Fp(\001)g Fk(`)g(9)p
Fo(\013)p Fp(:)p Fo(K)q(:\034)33 b Fk(\024)23 b(9)p Fo(\013)p
Fp(:)p Fo(K)q(:\034)3606 2940 y Ff(0)157 3226 y Fp(\001)p
Fo(;)14 b(\013)p Fp(:)p Fo(K)30 b Fk(`)22 b Fo(\034)33
b Fp(:)23 b Fb(T)83 b Fp(\001)23 b Fk(`)g Fo(c)g Fp(:)g
Fo(K)p 157 3262 958 4 v 255 3341 a Fp(\001)g Fk(`)g(8)p
Fo(\013)p Fp(:)p Fo(K)q(:\034)33 b Fk(\024)23 b Fo(\034)9
b Fp([)p Fo(c=\013)p Fp(])1281 3226 y(\001)p Fo(;)14
b(\013)p Fp(:)p Fo(K)29 b Fk(`)23 b Fo(\034)33 b Fp(:)23
b Fb(T)83 b Fp(\001)23 b Fk(`)g Fo(c)g Fp(:)g Fo(K)p
1281 3262 V 1379 3341 a Fp(\001)g Fk(`)g Fo(\034)9 b
Fp([)p Fo(c=\013)p Fp(])24 b Fk(\024)e(9)p Fo(\013)p
Fp(:)p Fo(K)q(:\034)2566 3226 y Fp(\()p Fo(\013)32 b(=)-51
b Fk(2)24 b Fo(\034)9 b Fp(\))p 2405 3267 586 4 v 2405
3341 a(\001)24 b Fk(`)e Fo(\034)33 b Fk(\024)23 b(8)p
Fo(\013)p Fp(:)p Fo(K)q(:\034)3317 3226 y Fp(\()p Fo(\013)33
b(=)-51 b Fk(2)23 b Fo(\034)9 b Fp(\))p 3157 3267 V 3157
3341 a(\001)23 b Fk(`)g(9)p Fo(\013)p Fp(:)p Fo(K)q(:\034)33
b Fk(\024)23 b Fo(\034)462 3603 y Fp(\001)g Fk(`)g Fo(\034)32
b Fp(:)24 b Fb(T)p Fo(i)p 426 3623 438 4 v 426 3708 a
Fp(\001)f Fk(`)g Fo(\034)33 b Fk(\024)22 b Fg(ns)836
3678 y Fj(i)1109 3614 y Fp(\001)h Fk(`)g Fo(\034)33 b
Fp(:)23 b Fb(T)p 1029 3634 497 4 v 1029 3708 a Fp(\001)h
Fk(`)e Fg(void)g Fk(\024)g Fo(\034)1842 3593 y Fp(\001)p
Fo(;)14 b(\013)p Fp(:)p Fb(T)24 b Fk(`)e Fo(\034)33 b
Fp(:)23 b Fb(T)p 1692 3630 808 4 v 1692 3708 a Fp(\001)g
Fk(`)g Fo(\034)9 b Fp([)p Fo(\026\013:\034)g(=\013)p
Fp(])25 b Fk(\024)e Fo(\026\013:\034)2816 3593 y Fp(\001)p
Fo(;)14 b(\013)p Fp(:)p Fb(T)23 b Fk(`)g Fo(\034)33 b
Fp(:)23 b Fb(T)p 2666 3630 V 2666 3708 a Fp(\001)g Fk(`)g
Fo(\026\013:\034)33 b Fk(\024)23 b Fo(\034)9 b Fp([)p
Fo(\026\013:\034)g(=\013)p Fp(])379 3960 y(\001)23 b
Fk(`)g Fo(\034)33 b Fk(\024)22 b Fo(\034)737 3972 y Fh(1)858
3960 y Fp(\001)h Fk(`)g Fo(\034)33 b Fk(\024)22 b Fo(\034)1216
3972 y Fh(2)p 379 3993 875 4 v 536 4067 a Fp(\001)h Fk(`)g
Fo(\034)32 b Fk(\024)23 b Fo(\034)894 4079 y Fh(1)950
4067 y Fk(^)c Fo(\034)1060 4079 y Fh(2)1532 3960 y Fp(\001)k
Fk(`)g Fo(\034)1734 3972 y Fh(2)1795 3960 y Fp(:)g Fb(T)p
1420 3993 590 4 v 1420 4067 a Fp(\001)g Fk(`)g Fo(\034)1622
4079 y Fh(1)1678 4067 y Fk(^)c Fo(\034)1788 4079 y Fh(2)1848
4067 y Fk(\024)k Fo(\034)1972 4079 y Fh(1)2288 3960 y
Fp(\001)g Fk(`)g Fo(\034)2490 3972 y Fh(1)2551 3960 y
Fp(:)g Fb(T)p 2176 3993 V 2176 4067 a Fp(\001)g Fk(`)g
Fo(\034)2378 4079 y Fh(1)2434 4067 y Fk(^)c Fo(\034)2544
4079 y Fh(2)2604 4067 y Fk(\024)k Fo(\034)2728 4079 y
Fh(2)3044 3960 y Fp(\001)g Fk(`)g Fo(\034)3246 3972 y
Fh(2)3306 3960 y Fp(:)g Fb(T)p 2931 3993 V 2931 4067
a Fp(\001)h Fk(`)e Fo(\034)3133 4079 y Fh(1)3194 4067
y Fk(\024)h Fo(\034)3318 4079 y Fh(1)3374 4067 y Fk(_)18
b Fo(\034)3483 4079 y Fh(2)123 4316 y Fp(\001)23 b Fk(`)g
Fo(\034)325 4328 y Fh(1)386 4316 y Fp(:)g Fb(T)p 11 4348
V 11 4422 a Fp(\001)g Fk(`)g Fo(\034)213 4434 y Fh(2)273
4422 y Fk(\024)g Fo(\034)397 4434 y Fh(1)453 4422 y Fk(_)c
Fo(\034)563 4434 y Fh(2)p 711 4343 1363 4 v 711 4422
a Fp(\001)k Fk(`)g Fo(\034)28 b Fk(^)19 b Fp(\()p Fo(\034)1083
4434 y Fh(1)1139 4422 y Fk(_)g Fo(\034)1249 4434 y Fh(2)1287
4422 y Fp(\))k Fk(\024)g Fp(\()p Fo(\034)28 b Fk(^)19
b Fo(\034)1636 4434 y Fh(1)1673 4422 y Fp(\))g Fk(_)g
Fp(\()p Fo(\034)28 b Fk(^)19 b Fo(\034)2004 4434 y Fh(2)2042
4422 y Fp(\))2602 4311 y(\001)k Fk(`)g Fo(\034)2804 4323
y Fh(1)2864 4311 y Fp(:)g Fb(T)p Fo(i)82 b Fp(\001)24
b Fk(`)f Fo(\034)3281 4323 y Fh(2)3341 4311 y Fp(:)g
Fb(T)p Fo(i)p 2185 4343 1705 4 v 2185 4422 a Fp(\001)g
Fk(`)g Fp(\()p Fo(\034)2419 4434 y Fh(1)2475 4422 y Fk(\002)18
b Fo(\034)2594 4434 y Fh(2)2632 4422 y Fp(\))g Fk(^)h
Fp(\()p Fo(\034)2833 4392 y Ff(0)2824 4443 y Fh(1)2880
4422 y Fk(\002)f Fo(\034)3008 4392 y Ff(0)2999 4443 y
Fh(2)3037 4422 y Fp(\))23 b Fk(\024)g Fp(\()p Fo(\034)3248
4434 y Fh(1)3304 4422 y Fk(^)c Fo(\034)3423 4392 y Ff(0)3414
4443 y Fh(1)3452 4422 y Fp(\))f Fk(\002)g Fp(\()p Fo(\034)3653
4434 y Fh(2)3710 4422 y Fk(^)g Fo(\034)3828 4392 y Ff(0)3819
4443 y Fh(2)3857 4422 y Fp(\))p 476 4629 1391 4 v 476
4708 a(\001)24 b Fk(`)e Fo(\034)29 b Fk(\002)18 b Fp(\()p
Fo(\034)858 4720 y Fh(1)914 4708 y Fk(_)h Fo(\034)1024
4720 y Fh(2)1061 4708 y Fp(\))24 b Fk(\024)e Fp(\()p
Fo(\034)29 b Fk(\002)18 b Fo(\034)1420 4720 y Fh(1)1457
4708 y Fp(\))h Fk(_)g Fp(\()p Fo(\034)28 b Fk(\002)18
b Fo(\034)1797 4720 y Fh(2)1835 4708 y Fp(\))p 2033 4629
V 166 w(\001)23 b Fk(`)g Fp(\()p Fo(\034)2267 4720 y
Fh(1)2323 4708 y Fk(_)c Fo(\034)2433 4720 y Fh(2)2471
4708 y Fp(\))f Fk(\002)g Fo(\034)33 b Fk(\024)23 b Fp(\()p
Fo(\034)2829 4720 y Fh(1)2885 4708 y Fk(\002)18 b Fo(\034)9
b Fp(\))20 b Fk(_)e Fp(\()p Fo(\034)3206 4720 y Fh(2)3263
4708 y Fk(\002)g Fo(\034)9 b Fp(\))602 4960 y(\001)24
b Fk(`)e Fo(\034)33 b Fp(:)23 b Fb(T)p 385 4980 773 4
v 385 5054 a Fp(\001)g Fk(`)g Fo(\034)28 b Fk(\002)18
b Fg(void)j Fk(\024)i Fg(void)1541 4960 y Fp(\001)g Fk(`)g
Fo(\034)33 b Fp(:)23 b Fb(T)p 1324 4980 V 1324 5054 a
Fp(\001)g Fk(`)g Fg(void)16 b Fk(\002)i Fo(\034)33 b
Fk(\024)23 b Fg(void)p 2262 4975 1253 4 v 164 w Fp(\001)g
Fk(`)g Fo(\034)2464 5066 y Fh(1)2520 5054 y Fk(\002)18
b Fp(\()p Fo(\034)2671 5066 y Fh(2)2727 5054 y Fk(\002)g
Fo(\034)2846 5066 y Fh(3)2884 5054 y Fp(\))23 b Fk(\024)g
Fp(\()p Fo(\034)3095 5066 y Fh(1)3151 5054 y Fk(\002)18
b Fo(\034)3270 5066 y Fh(2)3308 5054 y Fp(\))h Fk(\002)f
Fo(\034)3478 5066 y Fh(3)p 0 5261 V 0 5340 a Fp(\001)23
b Fk(`)g Fp(\()p Fo(\034)234 5352 y Fh(1)290 5340 y Fk(\002)18
b Fo(\034)409 5352 y Fh(2)447 5340 y Fp(\))h Fk(\002)f
Fo(\034)617 5352 y Fh(3)677 5340 y Fk(\024)23 b Fo(\034)801
5352 y Fh(1)857 5340 y Fk(\002)18 b Fp(\()p Fo(\034)1008
5352 y Fh(2)1064 5340 y Fk(\002)g Fo(\034)1183 5352 y
Fh(3)1221 5340 y Fp(\))p 1358 5266 557 4 v 105 w(\001)23
b Fk(`)g Fo(\034)33 b Fk(\024)22 b Fg(B0)c Fk(\002)g
Fo(\034)p 2020 5266 V 115 w Fp(\001)23 b Fk(`)g Fg(B0)17
b Fk(\002)h Fo(\034)33 b Fk(\024)23 b Fo(\034)p 2681
5266 V 114 w Fp(\001)h Fk(`)f Fo(\034)32 b Fk(\024)23
b Fo(\034)28 b Fk(\002)18 b Fg(B0)p 3343 5266 V 104 w
Fp(\001)23 b Fk(`)g Fo(\034)28 b Fk(\002)18 b Fg(B0)23
b Fk(\024)f Fo(\034)1905 5589 y FF(53)p eop
%%Page: 54 56
54 55 bop 191 240 a Fp(\001)23 b Fk(`)g Fo(\034)32 b
Fp(:)23 b Fb(T)p 78 260 562 4 v 78 347 a Fp(\001)h Fk(`)f
Fo(\034)g Fk(")13 b Fo(B)28 b Fk(\024)22 b Fo(\034)582
317 y Fj(B)863 240 y Fp(\001)h Fk(`)g Fo(\034)33 b Fp(:)23
b Fb(T)p 751 260 V 751 347 a Fp(\001)g Fk(`)g Fo(\034)962
317 y Fj(B)1043 347 y Fk(\024)f Fo(\034)i Fk(")13 b Fo(B)p
1423 268 726 4 v 115 w Fp(\001)23 b Fk(`)g Fg(set)1720
359 y Fh(=)1775 347 y Fp(\()p Fo(B)t Fp(\))h Fk(\024)e
Fg(int)p 2259 268 727 4 v 110 w Fp(\001)h Fk(`)g Fg(set)2556
359 y Fj(<)2612 347 y Fp(\()p Fo(B)t Fp(\))g Fk(\024)g
Fg(int)p 3096 268 V 110 w Fp(\001)g Fk(`)g Fg(set)3392
359 y Fj(>)3448 347 y Fp(\()p Fo(B)t Fp(\))h Fk(\024)f
Fg(int)p 70 554 1180 4 v 70 633 a Fp(\001)g Fk(`)g Fg(set)367
645 y Fh(=)422 633 y Fp(\()p Fo(B)t Fp(\))c Fk(^)g Fg(set)776
645 y Fj(<)832 633 y Fp(\()p Fo(B)t Fp(\))24 b Fk(\024)f
Fg(void)p 1360 554 V 109 w Fp(\001)g Fk(`)g Fg(set)1657
645 y Fh(=)1712 633 y Fp(\()p Fo(B)t Fp(\))c Fk(^)g Fg(set)2066
645 y Fj(>)2123 633 y Fp(\()p Fo(B)t Fp(\))k Fk(\024)g
Fg(void)p 2650 554 1181 4 v 109 w Fp(\001)g Fk(`)g Fg(set)2947
645 y Fj(<)3003 633 y Fp(\()p Fo(B)t Fp(\))c Fk(^)g Fg(set)3358
645 y Fj(>)3414 633 y Fp(\()p Fo(B)t Fp(\))k Fk(\024)g
Fg(void)p 282 931 1044 4 v 282 1010 a Fp(\001)g Fk(`)g
Fg(int)f Fk(\024)h(9)p Fo(\013)p Fp(:)p Fb(W)n(o)n(rd)p
Fo(:)p Fg(set)1153 1022 y Fh(=)1208 1010 y Fp(\()p Fo(\013)p
Fp(\))1794 890 y(\()p Fo(B)1889 902 y Fh(1)1950 890 y
Fk(\024)f Fo(B)2100 902 y Fh(2)2137 890 y Fp(\))p 1492
931 980 4 v 1492 1010 a(\001)h Fk(`)g Fg(set)1789 1022
y Fj(<)1845 1010 y Fp(\()p Fo(B)1940 1022 y Fh(1)1977
1010 y Fp(\))h Fk(\024)e Fg(set)2251 1022 y Fj(<)2307
1010 y Fp(\()p Fo(B)2402 1022 y Fh(2)2440 1010 y Fp(\))2940
890 y(\()p Fo(B)3035 902 y Fh(1)3096 890 y Fk(\025)g
Fo(B)3246 902 y Fh(2)3283 890 y Fp(\))p 2638 931 V 2638
1010 a(\001)h Fk(`)g Fg(set)2935 1022 y Fj(>)2991 1010
y Fp(\()p Fo(B)3086 1022 y Fh(1)3123 1010 y Fp(\))h Fk(\024)e
Fg(set)3397 1022 y Fj(>)3453 1010 y Fp(\()p Fo(B)3548
1022 y Fh(2)3585 1010 y Fp(\))418 1267 y(\()p Fo(B)513
1279 y Fh(1)574 1267 y Fo(<)g(B)724 1279 y Fh(2)762 1267
y Fp(\))p 117 1308 979 4 v 117 1387 a(\001)h Fk(`)g Fg(set)413
1399 y Fh(=)468 1387 y Fp(\()p Fo(B)563 1399 y Fh(1)601
1387 y Fp(\))g Fk(\024)g Fg(set)875 1399 y Fj(<)931 1387
y Fp(\()p Fo(B)1026 1399 y Fh(2)1063 1387 y Fp(\))1508
1267 y(\()p Fo(B)1603 1279 y Fh(1)1663 1267 y Fo(>)g(B)1814
1279 y Fh(2)1851 1267 y Fp(\))p 1206 1308 V 1206 1387
a(\001)g Fk(`)g Fg(set)1503 1399 y Fh(=)1558 1387 y Fp(\()p
Fo(B)1653 1399 y Fh(1)1691 1387 y Fp(\))g Fk(\024)g Fg(set)1964
1399 y Fj(>)2020 1387 y Fp(\()p Fo(B)2115 1399 y Fh(2)2153
1387 y Fp(\))2296 1277 y(\001)g Fk(`)g Fo(\034)33 b Fp(:)23
b Fb(T)82 b Fp(\001)24 b Fk(`)e Fo(')28 b Fb(true)p 2296
1313 807 4 v 2423 1387 a Fp(\001)c Fk(`)e Fo(')i Fk(\))f
Fo(\034)33 b Fk(\024)22 b Fo(\034)3364 1288 y Fp(\001)h
Fk(`)g Fo(t)g Fp(:)g Fb(N)p 3269 1308 515 4 v 3269 1387
a Fp(\001)g Fk(`)g(S)6 b Fp(\()p Fo(t)p Fp(\))24 b Fk(\024)e
Fg(BW)1661 1640 y Fp(\001)i Fk(`)f Fo(t)1858 1652 y Fh(1)1918
1640 y Fp(=)f Fo(t)2035 1652 y Fh(2)2100 1640 y Fb(true)p
1623 1672 654 4 v 1623 1751 a Fp(\001)i Fk(`)e(S)6 b
Fp(\()p Fo(t)1907 1763 y Fh(1)1945 1751 y Fp(\))24 b
Fk(\024)e(S)6 b Fp(\()p Fo(t)2206 1763 y Fh(2)2244 1751
y Fp(\))943 2008 y(\001)23 b Fk(`)g Fo(\034)32 b Fk(\024)23
b Fo(\034)1310 1978 y Ff(0)1417 2008 y Fp(\001)g Fk(`)g
Fo(t)1613 1978 y Ff(0)1659 2008 y Fk(\024)g Fo(t)28 b
Fb(true)83 b Fp(\001)23 b Fk(`)g Fo(\034)2228 2020 y
Fj(i)2279 2008 y Fk(\024)f Fo(\034)2411 1978 y Ff(0)2402
2030 y Fj(i)2463 2008 y Fp(for)27 b(1)c Fk(\024)f Fo(i)h
Fk(\024)g Fo(N)p 760 2050 2381 4 v 760 2129 a Fp(\001)g
Fk(`)g(f)p Fg(r1)o Fp(:)p Fo(\034)1114 2141 y Fh(1)1151
2129 y Fo(;)14 b(:)g(:)g(:)g(;)g Fg(rN)o Fp(:)p Fo(\034)1482
2141 y Fj(N)1545 2129 y Fo(;)g Fg(sp)o Fp(:)p Fo(\034)5
b(;)14 b Fg(ck)p Fp(:)p Fo(t)p Fk(g)22 b(\024)h(f)p Fg(r1)n
Fp(:)p Fo(\034)2259 2099 y Ff(0)2250 2150 y Fh(1)2288
2129 y Fo(;)14 b(:)g(:)g(:)g(;)g Fg(rN)o Fp(:)p Fo(\034)2628
2099 y Ff(0)2619 2152 y Fj(N)2682 2129 y Fo(;)g Fg(sp)o
Fp(:)p Fo(\034)2874 2099 y Ff(0)2898 2129 y Fo(;)g Fg(ck)o
Fp(:)p Fo(t)3075 2099 y Ff(0)3099 2129 y Fk(g)p 0 2346
617 4 v 0 2477 4 131 v 28 2434 a FF(\001;)h(\011;)g(\000)26
b Fw(`)e Fy(o)i FF(:)f Fy(\034)p 613 2477 V 0 2480 617
4 v 122 2602 811 4 v 122 2681 a Fp(\001;)14 b(\011;)g(\000)23
b Fk(`)g Fo(B)k Fp(:)c Fg(set)746 2693 y Fh(=)801 2681
y Fp(\()p Fo(B)t Fp(\))p 1099 2591 681 4 v 167 w(\001;)14
b(\011;)g(\000)22 b Fk(`)h Fo(B)k Fp(:)c Fk(S)6 b Fp(\()p
1679 2615 68 4 v Fo(B)f Fp(\))p 1945 2602 624 4 v 166
w(\001;)14 b(\011;)g(\000)23 b Fk(`)g Fo(`)f Fp(:)i(\011\()p
Fo(`)p Fp(\))p 2735 2602 1043 4 v 165 w(\001;)14 b(\011;)g(\000)23
b Fk(`)g Fg(esp)e Fp(:)j Fg(sptr)n Fp(\(\000\()p Fg(esp)o
Fp(\)\))614 3145 y(\001;)14 b(\011;)g(\000)23 b Fk(`)g
Fo(o)g Fp(:)g Fg(sptr)o Fp(\()p Fo(\034)1323 3157 y Fh(1)1379
3145 y Fk(\002)18 b Fo(\034)1498 3157 y Fh(2)1554 3145
y Fk(\002)g Fo(\034)1673 3157 y Fh(3)1710 3145 y Fp(\))710
3245 y(\001)24 b Fk(`)e Fo(\034)912 3257 y Fh(1)973 3245
y Fp(:)h Fb(T)p Fo(n)83 b Fp(\001)23 b Fk(`)g Fo(\034)1411
3257 y Fh(2)1471 3245 y Fp(:)g Fb(T)p Fo(m)631 3345 y
Fp(\001)g Fk(`)g Fp(\000\()p Fg(esp)o Fp(\))h Fk(\024)e
Fo(\034)28 b Fk(\002)18 b Fo(\034)1338 3357 y Fh(1)1394
3345 y Fk(\002)g Fo(\034)1513 3357 y Fh(2)1569 3345 y
Fk(\002)g Fo(\034)1688 3357 y Fh(3)p 614 3394 1129 4
v 762 3473 a Fp(\001;)c(\011;)g(\000)23 b Fk(`)g Fo(m)p
Fp(`[)p Fo(o)18 b Fp(+)g Fo(n)p Fp(])23 b(:)g Fo(\034)1557
3485 y Fh(2)1950 2946 y Fp(\001;)14 b(\011;)g(\000)f
Fk(`)23 b Fo(o)2337 2958 y Fh(1)2398 2946 y Fp(:)g Fg(box)o
Fp(\(\()p Fo(\034)2675 2958 y Fh(1)2731 2946 y Fk(\002)18
b Fo(\034)2850 2958 y Fh(2)2906 2946 y Fk(\002)g Fo(\034)3025
2958 y Fh(3)3063 2946 y Fp(\))c Fk(")f Fo(x)p Fp(\))1950
3046 y(\001;)h(\011;)g(\000)f Fk(`)23 b Fo(o)2337 3058
y Fh(2)2398 3046 y Fp(:)g Fg(set)2575 3058 y Fj(<)2631
3046 y Fp(\()p Fo(x)p Fp(\))1950 3145 y(\001)204 b Fk(`)23
b Fo(\034)2333 3157 y Fh(1)2394 3145 y Fp(:)g Fb(T)p
Fo(n)1950 3245 y Fp(\001)204 b Fk(`)23 b Fo(\034)2333
3257 y Fh(2)2394 3245 y Fp(:)g Fb(T)p Fo(m)1950 3345
y Fp(\001)204 b Fk(`)23 b Fo(\034)2333 3357 y Fh(1)2389
3345 y Fk(\002)18 b Fo(\034)2508 3357 y Fh(2)2564 3345
y Fk(\002)g Fo(\034)2683 3357 y Fh(2)2744 3345 y Fp(:)23
b Fb(T)p Fo(k)p 1909 3394 1377 4 v 2020 3473 a Fp(\001;)14
b(\011;)g(\000)22 b Fk(`)h Fo(m)p Fp(`[)p Fo(o)2535 3485
y Fh(1)2591 3473 y Fp(+)18 b Fo(n)g Fp(+)g Fo(k)k Fk(\001)c
Fo(o)2971 3485 y Fh(2)3009 3473 y Fp(])23 b(:)g Fo(\034)3137
3485 y Fh(2)501 3738 y Fp(\001)g Fk(`)g Fo(\034)703 3750
y Fh(1)763 3738 y Fp(:)g Fb(T)p Fo(n)83 b Fp(\001)23
b Fk(`)g Fo(\034)1201 3750 y Fh(2)1261 3738 y Fp(:)g
Fb(T)p Fo(m)426 3838 y Fp(\001;)14 b(\011;)g(\000)23
b Fk(`)g Fo(o)g Fp(:)g Fg(box)o Fp(\()p Fo(\034)1091
3850 y Fh(1)1147 3838 y Fk(\002)18 b Fo(\034)1266 3850
y Fh(2)1322 3838 y Fk(\002)g Fo(\034)1441 3850 y Fh(3)1479
3838 y Fp(\))p 426 3888 1085 4 v 552 3966 a(\001;)c(\011;)g(\000)23
b Fk(`)g Fo(m)p Fp(`[)p Fo(o)18 b Fp(+)g Fo(n)p Fp(])23
b(:)g Fo(\034)1347 3978 y Fh(2)p 1677 3888 622 4 v 1677
3966 a Fp(\001;)14 b(\011;)g(\000)23 b Fk(`)f Fo(r)k
Fp(:)d(\000\()p Fo(r)r Fp(\))2465 3856 y(\001;)14 b(\011;)g(\000)22
b Fk(`)h Fo(o)g Fp(:)g Fo(\034)2975 3826 y Ff(0)3082
3856 y Fp(\001)g Fk(`)g Fo(\034)3293 3826 y Ff(0)3340
3856 y Fk(\024)g Fo(\034)p 2465 3892 1010 4 v 2713 3966
a Fp(\001;)14 b(\011;)g(\000)23 b Fk(`)g Fo(o)g Fp(:)g
Fo(\034)1376 4219 y Fp(\001;)14 b(\011;)g(\000)22 b Fk(`)h
Fo(o)g Fp(:)g Fg(int)82 b Fp(\001)23 b Fk(`)g Fo(x)h
Fp(:)f Fb(W)n(o)n(rd)p 1177 4255 1546 4 v 1177 4334 a
Fp(\001;)14 b(\011;)g(\000)23 b Fk(`)f Fo(o)i Fp(:)f
Fg(set)1774 4346 y Fj(<)1830 4334 y Fp(\()p Fo(x)p Fp(\))c
Fk(_)g Fg(set)2165 4346 y Fh(=)2220 4334 y Fp(\()p Fo(x)p
Fp(\))g Fk(_)g Fg(set)2555 4346 y Fj(>)2611 4334 y Fp(\()p
Fo(x)p Fp(\))p 0 4549 842 4 v 0 4687 4 138 v 28 4644
a FF(\001;)c(\011;)g(\000)26 b Fw(`)e Fy(d)i FF(:)f Fy(\034)36
b Fw(!)25 b FF(\000)790 4611 y Ft(0)p 838 4687 V 0 4690
842 4 v 908 4864 a Fp(\001)e Fk(`)g Fo(\034)33 b Fp(:)23
b Fb(T)p Fo(W)p 680 4884 884 4 v 680 4963 a Fp(\001;)14
b(\011;)g(\000)23 b Fk(`)f Fo(r)k Fp(:)d Fo(\034)33 b
Fk(!)23 b Fp(\000)p Fk(f)p Fo(r)r Fp(:)p Fo(\034)9 b
Fk(g)1730 4843 y Fp(\001)23 b Fk(`)g Fo(\034)32 b Fk(\024)23
b Fg(sptr)n Fp(\()p Fo(\034)2294 4855 y Fh(2)2332 4843
y Fp(\))83 b(\001)24 b Fk(`)f Fp(\000\()p Fg(esp)n Fp(\))h
Fk(\024)e Fo(\034)3007 4855 y Fh(1)3063 4843 y Fk(\002)c
Fo(\034)3182 4855 y Fh(2)p 1730 4884 1491 4 v 1928 4963
a Fp(\001;)c(\011;)g(\000)23 b Fk(`)f Fg(esp)g Fp(:)h
Fo(\034)33 b Fk(!)23 b Fp(\000)p Fk(f)p Fg(esp)n Fp(:)p
Fo(\034)2942 4975 y Fh(2)2980 4963 y Fk(g)876 5220 y
Fp(\001;)14 b(\011;)g(\000)23 b Fk(`)g Fo(o)g Fp(:)g
Fg(mbox)n Fp(\()p Fo(\034)1584 5232 y Fh(1)1641 5220
y Fk(\002)18 b Fo(\034)1760 5232 y Fh(2)1816 5220 y Fk(\002)g
Fo(\034)1935 5232 y Fh(3)1972 5220 y Fp(\))83 b(\001)24
b Fk(`)f Fo(\034)2290 5232 y Fh(1)2350 5220 y Fp(:)g
Fb(T)p Fo(n)83 b Fp(\001)23 b Fk(`)g Fo(\034)2788 5232
y Fh(2)2848 5220 y Fp(:)g Fb(T)p Fo(m)p 876 5261 2148
4 v 1443 5340 a Fp(\001;)14 b(\011;)g(\000)23 b Fk(`)f
Fo(m)p Fp(`[)p Fo(o)d Fp(+)f Fo(n)p Fp(])23 b(:)g Fo(\034)2238
5352 y Fh(2)2299 5340 y Fk(!)g Fp(\000)1905 5589 y FF(54)p
eop
%%Page: 55 57
55 56 bop 1402 245 a Fp(\001)24 b Fk(`)e Fp(\000\()p
Fo(r)r Fp(\))j Fk(\024)d Fg(sptr)o Fp(\()p Fo(\034)2078
257 y Fh(1)2134 245 y Fk(\002)c Fo(\034)2253 257 y Fh(2)2309
245 y Fk(\002)g Fo(\034)2428 257 y Fh(3)2465 245 y Fp(\))1403
344 y(\001)23 b Fk(`)g Fp(\000\()p Fg(esp)o Fp(\))g Fk(\024)g
Fo(\034)28 b Fk(\002)18 b Fo(\034)2110 356 y Fh(1)2166
344 y Fk(\002)g Fo(\034)2285 356 y Fh(2)2341 344 y Fk(\002)g
Fo(\034)2460 356 y Fh(3)1221 444 y Fp(\001)24 b Fk(`)e
Fo(\034)1423 456 y Fh(1)1484 444 y Fp(:)h Fb(T)p Fo(n)82
b Fp(\001)24 b Fk(`)e Fo(\034)1921 456 y Fh(2)1982 444
y Fp(:)h Fb(T)p Fo(m)83 b Fp(\001)23 b Fk(`)g Fo(\034)2452
414 y Ff(0)2443 465 y Fh(2)2503 444 y Fp(:)g Fb(T)p Fo(m)p
659 494 2583 4 v 659 573 a Fp(\001;)14 b(\011;)g(\000)22
b Fk(`)h Fo(m)p Fp(`[)p Fo(r)e Fp(+)d Fo(n)p Fp(])23
b(:)g Fo(\034)1462 543 y Ff(0)1453 593 y Fh(2)1514 573
y Fk(!)g Fp(\000)p Fk(f)p Fg(esp)n Fp(:)p Fo(\034)28
b Fk(\002)18 b Fo(\034)2050 585 y Fh(1)2106 573 y Fk(\002)g
Fo(\034)2234 543 y Ff(0)2225 593 y Fh(2)2281 573 y Fk(\002)g
Fo(\034)2400 585 y Fh(3)2438 573 y Fo(;)c(r)r Fp(:)p
Fg(sptr)o Fp(\()p Fo(\034)2780 585 y Fh(1)2836 573 y
Fk(\002)k Fo(\034)2964 543 y Ff(0)2955 593 y Fh(2)3011
573 y Fk(\002)g Fo(\034)3130 585 y Fh(3)3168 573 y Fp(\))p
Fk(g)1060 822 y Fp(\001)23 b Fk(`)g Fo(\034)1262 834
y Fh(1)1322 822 y Fp(:)h Fb(T)p Fo(n)82 b Fp(\001)23
b Fk(`)g Fo(\034)1760 834 y Fh(2)1821 822 y Fp(:)g Fb(T)p
Fo(m)82 b Fp(\001)23 b Fk(`)g Fo(\034)2281 834 y Fh(1)2337
822 y Fk(\002)18 b Fo(\034)2456 834 y Fh(2)2512 822 y
Fk(\002)g Fo(\034)2631 834 y Fh(2)2692 822 y Fp(:)23
b Fb(T)p Fo(k)834 922 y Fp(\001;)14 b(\011;)g(\000)23
b Fk(`)g Fo(o)1231 934 y Fh(1)1291 922 y Fp(:)g Fg(mbox)o
Fp(\(\()p Fo(\034)1612 934 y Fh(1)1668 922 y Fk(\002)18
b Fo(\034)1787 934 y Fh(2)1843 922 y Fk(\002)g Fo(\034)1962
934 y Fh(3)2000 922 y Fp(\))c Fk(")f Fo(x)p Fp(\))84
b(\001;)14 b(\011;)g(\000)22 b Fk(`)h Fo(o)2660 934 y
Fh(2)2721 922 y Fp(:)g Fg(set)2898 934 y Fj(<)2954 922
y Fp(\()p Fo(x)p Fp(\))p 834 972 2232 4 v 1282 1051 a(\001;)14
b(\011;)g(\000)23 b Fk(`)f Fo(m)p Fp(`[)p Fo(o)1797 1063
y Fh(1)1853 1051 y Fp(+)c Fo(n)h Fp(+)f Fo(k)j Fk(\001)e
Fo(o)2234 1063 y Fh(2)2271 1051 y Fp(])k(:)g Fo(\034)2399
1063 y Fh(2)2460 1051 y Fk(!)g Fp(\000)p 0 1244 494 4
v 0 1375 4 131 v 28 1332 a FF(\001;)15 b(\011;)g(\000)26
b Fw(`)e Fy(I)p 490 1375 V 0 1378 494 4 v 308 1645 a
Fp(\001;)14 b(\011;)g(\000)568 1615 y Ff(0)614 1645 y
Fk(`)22 b Fo(I)90 b Fp(\001)24 b Fk(`)e Fp(\000)h Fk(\024)g
Fp(\000)1194 1615 y Ff(0)p 308 1681 910 4 v 563 1755
a Fp(\001;)14 b(\011;)g(\000)22 b Fk(`)h Fo(I)1516 1532
y Fp(\001;)14 b(\011;)g(\000)22 b Fk(`)h Fo(o)1912 1544
y Fh(1)1973 1532 y Fp(:)g Fg(int)82 b Fp(\001;)14 b(\011;)g(\000)22
b Fk(`)h Fo(o)2629 1544 y Fh(2)2689 1532 y Fp(:)h Fg(int)1425
1631 y Fp(\001;)14 b(\011;)g(\000)22 b Fk(`)h Fo(d)g
Fp(:)g Fg(int)f Fk(!)h Fp(\000)2205 1601 y Ff(0)2312
1631 y Fp(\001;)14 b(\011;)g(\000)2572 1601 y Ff(0)2594
1631 y Fk(f)p Fg(ck)o Fp(:)p Fo(t)p Fk(g)23 b(`)f Fo(I)p
1383 1681 1616 4 v 1762 1755 a Fp(\001;)14 b(\011;)g(\000)23
b Fk(`)g Fg(add)j Fo(d;)14 b(o)2397 1767 y Fh(1)2435
1755 y Fo(;)g(o)2512 1767 y Fh(2)2577 1755 y Fo(I)3040
1702 y Fp(\(\000\()p Fg(ck)p Fp(\))23 b(=)g(1)18 b(+)g
Fo(t)p Fp(\))938 2000 y(\001;)c(\011;)g(\000)23 b Fk(`)g
Fo(o)g Fp(:)g Fg(sptr)n Fp(\()p Fo(\034)1646 2012 y Fh(1)1703
2000 y Fk(\002)18 b Fo(\034)1822 2012 y Fh(2)1859 2000
y Fp(\))83 b(\001)24 b Fk(`)f Fo(\034)2177 2012 y Fh(1)2237
2000 y Fp(:)g Fb(T)p Fo(i)542 2100 y Fp(\001)g Fk(`)g
Fo(\034)744 2112 y Fh(2)805 2100 y Fp(:)g Fb(TD)82 b
Fp(\001;)14 b(\011;)g(\000)23 b Fk(`)g Fo(d)g Fp(:)g
Fg(sptr)n Fp(\()p Fo(\034)1761 2112 y Fh(2)1799 2100
y Fp(\))g Fk(!)h Fp(\000)2013 2070 y Ff(0)2119 2100 y
Fp(\001;)14 b(\011;)g(\000)2379 2070 y Ff(0)2402 2100
y Fk(f)p Fg(ck)n Fp(:)p Fo(t)p Fk(g)23 b(`)g Fo(I)p 542
2150 2223 4 v 1181 2224 a Fp(\001;)14 b(\011;)g(\000)22
b Fk(`)h Fg(addsptr)i Fo(d;)14 b(o;)g(i)27 b(I)2806 2170
y Fp(\(\000\()p Fg(ck)p Fp(\))c(=)g(1)18 b(+)g Fo(t)p
Fp(\))1078 2471 y(\001)1147 2441 y Ff(0)1170 2471 y Fp(;)c(\011;)g
(\000)1361 2483 y Fa(r)m(et)1473 2471 y Fk(`)23 b Fo(I)90
b Fp(\001)1742 2441 y Ff(0)1789 2471 y Fk(`)23 b Fp(\000)1915
2483 y Fa(r)m(et)2087 2471 y Fp(\001;)14 b(\011;)g(\000)2347
2441 y Ff(0)2393 2471 y Fk(`)23 b Fo(o)g Fp(:)g(\000)2628
2441 y Ff(0)2675 2471 y Fk(!)g Fp(0)1124 2571 y(\(\000\()p
Fg(ck)p Fp(\))g(=)g(1)18 b(+)g Fo(t)p Fp(\))83 b(\(\001)1860
2541 y Ff(0)1907 2571 y Fp(=)23 b(\001)p Fo(;)14 b(\013)2154
2583 y Fh(1)2191 2571 y Fp(:)p Fo(K)2285 2583 y Fh(1)2322
2571 y Fo(;)g(:)g(:)g(:)f(;)h(\013)2559 2583 y Fj(n)2605
2571 y Fp(:)p Fo(K)2699 2583 y Fj(n)2743 2571 y Fp(\))924
2670 y(\(\000)1008 2640 y Ff(0)1054 2670 y Fp(=)23 b(\000)p
Fk(f)p Fg(sp)n Fp(:\()p Fk(8)p Fo(\013)1476 2682 y Fh(1)1514
2670 y Fp(:)p Fo(K)1608 2682 y Fh(1)1659 2670 y Fo(:)14
b(:)g(:)f Fk(8)p Fo(\013)1868 2682 y Fj(n)1914 2670 y
Fp(:)p Fo(K)2008 2682 y Fj(n)2053 2670 y Fo(:)p Fp(\000)2128
2682 y Fa(r)m(et)2241 2670 y Fk(!)23 b Fp(0\))18 b Fk(\002)g
Fp(\000\()p Fg(sp)o Fp(\))p Fo(;)c Fg(ck)p Fp(:)p Fo(t)p
Fk(g)p Fp(\))p 882 2720 2136 4 v 1618 2795 a(\001;)g(\011;)g(\000)22
b Fk(`)h Fg(call)12 b Fo(o)p Fp(;)i Fo(I)625 3032 y Fp(\001;)g(\011;)g
(\000)23 b Fk(`)g Fo(o)1022 3044 y Fh(1)1082 3032 y Fp(:)g
Fg(int)82 b Fp(\001;)14 b(\011;)g(\000)23 b Fk(`)f Fo(o)1738
3044 y Fh(2)1799 3032 y Fp(:)h Fg(int)82 b Fp(\001;)14
b(\011;)g(\000)p Fk(f)p Fg(ck)n Fp(:)p Fo(t)p Fk(g)23
b(`)f Fo(I)p 625 3073 2057 4 v 1265 3147 a Fp(\001;)14
b(\011;)g(\000)22 b Fk(`)h Fg(cmp)j Fo(o)1819 3159 y
Fh(1)1857 3147 y Fo(;)14 b(o)1934 3159 y Fh(2)1999 3147
y Fo(I)2723 3093 y Fp(\(\000\()p Fg(ck)o Fp(\))24 b(=)e(1)c(+)g
Fo(t)p Fp(\))1674 3394 y(\(\000\()p Fg(ck)p Fp(\))23
b(=)g(2)18 b(+)g Fo(t)p Fp(\))1665 3494 y(\(\000\()p
Fo(r)r Fp(\))24 b(=)f Fo(\034)2000 3506 y Fh(1)2056 3494
y Fk(_)c Fo(\034)2166 3506 y Fh(2)2203 3494 y Fp(\))1195
3593 y(\001;)14 b(\011;)g(\000)410 b Fk(`)23 b Fo(o)1979
3605 y Fh(1)2039 3593 y Fp(:)h Fg(int)1195 3693 y Fp(\001;)14
b(\011;)g(\000)410 b Fk(`)23 b Fo(o)1979 3705 y Fh(2)2039
3693 y Fp(:)h Fg(set)2216 3705 y Fh(=)2271 3693 y Fp(\()p
Fo(x)p Fp(\))1195 3793 y(\001)601 b Fk(`)23 b Fo(\034)1975
3805 y Fh(1)2031 3793 y Fk(_)c Fo(\034)2141 3805 y Fh(2)2201
3793 y Fp(:)k Fb(T)p Fo(W)1195 3892 y Fp(\001;)14 b(\011;)g(\000)p
Fk(f)p Fo(r)r Fp(:)p Fo(\034)1595 3904 y Fh(1)1633 3892
y Fk(g)190 b(`)23 b Fo(o)1979 3904 y Fh(1)2039 3892 y
Fp(:)h Fo(\034)2131 3862 y Ff(0)2122 3913 y Fh(1)1195
3992 y Fp(\001;)14 b(\011;)g(\000)p Fk(f)p Fo(r)r Fp(:)p
Fo(\034)1595 4004 y Fh(2)1633 3992 y Fk(g)190 b(`)23
b Fo(o)1979 4004 y Fh(1)2039 3992 y Fp(:)h Fo(\034)2131
3962 y Ff(0)2122 4012 y Fh(2)1195 4091 y Fp(\001)601
b Fk(`)23 b Fo(\034)1984 4061 y Ff(0)1975 4112 y Fh(1)2031
4091 y Fk(^)c Fo(\034)2150 4052 y Fj(\024;x)2141 4112
y Fa(unsat)2335 4091 y Fk(\024)k Fg(void)1195 4191 y
Fp(\001)601 b Fk(`)23 b Fo(\034)1984 4161 y Ff(0)1975
4212 y Fh(2)2031 4191 y Fk(^)c Fo(\034)2150 4151 y Fj(\024;x)2141
4212 y Fa(sat)2274 4191 y Fk(\024)j Fg(void)1195 4291
y Fp(\001;)14 b(\011;)g(\000)410 b Fk(`)23 b Fo(o)1979
4303 y Fh(3)2039 4291 y Fp(:)h(\000)p Fk(f)p Fo(r)r Fp(:)p
Fo(\034)2278 4303 y Fh(1)2315 4291 y Fo(;)14 b Fg(ck)o
Fp(:)p Fo(t)p Fk(g)23 b(!)g Fp(0)1195 4390 y(\001;)14
b(\011;)g(\000)p Fk(f)p Fo(r)r Fp(:)p Fo(\034)1595 4402
y Fh(2)1633 4390 y Fo(;)g Fg(ck)o Fp(:)p Fo(t)p Fk(g)f(`)23
b Fo(I)p 1154 4440 1593 4 v 1396 4514 a Fp(\001;)14 b(\011;)g(\000)23
b Fk(`)g Fg(cmpjcc)i Fo(o)2082 4526 y Fh(1)2119 4514
y Fo(;)14 b(o)2196 4526 y Fh(2)2234 4514 y Fo(;)g(\024;)g(o)2396
4526 y Fh(3)2461 4514 y Fo(I)812 4754 y Fp(\001;)g(\011;)g(\000)23
b Fk(`)g Fo(o)g Fp(:)g(\(\000)p Fk(f)p Fg(ck)o Fp(:)p
Fo(t)p Fk(g)p Fp(\))g Fk(!)g Fp(0)83 b(\001;)14 b(\011;)g(\000)p
Fk(f)p Fg(ck)n Fp(:)p Fo(t)p Fk(g)22 b(`)h Fo(I)p 812
4795 1682 4 v 1294 4869 a Fp(\001;)14 b(\011;)g(\000)22
b Fk(`)h Fg(jcc)j Fo(\024;)14 b(o)p Fp(;)g Fo(I)2536
4816 y Fp(\(\000\()p Fg(ck)o Fp(\))24 b(=)e(1)c(+)g Fo(t)p
Fp(\))36 5225 y(\001;)c(\011;)g(\000)22 b Fk(`)h Fo(o)g
Fp(:)g(\(\000)p Fk(f)p Fg(ck)o Fp(:)p Fo(t)p Fk(g)p Fp(\))g
Fk(!)g Fp(0)p 36 5266 977 4 v 246 5340 a(\001;)14 b(\011;)g(\000)23
b Fk(`)g Fg(jmp)j Fo(o)1053 5286 y Fp(\(\000\()p Fg(ck)p
Fp(\))d(=)g(1)18 b(+)g Fo(t)p Fp(\))2223 5116 y(\001;)c(\011;)g(\000)22
b Fk(`)h Fo(o)g Fp(:)h Fg(got)1771 5216 y Fp(\001;)14
b(\011;)g(\000)p Fk(f)p Fo(r)r Fp(:)p Fg(nsw)o Fo(;)g
Fg(ck)o Fp(:)p Fo(t)p Fk(g)22 b(`)h Fo(I)35 b Fp(inits)28
b Fo(r)r Fp(:)p Fg(mbox)o Fp(\()p Fg(ns)3193 5186 y Fj(n)3239
5216 y Fp(\))p 1771 5266 1500 4 v 2061 5340 a(\001;)14
b(\011;)g(\000)23 b Fk(`)f Fg(malloc)k Fo(o;)14 b(n;)g(r)30
b(I)3312 5286 y Fp(\(\000\()p Fg(ck)p Fp(\))23 b(=)g(1)18
b(+)g Fo(t)p Fp(\))1905 5589 y FF(55)p eop
%%Page: 56 58
56 57 bop 1336 252 a Fp(\001;)14 b(\011;)g(\000)23 b
Fk(`)g Fo(o)1733 264 y Fh(1)1793 252 y Fp(:)g Fg(got)776
352 y Fp(\001;)14 b(\011;)g(\000)22 b Fk(`)h Fo(o)1172
364 y Fh(2)1233 352 y Fp(:)g Fg(set)1409 364 y Fh(=)1465
352 y Fp(\()p Fo(x)p Fp(\))84 b(\001;)14 b(\011;)g(\000)p
Fk(f)p Fo(r)24 b Fp(:)f Fg(nsw)o Fk(g)g(`)g Fo(o)2379
364 y Fh(3)2439 352 y Fp(:)g Fo(\034)856 452 y Fp(\001)h
Fk(`)e Fo(\034)33 b Fp(:)23 b Fb(T)p Fo(n)83 b Fp(\001;)14
b(\011;)g(\000)p Fk(f)p Fo(r)r Fp(:)p Fg(mbox)n Fp(\()p
Fo(\034)24 b Fk(")13 b Fo(x)p Fp(\))p Fo(;)h Fg(ck)p
Fp(:)p Fo(t)p Fk(g)22 b(`)h Fo(I)p 776 501 1756 4 v 997
576 a Fp(\001;)14 b(\011;)g(\000)23 b Fk(`)g Fg(mallocarr)h
Fo(o)1814 588 y Fh(1)1851 576 y Fo(;)14 b(r)n(;)g(n;)g(o)2087
588 y Fh(2)2124 576 y Fo(;)g(o)2201 588 y Fh(3)2266 576
y Fo(I)2572 522 y Fp(\(\000\()p Fg(ck)p Fp(\))23 b(=)g(1)18
b(+)g Fo(t)p Fp(\))768 836 y(\(\000\()p Fg(ck)o Fp(\))24
b(=)e(1)c(+)g Fo(t)p Fp(\))154 936 y(\001)24 b Fk(`)e
Fp(\000\()p Fg(esp)o Fp(\))i Fk(\024)e Fo(\034)714 948
y Fh(1)770 936 y Fk(\002)c Fo(\034)889 948 y Fh(2)1010
936 y Fp(\001)23 b Fk(`)g Fo(\034)1212 948 y Fh(1)1272
936 y Fp(:)h Fb(T)p Fo(n)82 b Fp(\001)23 b Fk(`)g Fo(\034)1710
948 y Fh(2)1771 936 y Fp(:)g Fb(TD)151 1035 y Fp(\001;)14
b(\011;)g(\000)p Fk(f)p Fg(esp)n Fp(:)p Fo(\034)642 1047
y Fh(2)679 1035 y Fk(g)23 b(`)f Fo(d)i Fp(:)f Fo(\034)966
1047 y Fh(1)1026 1035 y Fk(!)h Fp(\000)1185 1005 y Ff(0)1291
1035 y Fp(\001;)14 b(\011;)g(\000)1551 1005 y Ff(0)1574
1035 y Fk(f)p Fg(ck)n Fp(:)p Fo(t)p Fk(g)23 b(`)g Fo(I)p
151 1085 1786 4 v 686 1159 a Fp(\001;)14 b(\011;)g(\000)23
b Fk(`)f Fg(pop)27 b Fo(n;)14 b(d)27 b(I)2353 936 y Fp(\(\000\()p
Fg(ck)o Fp(\))d(=)e(1)c(+)g Fo(t)p Fp(\))84 b(\001;)14
b(\011;)g(\000)22 b Fk(`)h Fo(o)g Fp(:)g Fo(\034)2103
1035 y Fp(\001)g Fk(`)g Fo(\034)32 b Fp(:)24 b Fb(TD)82
b Fp(\001;)14 b(\011;)g(\000)p Fk(f)p Fg(esp)n Fp(:)p
Fo(\034)28 b Fk(\002)18 b Fp(\000\()p Fg(esp)o Fp(\))p
Fo(;)c Fg(ck)o Fp(:)p Fo(t)23 b Fk(`)g Fo(I)p 2103 1085
1647 4 v 2591 1159 a Fp(\001;)14 b(\011;)g(\000)23 b
Fk(`)g Fg(push)j Fo(o)i(I)733 1414 y Fp(\001)23 b Fk(`)g
Fp(\000\()p Fg(sp)o Fp(\))g Fk(\024)g Fp(\(\000)p Fk(f)p
Fo(sp)p Fp(:)p Fo(\034)5 b(;)14 b Fg(ck)o Fp(:)p Fo(t)p
Fk(g)22 b(!)h Fp(0\))18 b Fk(\002)g Fo(\034)93 b Fp(\001)23
b Fk(`)g Fo(\034)33 b Fp(:)23 b Fb(TD)83 b Fp(\(\000\()p
Fg(ck)o Fp(\))24 b(=)e(1)c(+)g Fo(t)p Fp(\))p 733 1455
2435 4 v 1706 1529 a(\001;)c(\011;)g(\000)23 b Fk(`)g
Fg(ret)894 1889 y Fp(\(\000\()p Fg(ck)o Fp(\))h(=)e(1)c(+)g
Fo(t)p Fp(\))522 1989 y(\001;)c(\011;)g(\000)p Fk(f)p
Fg(esp)n Fp(:)p Fg(ns)1064 1959 y Fj(n)1128 1989 y Fk(\002)k
Fp(\000\()p Fg(esp)o Fp(\))p Fo(;)c Fg(ck)o Fp(:)p Fo(t)p
Fk(g)23 b(`)g Fo(I)p 522 2039 1295 4 v 786 2113 a Fp(\001;)14
b(\011;)g(\000)23 b Fk(`)g Fg(salloc)i Fo(n)i(I)2404
1789 y Fp(\(\000\()p Fg(ck)p Fp(\))c(=)g(1)18 b(+)g Fo(t)p
Fp(\))2045 1889 y(\001)23 b Fk(`)g Fp(\000\()p Fg(esp)o
Fp(\))g Fk(\024)g Fo(\034)2605 1901 y Fh(1)2661 1889
y Fk(\002)18 b Fo(\034)2780 1901 y Fh(2)2900 1889 y Fp(\001)24
b Fk(`)e Fo(\034)3102 1901 y Fh(1)3163 1889 y Fp(:)h
Fb(T)p Fo(n)1983 1989 y Fp(\001)g Fk(`)g Fo(\034)2185
2001 y Fh(2)2245 1989 y Fp(:)g Fb(TD)83 b Fp(\001;)14
b(\011;)g(\000)p Fk(f)p Fg(esp)n Fp(:)p Fo(\034)2982
2001 y Fh(2)3019 1989 y Fo(;)g Fg(ck)o Fp(:)p Fo(t)p
Fk(g)23 b(`)g Fo(I)p 1983 2039 1396 4 v 2319 2113 a Fp(\001;)14
b(\011;)g(\000)22 b Fk(`)h Fg(sfree)j Fo(n)h(I)1230 2373
y Fp(\(\000\()p Fg(ck)p Fp(\))c(=)g(1)18 b(+)g Fo(t)p
Fp(\))831 2473 y(\001;)c(\011;)g(\000)22 b Fk(`)h Fo(o)1227
2485 y Fh(1)1288 2473 y Fp(:)g Fg(int)81 b Fp(\001;)14
b(\011;)g(\000)23 b Fk(`)g Fo(o)1944 2485 y Fh(2)2004
2473 y Fp(:)g Fg(int)740 2572 y Fp(\001;)14 b(\011;)g(\000)22
b Fk(`)h Fo(d)g Fp(:)g Fg(int)f Fk(!)h Fp(\000)1520 2542
y Ff(0)1626 2572 y Fp(\001;)14 b(\011;)g(\000)1886 2542
y Ff(0)1909 2572 y Fk(f)p Fg(ck)o Fp(:)p Fo(t)p Fk(g)22
b(`)h Fo(I)p 698 2622 1616 4 v 1077 2696 a Fp(\001;)14
b(\011;)g(\000)23 b Fk(`)g Fg(sub)j Fo(d;)14 b(o)1712
2708 y Fh(1)1750 2696 y Fo(;)g(o)1827 2708 y Fh(2)1892
2696 y Fo(I)2543 2469 y Fp(\001;)g(\011;)g(\000)22 b
Fk(`)h Fo(o)g Fp(:)g Fg(got)2511 2572 y Fp(\001;)14 b(\011;)g(\000)p
Fk(f)p Fg(ck)n Fp(:)p 2922 2506 67 4 v Fo(Y)19 b Fk(g)k(`)f
Fo(I)p 2480 2622 723 4 v 2480 2696 a Fp(\001;)14 b(\011;)g(\000)22
b Fk(`)h Fg(yield)j Fo(o)p Fp(;)14 b Fo(I)692 2959 y
Fp(\001;)g(\011;)g(\000)p Fk(f)p Fg(r)1037 2971 y Fj(d)1075
2959 y Fp(:)p Fg(B)p Fc(W)p Fo(;)g Fg(ck)o Fp(:)p Fo(t)p
Fk(g)23 b(`)f Fo(I)142 3059 y Fp(\001;)14 b(\011;)g(\000)23
b Fk(`)f Fo(o)538 3071 y Fh(3)599 3059 y Fp(:)h Fk(8)p
Fo(a)p Fp(:)p Fb(N)p Fo(:)p Fp(\()p Fo(u)g Fp(=)f Fo(v)g
Fp(+)c Fo(a)p Fp(\))23 b Fk(\))h Fp(\000)p Fk(f)p Fg(r)1517
3071 y Fj(d)1556 3059 y Fp(:)p Fk(S)6 b Fp(\()p Fo(a)p
Fp(\))p Fo(;)14 b Fg(ck)p Fp(:)p Fo(t)p Fk(g)23 b(!)g
Fp(0)109 3158 y(\001;)14 b(\011;)g(\000)23 b Fk(`)g Fo(o)506
3170 y Fh(1)566 3158 y Fp(:)g Fk(S)6 b Fp(\()p Fo(u)p
Fp(\))84 b(\001;)14 b(\011;)g(\000)23 b Fk(`)f Fo(o)1260
3170 y Fh(2)1321 3158 y Fp(:)h Fk(S)6 b Fp(\()p Fo(v)s
Fp(\))84 b(\(\000\()p Fg(ck)p Fp(\))23 b(=)g(2)18 b(+)g
Fo(t)p Fp(\))p 68 3208 2140 4 v 562 3282 a(\001;)c(\011;)g(\000)23
b Fk(`)g Fg(subjae)i(r)1251 3294 y Fj(d)1290 3282 y Fo(;)14
b(o)1367 3294 y Fh(1)1405 3282 y Fo(;)g(o)1482 3294 y
Fh(2)1519 3282 y Fo(;)g(o)1596 3294 y Fh(3)1633 3282
y Fp(;)g Fo(I)2374 3167 y Fp(\000\()p Fo(r)r Fp(\))24
b(=)f Fk(9)p Fo(\013)p Fp(:)p Fo(K)q(:\034)93 b Fp(\(\001)p
Fo(;)14 b(\013)p Fp(:)p Fo(K)6 b Fp(\);)14 b(\011;)g(\000)p
Fk(f)p Fo(r)r Fp(:)p Fo(\034)9 b Fk(g)23 b(`)g Fo(I)p
2374 3208 1459 4 v 2903 3282 a Fp(\001;)14 b(\011;)g(\000)23
b Fk(`)g Fo(I)p 0 3495 1107 4 v 0 3636 4 141 v 28 3588
a FF(\001;)15 b(\011;)g(\000)26 b Fw(`)e Fy(I)38 b FF(inits)30
b Fy(r)s FF(:)p Fz(mbox)o FF(\()p Fy(\034)10 b FF(\))p
1104 3636 V 0 3639 1107 4 v 1221 3818 a(\001)25 b Fw(`)g
Fy(\034)35 b Fw(\024)25 b Fy(\034)1614 3832 y Fv(1)1673
3818 y Fw(\002)20 b Fy(\034)1804 3832 y Fv(2)1863 3818
y Fw(\002)g Fy(\034)1994 3832 y Fv(3)831 3931 y FF(\001)25
b Fw(`)g Fy(\034)1053 3945 y Fv(1)1117 3931 y FF(:)h
Fs(T)p Fy(n)90 b FF(\001)25 b Fw(`)g Fy(\034)1597 3945
y Fv(2)1661 3931 y FF(:)h Fs(T)p Fy(m)91 b FF(\001)25
b Fw(`)f Fy(\034)2176 3898 y Ft(0)2166 3955 y Fv(2)2231
3931 y FF(:)h Fs(T)p Fy(m)435 4043 y FF(\001;)15 b(\011;)g(\000)25
b Fw(`)g Fy(o)g FF(:)h Fy(\034)995 4010 y Ft(0)985 4068
y Fv(2)1115 4043 y FF(\001;)15 b(\011;)g(\000)p Fw(f)p
Fz(ck)p FF(:)p Fy(t)p Fw(g)26 b(`)e Fy(I)38 b FF(inits)30
b Fy(r)s FF(:)p Fz(mbox)o FF(\()p Fy(\034)2364 4057 y
Fv(1)2424 4043 y Fw(\002)20 b Fy(\034)2565 4010 y Ft(0)2555
4068 y Fv(2)2614 4043 y Fw(\002)g Fy(\034)2745 4057 y
Fv(3)2784 4043 y FF(\))p 435 4097 2385 4 v 879 4182 a(\001)25
b Fw(`)g Fz(mov)30 b Fy(m)p FF(`[)p Fy(r)23 b FF(+)d
Fy(n)p FF(])p Fy(;)15 b(o)30 b(I)38 b FF(inits)30 b Fy(r)s
FF(:)p Fz(mbox)o FF(\()p Fy(\034)10 b FF(\))2861 4120
y(\(\000\()p Fz(ck)p FF(\))26 b(=)f(1)20 b(+)g Fy(t)p
FF(\))605 4475 y(\001)25 b Fw(`)f Fy(\034)36 b Fw(\024)25
b Fy(\034)998 4489 y Fv(1)1057 4475 y Fw(\002)20 b Fy(\034)1188
4489 y Fv(2)1247 4475 y Fw(\002)g Fy(\034)1378 4489 y
Fv(3)500 4588 y FF(\001)25 b Fw(`)f Fy(\034)721 4602
y Fv(1)786 4588 y FF(:)h Fs(T)p Fy(n)91 b FF(\001)25
b Fw(`)g Fy(\034)1266 4602 y Fv(2)1330 4588 y FF(:)h
Fs(T)p Fy(m)33 4701 y FF(\001)f Fw(`)g FF(\000\()p Fz(esp)o
FF(\))h Fw(\024)f Fy(\034)657 4668 y Ft(0)647 4725 y
Fv(2)706 4701 y Fw(\002)20 b Fy(\034)847 4668 y Ft(0)961
4701 y FF(\001)25 b Fw(`)g Fy(\034)1193 4668 y Ft(0)1183
4725 y Fv(2)1247 4701 y FF(:)h Fs(T)p Fy(m)91 b FF(\001)25
b Fw(`)f Fy(\034)1762 4668 y Ft(0)1811 4701 y FF(:)h
Fs(TD)18 4814 y FF(\001;)15 b(\011;)g(\000)p Fw(f)p Fz(esp)o
FF(:)p Fy(\034)565 4781 y Ft(0)589 4814 y Fy(;)g Fz(ck)p
FF(:)p Fy(t)p Fw(g)25 b(`)g Fy(I)38 b FF(inits)30 b Fy(r)s
FF(:)p Fz(mbox)o FF(\()p Fy(\034)1549 4828 y Fv(1)1609
4814 y Fw(\002)20 b Fy(\034)1750 4781 y Ft(0)1740 4838
y Fv(2)1799 4814 y Fw(\002)g Fy(\034)1930 4828 y Fv(3)1969
4814 y FF(\))p 18 4867 1987 4 v 245 4952 a(\001)25 b
Fw(`)g Fz(pop)k Fy(m;)15 b(m)p FF(`[)p Fy(o)21 b FF(+)f
Fy(n)p FF(])30 b Fy(I)38 b FF(inits)30 b Fy(r)s FF(:)p
Fz(mbox)o FF(\()p Fy(\034)10 b FF(\))2046 4890 y(\(\000\()p
Fz(ck)p FF(\))25 b(=)g(1)c(+)f Fy(t)p FF(\))2903 4825
y(\001;)15 b(\011;)g(\000)p Fw(f)p Fy(r)s FF(:)p Fz(mbox)o
FF(\()p Fy(\034)10 b FF(\))p Fw(g)27 b(`)d Fy(I)p 2832
4867 1051 4 v 2832 4952 a FF(\001;)15 b(\011;)g(\000)25
b Fw(`)g Fy(I)38 b FF(inits)30 b Fy(r)s FF(:)p Fz(mbox)o
FF(\()p Fy(\034)10 b FF(\))p 0 5177 997 4 v 0 5308 4
131 v 28 5265 a(\011;)15 b(\001)25 b Fw(`)g Fy(I)33 b
FF(:)25 b Fy(\034)40 b Fs(blo)s(ck)92 b Fw(`)25 b Fy(P)p
993 5308 V 0 5311 997 4 v 1905 5589 a FF(56)p eop
%%Page: 57 59
57 58 bop 310 259 a FF(\011;)15 b(\(\001)p Fy(;)g(\013)p
FF(:)p Fy(K)7 b FF(\))26 b Fw(`)f Fy(I)32 b FF(:)26 b
Fy(\034)40 b Fs(blo)s(ck)p 310 302 977 4 v 330 382 a
FF(\011;)15 b(\001)25 b Fw(`)g Fy(I)32 b FF(:)26 b Fw(8)p
Fy(\013)p FF(:)p Fy(K)q(:\034)41 b Fs(blo)s(ck)1468 259
y FF(\011;)15 b(\(\001)p Fy(;)g(')31 b Fs(true)p FF(\))26
b Fw(`)f Fy(I)32 b FF(:)25 b Fy(\034)41 b Fs(blo)s(ck)p
1468 302 1050 4 v 1543 382 a FF(\011;)15 b(\001)25 b
Fw(`)g Fy(I)32 b FF(:)26 b Fy(')g Fw(\))f Fy(\034)40
b Fs(blo)s(ck)2926 264 y FF(\011;)15 b(\001;)g(\000)26
b Fw(`)e Fy(I)p 2699 302 892 4 v 2699 382 a FF(\011;)15
b(\001)25 b Fw(`)g Fy(I)32 b FF(:)26 b(\000)f Fw(!)g
FF(0)31 b Fs(blo)s(ck)1470 669 y FF(\(dom\(\011\))26
b(=)f Fw(f)p Fy(`)2023 683 y Fv(1)2062 669 y Fy(;)15
b(:)g(:)g(:)i(;)e(`)2302 683 y Fx(n)2349 669 y Fw(g)p
FF(\))1177 782 y Fw(`)24 b FF(\011)91 b(\(\011\()p Fy(`)1598
796 y Fv(1)1638 782 y FF(\))25 b(=)g Fw(f)p Fz(ebx)p
FF(:)p Fz(got)o Fy(;)15 b Fz(esp)p FF(:)p Fz(B0)p Fw(g)25
b(!)h FF(0\))1266 895 y(\011;)15 b Fw(\001)25 b(`)g Fy(I)1548
909 y Fx(i)1601 895 y FF(:)h(\011\()p Fy(`)1796 909 y
Fx(i)1824 895 y FF(\))31 b Fs(blo)s(ck)g FF(for)f(1)25
b Fw(\024)g Fy(i)h Fw(\024)f Fy(n)p 1135 949 1630 4 v
1415 1029 a Fw(`)g Fy(`)1534 1043 y Fv(1)1573 1029 y
FF(:)p Fy(\034)1638 1043 y Fv(1)1703 1029 y FF(=)g Fy(I)1839
1043 y Fv(1)1878 1029 y Fy(;)15 b(:)g(:)g(:)i(;)e(`)2118
1043 y Fx(n)2165 1029 y FF(:)p Fy(\034)2230 1043 y Fx(n)2302
1029 y FF(=)25 b Fy(I)2438 1043 y Fx(n)0 1315 y FC(B)134
b(T)l(yping)45 b(Rules)g(for)h(Lilt)p 0 1539 1422 4 v
0 1652 4 113 v 28 1628 a FF(\001)25 b Fw(`)g FF(\000)121
b(\001)25 b Fw(`)g FF(\004)121 b(\001)25 b Fw(`)g FF(\004)k
Fs(handles)h FF(\000)p 1418 1652 V 0 1655 1422 4 v 724
1819 a(\001)25 b Fw(`)g Fy(\034)946 1833 y Fv(1)1010
1819 y FF(:)h Fy(T)43 b FF(for)30 b(1)c Fw(\024)f Fy(i)g
Fw(\024)g Fy(n)p 724 1852 946 4 v 786 1937 a FF(\001)g
Fw(`)f FF([)p Fy(s)1035 1951 y Fv(1)1075 1937 y FF(:)p
Fy(\034)1140 1951 y Fv(1)1179 1937 y Fy(;)15 b(:)g(:)g(:)i(;)e(s)1424
1951 y Fx(n)1471 1937 y FF(:)p Fy(\034)1536 1951 y Fx(n)1583
1937 y FF(])p 2033 1857 208 4 v 425 w(\001)25 b Fw(`)g(\001)2604
1837 y FF(\001)g Fw(`)g FF(\004)90 b(\001)25 b Fw(`)g
FF(\000)p 2604 1857 572 4 v 2720 1937 a(\001)g Fw(`)g
FF(\004)p Fy(;)15 b FF(\000)p 1049 2259 607 4 v 1049
2339 a(\001)25 b Fw(`)g(\001)30 b Fs(handles)g FF(\000)2215
2220 y(\001)25 b Fw(`)g FF(\000)g Fw(\024)g FF(\000)2632
2187 y Ft(0)p 2019 2253 833 4 v 2019 2339 a FF(\001)g
Fw(`)f FF(\(\004)p Fy(;)15 b FF(\000)2393 2306 y Ft(0)2417
2339 y FF(\))30 b Fs(handles)g FF(\000)p 0 2565 1759
4 v 0 2691 4 127 v 28 2653 a(\001)25 b Fw(`)g Fy(\034)250
2667 y Fv(1)314 2653 y Fw(\024)g Fy(\034)450 2667 y Fv(2)611
2653 y FF(\001)g Fw(`)g FF(\000)850 2667 y Fv(1)914 2653
y Fw(\024)g FF(\000)1067 2667 y Fv(2)1228 2653 y FF(\001)g
Fw(`)f FF(\004)1470 2667 y Fv(1)1535 2653 y Fw(\024)h
FF(\004)1692 2667 y Fv(2)p 1756 2691 V 0 2694 1759 4
v 1001 2857 a FF(\001)g Fw(`)g Fy(\034)1223 2871 y Fv(1)1288
2857 y FF(=)g Fy(\034)1424 2871 y Fv(2)1488 2857 y FF(:)g
Fy(T)p 1001 2891 603 4 v 1072 2970 a FF(\001)g Fw(`)g
Fy(\034)1294 2984 y Fv(1)1358 2970 y Fw(\024)g Fy(\034)1494
2984 y Fv(2)1786 2857 y FF(\001)g Fw(`)g Fy(\034)2008
2871 y Fv(1)2072 2857 y FF(:)h Fy(T)103 b FF(\001)25
b Fw(`)g Fy(\034)2501 2871 y Fv(2)2566 2857 y FF(=)g
Fz(ns)f FF(:)i Fy(T)p 1786 2891 1113 4 v 2112 2970 a
FF(\001)f Fw(`)f Fy(\034)2333 2984 y Fv(1)2398 2970 y
Fw(\024)h Fy(\034)2534 2984 y Fv(2)553 3245 y FF(\001)g
Fw(`)g Fy(\034)775 3259 y Fx(i)828 3245 y Fw(\024)g Fy(\034)974
3212 y Ft(0)964 3270 y Fx(i)1027 3245 y FF(for)31 b(1)25
b Fw(\024)g Fy(i)h Fw(\024)f Fy(n)p 255 3290 1585 4 v
255 3377 a FF(\001)g Fw(`)f FF([)p Fy(s)504 3391 y Fv(1)544
3377 y FF(:)p Fy(\034)609 3391 y Fv(1)648 3377 y Fy(;)15
b(:)g(:)g(:)i(;)e(s)893 3391 y Fx(n)940 3377 y FF(:)p
Fy(\034)1005 3391 y Fx(n)1052 3377 y FF(])25 b Fw(\024)g
FF([)p Fy(s)1266 3391 y Fv(1)1305 3377 y FF(:)p Fy(\034)1380
3344 y Ft(0)1370 3401 y Fv(1)1410 3377 y Fy(;)15 b(:)g(:)g(:)h(;)f(s)
1654 3391 y Fx(n)1701 3377 y FF(:)p Fy(\034)1776 3344
y Ft(0)1766 3399 y Fx(n)1813 3377 y FF(])p 2021 3297
354 4 v 183 w(\001)25 b Fw(`)f(\001)i(\024)f(\001)2556
3258 y FF(\001)g Fw(`)g FF(\004)2799 3272 y Fv(1)2863
3258 y Fw(\024)g FF(\004)3020 3272 y Fv(2)3150 3258 y
FF(\001)g Fw(`)g FF(\000)3389 3272 y Fv(2)3453 3258 y
Fw(\024)g FF(\000)3606 3272 y Fv(1)p 2556 3292 1090 4
v 2642 3377 a FF(\001)g Fw(`)g FF(\(\004)2920 3391 y
Fv(1)2959 3377 y Fy(;)15 b FF(\000)3056 3391 y Fv(1)3096
3377 y FF(\))25 b Fw(\024)g FF(\(\004)3348 3391 y Fv(2)3388
3377 y Fy(;)15 b FF(\000)3485 3391 y Fv(2)3524 3377 y
FF(\))p 0 3604 404 4 v 0 3717 4 113 v 28 3692 a(\001)25
b Fw(`)g Fy(c)h FF(:)f Fy(k)p 400 3717 V 0 3720 404 4
v 398 3888 a FF(\(\()p Fy(\013)p FF(:)p Fy(k)s FF(\))j
Fw(2)c FF(\001\))p 398 3930 463 4 v 446 4010 a(\001)h
Fw(`)g Fy(\013)h FF(:)f Fy(k)p 1042 3930 419 4 v 233
w FF(\001)g Fw(`)g Fz(ns)g FF(:)g Fy(T)p 1643 3930 467
4 v 195 w FF(\001)g Fw(`)g Fz(int)f FF(:)i Fy(T)p 2291
3930 515 4 v 194 w FF(\001)f Fw(`)g Fz(bool)f FF(:)i
Fy(T)p 2987 3930 V 194 w FF(\001)f Fw(`)g Fz(unit)f FF(:)i
Fy(T)356 4413 y FF(\001)f Fw(`)g Fy(\034)578 4427 y Fx(i)631
4413 y FF(:)g Fy(T)43 b FF(for)30 b(1)c Fw(\024)f Fy(i)h
Fw(\024)f Fy(k)p 356 4447 931 4 v 442 4532 a FF(\001)g
Fw(`)g(h)p Fy(\034)699 4546 y Fv(1)738 4532 y Fy(;)15
b(:)g(:)g(:)i(;)e(\034)980 4547 y Fx(k)1023 4532 y Fw(i)25
b FF(:)h Fy(T)1580 4280 y FF(\()p Fy(i)1646 4294 y Fx(j)1708
4280 y Fw(6)p FF(=)f Fy(i)1835 4295 y Fx(k)1908 4280
y FF(for)31 b Fy(j)f Fw(6)p FF(=)25 b Fy(k)s FF(\))1473
4393 y(\001)g Fw(`)g Fy(\034)1695 4407 y Fx(i)1748 4393
y FF(:)h Fy(T)43 b FF(for)30 b(1)c Fw(\024)f Fy(i)g Fw(\024)g
Fy(k)p 1468 4447 942 4 v 1468 4532 a FF(\001)g Fw(`)g
FF([)p Fy(i)1706 4546 y Fv(1)1746 4532 y FF(:)p Fy(\034)1811
4546 y Fv(1)1850 4532 y Fy(;)15 b(:)g(:)g(:)i(;)e(i)2083
4546 y Fx(n)2130 4532 y FF(:)p Fy(\034)2195 4546 y Fx(n)2242
4532 y FF(])26 b(:)f Fy(T)2881 4280 y FF(\001)g Fw(`)g
Fy(\034)35 b FF(:)25 b Fy(T)2600 4393 y FF(\001)g Fw(`)g
Fy(\034)2822 4407 y Fx(i)2875 4393 y FF(:)h Fy(T)43 b
FF(for)30 b(1)c Fw(\024)f Fy(i)g Fw(\024)g Fy(n)p 2591
4447 954 4 v 2591 4532 a FF(\001)g Fw(`)g FF(\()p Fy(\034)2848
4546 y Fv(1)2887 4532 y Fy(;)15 b(:)g(:)g(:)i(;)e(\034)3129
4546 y Fx(n)3176 4532 y FF(\))25 b Fw(!)h Fy(\034)35
b FF(:)25 b Fy(T)757 4826 y FF(\001)g Fw(`)g Fy(\034)35
b FF(:)26 b Fy(T)p 623 4846 643 4 v 623 4926 a FF(\001)f
Fw(`)g Fy(\034)40 b Fz(array)24 b FF(:)h Fy(T)1447 4809
y FF(\001)p Fy(;)15 b(\013)p FF(:)p Fy(T)39 b Fw(`)25
b Fy(\034)35 b FF(:)25 b Fy(T)p 1447 4846 564 4 v 1473
4926 a FF(\001)g Fw(`)f Fy(\026\013:\034)36 b FF(:)26
b Fy(T)2210 4809 y FF(\001)p Fy(;)15 b(\013)2384 4823
y Fv(1)2423 4809 y FF(:)p Fy(k)2495 4823 y Fv(1)2535
4809 y Fy(;)g(:)g(:)g(:)i(;)e(\013)2795 4823 y Fx(n)2842
4809 y FF(:)p Fy(k)2914 4823 y Fx(n)2987 4809 y Fw(`)25
b Fy(\034)35 b FF(:)26 b Fy(T)p 2192 4846 1086 4 v 2192
4926 a FF(\001)f Fw(`)g(8)p Fy(\013)2483 4940 y Fv(1)2522
4926 y FF(:)p Fy(k)2594 4940 y Fv(1)2634 4926 y Fy(;)15
b(:)g(:)g(:)h(;)f(\013)2893 4940 y Fx(n)2941 4926 y FF(:)p
Fy(k)3013 4940 y Fx(n)3061 4926 y Fy(:\034)35 b FF(:)26
b Fy(T)248 5200 y FF(\001)p Fy(;)15 b(\013)422 5214 y
Fv(1)462 5200 y FF(:)p Fy(k)534 5214 y Fv(1)574 5200
y Fy(;)g(:)g(:)g(:)i(;)e(\013)834 5214 y Fx(n)881 5200
y FF(:)p Fy(k)953 5214 y Fx(n)1026 5200 y Fw(`)25 b Fy(\034)35
b FF(:)26 b Fy(T)p 231 5238 V 231 5317 a FF(\001)f Fw(`)g(9)p
Fy(\013)522 5331 y Fv(1)561 5317 y FF(:)p Fy(k)633 5331
y Fv(1)673 5317 y Fy(;)15 b(:)g(:)g(:)h(;)f(\013)932
5331 y Fx(n)980 5317 y FF(:)p Fy(k)1052 5331 y Fx(n)1099
5317 y Fy(:\034)36 b FF(:)25 b Fy(T)1631 5200 y FF(\001)p
Fy(;)15 b(\013)p FF(:)p Fy(k)1877 5214 y Fv(1)1943 5200
y Fw(`)25 b Fy(c)g FF(:)h Fy(k)2186 5214 y Fv(2)p 1498
5238 861 4 v 1498 5317 a FF(\001)f Fw(`)g Fy(\025\013)p
FF(:)p Fy(k)1863 5331 y Fv(1)1903 5317 y Fy(:c)h FF(:)g
Fy(k)2091 5331 y Fv(1)2156 5317 y Fw(!)f Fy(k)2319 5331
y Fv(2)2540 5204 y FF(\001)g Fw(`)g Fy(c)2761 5218 y
Fv(1)2826 5204 y FF(:)h Fy(k)2924 5218 y Fv(2)2989 5204
y Fw(!)f Fy(k)94 b FF(\001)25 b Fw(`)g Fy(c)3467 5218
y Fv(2)3532 5204 y FF(:)g Fy(k)3629 5218 y Fv(2)p 2540
5238 1129 4 v 2865 5317 a FF(\001)g Fw(`)f Fy(c)3085
5331 y Fv(1)3140 5317 y Fy(c)3179 5331 y Fv(2)3244 5317
y FF(:)i Fy(k)1905 5589 y FF(57)p eop
%%Page: 58 60
58 59 bop 0 3 643 4 v 0 130 4 127 v 28 91 a FF(\001)25
b Fw(`)g Fy(c)249 105 y Fv(1)314 91 y FF(=)g Fy(c)449
105 y Fv(2)514 91 y FF(:)h Fy(k)p 640 130 V 0 133 643
4 v 350 300 a FF(\(\()p Fy(\013)p FF(:)p Fy(k)s FF(\))h
Fw(2)e FF(\001\))p 308 343 546 4 v 308 423 a(\001)g Fw(`)g
Fy(\013)h FF(=)e Fy(\013)i FF(:)g Fy(k)p 1036 343 636
4 v 185 w FF(\001)f Fw(`)g Fz(ns)f FF(=)h Fz(ns)g FF(:)g
Fy(T)p 1853 343 731 4 v 195 w FF(\001)g Fw(`)g Fz(int)f
FF(=)h Fz(int)g FF(:)g Fy(T)p 2766 343 827 4 v 195 w
FF(\001)g Fw(`)g Fz(bool)f FF(=)h Fz(bool)f FF(:)h Fy(T)p
791 734 V 791 814 a FF(\001)g Fw(`)g Fz(unit)f FF(=)h
Fz(unit)f FF(:)i Fy(T)1892 682 y FF(\001)f Fw(`)g Fy(\034)2114
696 y Fx(i)2167 682 y FF(=)g Fy(\034)2313 649 y Ft(0)2303
708 y Fx(i)2361 682 y FF(:)h Fy(T)43 b FF(for)30 b(1)c
Fw(\024)f Fy(i)g Fw(\024)g Fy(k)p 1799 727 1310 4 v 1799
814 a FF(\001)g Fw(`)g(h)p Fy(\034)2056 828 y Fv(1)2095
814 y Fy(;)15 b(:)g(:)g(:)i(;)e(\034)2337 829 y Fx(k)2380
814 y Fw(i)26 b FF(=)e Fw(h)p Fy(\034)2621 781 y Ft(0)2611
838 y Fv(1)2651 814 y Fy(;)15 b(:)g(:)g(:)i(;)e(\034)2903
781 y Ft(0)2893 838 y Fv(2)2932 814 y Fw(i)26 b FF(:)f
Fy(T)637 1107 y FF(\()p Fy(i)703 1121 y Fx(j)765 1107
y Fw(6)p FF(=)g Fy(i)892 1122 y Fx(k)965 1107 y FF(for)30
b Fy(j)h Fw(6)p FF(=)25 b Fy(k)s FF(\))433 1220 y(\001)g
Fw(`)g Fy(\034)655 1234 y Fx(i)708 1220 y FF(=)g Fy(\034)854
1187 y Ft(0)844 1245 y Fx(i)902 1220 y FF(:)h Fy(T)43
b FF(for)30 b(1)c Fw(\024)f Fy(i)g Fw(\024)g Fy(k)p 155
1274 1681 4 v 155 1360 a FF(\001)g Fw(`)g FF([)p Fy(i)393
1374 y Fv(1)433 1360 y FF(:)p Fy(\034)498 1374 y Fv(1)537
1360 y Fy(;)15 b(:)g(:)g(:)i(;)e(i)770 1374 y Fx(n)817
1360 y FF(:)p Fy(\034)882 1374 y Fx(n)929 1360 y FF(])26
b(=)f([)p Fy(i)1132 1374 y Fv(1)1172 1360 y FF(:)p Fy(\034)1247
1327 y Ft(0)1237 1384 y Fv(1)1276 1360 y Fy(;)15 b(:)g(:)g(:)i(;)e(i)
1509 1374 y Fx(n)1557 1360 y FF(:)p Fy(\034)1632 1327
y Ft(0)1622 1382 y Fx(n)1669 1360 y FF(])25 b(:)h Fy(T)2597
1107 y FF(\001)f Fw(`)g Fy(\034)35 b FF(=)25 b Fy(\034)3000
1074 y Ft(0)3049 1107 y FF(:)g Fy(T)2317 1220 y FF(\001)g
Fw(`)f Fy(\034)2538 1234 y Fx(i)2592 1220 y FF(=)h Fy(\034)2738
1187 y Ft(0)2728 1245 y Fx(i)2786 1220 y FF(:)h Fy(T)43
b FF(for)30 b(1)c Fw(\024)f Fy(i)g Fw(\024)g Fy(n)p 2017
1274 1728 4 v 2017 1360 a FF(\001)g Fw(`)g FF(\()p Fy(\034)2274
1374 y Fv(1)2314 1360 y Fy(;)15 b(:)g(:)g(:)h(;)f(\034)2555
1374 y Fx(n)2602 1360 y FF(\))26 b Fw(!)f Fy(\034)35
b FF(=)25 b(\()p Fy(\034)3035 1327 y Ft(0)3025 1384 y
Fv(1)3065 1360 y Fy(;)15 b(:)g(:)g(:)h(;)f(\034)3316
1327 y Ft(0)3306 1382 y Fx(n)3354 1360 y FF(\))25 b Fw(!)g
Fy(\034)3580 1327 y Ft(0)3629 1360 y FF(:)g Fy(T)1153
1661 y FF(\001)g Fw(`)f Fy(\034)36 b FF(=)25 b Fy(\034)1556
1628 y Ft(0)1604 1661 y FF(:)h Fy(T)p 884 1681 1106 4
v 884 1768 a FF(\001)f Fw(`)g Fy(\034)40 b Fz(array)24
b FF(=)h Fy(\034)1556 1735 y Ft(0)1609 1768 y Fz(array)f
FF(:)i Fy(T)2215 1644 y FF(\001)p Fy(;)15 b(\013)p FF(:)p
Fy(T)39 b Fw(`)25 b Fy(\034)35 b FF(=)25 b Fy(\034)2808
1611 y Ft(0)2856 1644 y FF(:)h Fy(T)p 2171 1681 845 4
v 2171 1768 a FF(\001)f Fw(`)g Fy(\026\013:\034)36 b
FF(=)25 b Fy(\026\013:\034)2851 1735 y Ft(0)2900 1768
y FF(:)h Fy(T)590 2047 y FF(\001)p Fy(;)15 b(\013)764
2061 y Fv(1)804 2047 y FF(:)p Fy(k)876 2061 y Fv(1)916
2047 y Fy(;)g(:)g(:)g(:)i(;)e(\013)1176 2061 y Fx(n)1223
2047 y FF(:)p Fy(k)1295 2061 y Fx(n)1368 2047 y Fw(`)25
b Fy(\034)35 b FF(=)25 b Fy(\034)1670 2014 y Ft(0)1718
2047 y FF(:)h Fy(T)p 216 2085 1993 4 v 216 2171 a FF(\001)f
Fw(`)g(8)p Fy(\013)507 2185 y Fv(1)546 2171 y FF(:)p
Fy(k)618 2185 y Fv(1)658 2171 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)918
2185 y Fx(n)966 2171 y FF(:)p Fy(k)1038 2185 y Fx(n)1085
2171 y Fy(:\034)36 b FF(=)25 b Fw(8)p Fy(\013)1391 2185
y Fv(1)1430 2171 y FF(:)p Fy(k)1502 2185 y Fv(1)1542
2171 y Fy(;)15 b(:)g(:)g(:)h(;)f(\013)1801 2185 y Fx(n)1849
2171 y FF(:)p Fy(k)1921 2185 y Fx(n)1968 2171 y Fy(:\034)2043
2139 y Ft(0)2092 2171 y FF(:)26 b Fy(T)2648 2047 y FF(\001)p
Fy(;)15 b(\013)p FF(:)p Fy(k)2894 2061 y Fv(1)2960 2047
y Fw(`)24 b Fy(c)i FF(=)f Fy(c)3240 2014 y Ft(0)3289
2047 y FF(:)g Fy(k)3386 2061 y Fv(2)p 2390 2085 1294
4 v 2390 2171 a FF(\001)g Fw(`)g Fy(\025\013)p FF(:)p
Fy(k)2755 2185 y Fv(1)2796 2171 y Fy(:c)g FF(=)g Fy(\025\013)p
FF(:)p Fy(k)3164 2185 y Fv(1)3205 2171 y Fy(:c)3269 2139
y Ft(0)3318 2171 y FF(:)h Fy(k)3416 2185 y Fv(1)3481
2171 y Fw(!)f Fy(k)3644 2185 y Fv(2)829 2587 y FF(\001)p
Fy(;)15 b(\013)1003 2601 y Fv(1)1043 2587 y FF(:)p Fy(k)1115
2601 y Fv(1)1155 2587 y Fy(;)g(:)g(:)g(:)i(;)e(\013)1415
2601 y Fx(n)1462 2587 y FF(:)p Fy(k)1534 2601 y Fx(n)1607
2587 y Fw(`)25 b Fy(\034)35 b FF(=)25 b Fy(\034)1909
2554 y Ft(0)1958 2587 y FF(:)g Fy(T)p 456 2624 1993 4
v 456 2711 a FF(\001)g Fw(`)g(9)p Fy(\013)747 2725 y
Fv(1)786 2711 y FF(:)p Fy(k)858 2725 y Fv(1)898 2711
y Fy(;)15 b(:)g(:)g(:)h(;)f(\013)1157 2725 y Fx(n)1205
2711 y FF(:)p Fy(k)1277 2725 y Fx(n)1324 2711 y Fy(:\034)36
b FF(=)25 b Fw(9)p Fy(\013)1630 2725 y Fv(1)1669 2711
y FF(:)p Fy(k)1741 2725 y Fv(1)1781 2711 y Fy(;)15 b(:)g(:)g(:)i(;)e
(\013)2041 2725 y Fx(n)2088 2711 y FF(:)p Fy(k)2160 2725
y Fx(n)2208 2711 y Fy(:\034)2283 2678 y Ft(0)2331 2711
y FF(:)26 b Fy(T)2725 2458 y FF(\001)f Fw(`)g Fy(c)2946
2472 y Fv(2)3011 2458 y FF(=)g Fy(c)3146 2425 y Ft(0)3146
2482 y Fv(2)3211 2458 y FF(:)h Fy(k)3309 2472 y Fv(2)2630
2571 y FF(\001)f Fw(`)f Fy(c)2850 2585 y Fv(1)2915 2571
y FF(=)h Fy(c)3050 2538 y Ft(0)3050 2595 y Fv(1)3115
2571 y FF(:)h Fy(k)3213 2585 y Fv(2)3278 2571 y Fw(!)f
Fy(k)p 2630 2624 815 4 v 2650 2711 a FF(\001)g Fw(`)g
Fy(c)2871 2725 y Fv(1)2925 2711 y Fy(c)2964 2725 y Fv(2)3029
2711 y FF(=)g Fy(c)3164 2678 y Ft(0)3164 2735 y Fv(1)3219
2711 y Fy(c)3258 2678 y Ft(0)3258 2735 y Fv(2)3323 2711
y FF(:)h Fy(k)1394 2988 y FF(\001)p Fy(;)15 b(\013)p
FF(:)p Fy(k)1640 3002 y Fv(2)1706 2988 y Fw(`)25 b Fy(c)1826
3002 y Fv(1)1891 2988 y FF(:)h Fy(k)94 b FF(\001)25 b
Fw(`)f Fy(c)2303 3002 y Fv(2)2368 2988 y FF(:)i Fy(k)2466
3002 y Fv(2)p 1333 3025 1234 4 v 1333 3110 a FF(\001)f
Fw(`)g FF(\()p Fy(\025\013)p FF(:)p Fy(k)1733 3124 y
Fv(2)1774 3110 y Fy(:c)1838 3124 y Fv(1)1878 3110 y FF(\))15
b Fy(c)1967 3124 y Fv(2)2033 3110 y FF(=)25 b Fy(c)2168
3124 y Fv(1)2207 3110 y FF([)p Fy(c)2271 3124 y Fv(2)2311
3110 y Fy(=\013)p FF(])i(:)e Fy(k)p 0 3334 658 4 v 0
3465 4 131 v 28 3422 a FF(\001)g Fw(`)g Fy(q)j FF(:)e
Fy(\034)370 3436 y Fv(1)434 3422 y Fw(\))f Fy(\034)590
3436 y Fv(2)p 654 3465 V 0 3468 658 4 v 314 3669 595
4 v 314 3749 a FF(\001)g Fw(`)f Fz(id)h FF(:)h Fy(\034)35
b Fw(\))25 b Fy(\034)1866 3630 y FF(\001)g Fw(`)g Fy(c)2087
3644 y Fx(i)2141 3630 y FF(:)g Fy(k)2238 3644 y Fx(i)2297
3630 y FF(for)30 b(1)c Fw(\024)f Fy(i)h Fw(\024)e Fy(n)p
1090 3664 2497 4 v 1090 3749 a FF(\001)h Fw(`)g FF([)p
Fy(c)1336 3763 y Fv(1)1376 3749 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)1616
3763 y Fx(n)1664 3749 y FF(])26 b(:)f Fw(8)p Fy(\013)1874
3763 y Fv(1)1913 3749 y FF(:)p Fy(k)1985 3763 y Fv(1)2025
3749 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)2285 3763 y Fx(n)2332
3749 y FF(:)p Fy(k)2404 3763 y Fx(n)2452 3749 y Fy(:\034)35
b Fw(\))26 b Fy(\034)10 b FF([)p Fy(c)2783 3763 y Fv(1)2823
3749 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)3063 3763 y Fx(n)3111
3749 y Fy(=\013)3214 3763 y Fv(1)3254 3749 y Fy(;)g(:)g(:)g(:)i(;)e
(\013)3514 3763 y Fx(n)3561 3749 y FF(])872 4031 y(\001)25
b Fw(`)g Fy(\034)36 b FF(=)24 b Fy(\026\013:\034)1413
3998 y Ft(0)1463 4031 y FF(:)h Fy(T)p 745 4068 961 4
v 745 4155 a FF(\001)g Fw(`)g Fz(roll)1118 4169 y Fx(\034)1186
4155 y FF(:)h Fy(\034)1287 4122 y Ft(0)1310 4155 y FF([)p
Fy(\034)10 b(=\013)p FF(])27 b Fw(\))e Fy(\034)2265 4032
y FF(\001)g Fw(`)g Fy(\026\013:\034)36 b FF(:)26 b Fy(T)p
1888 4070 1267 4 v 1888 4155 a FF(\001)f Fw(`)g Fz(unroll)e
FF(:)j Fy(\026\013:\034)36 b Fw(\))25 b Fy(\034)10 b
FF([)p Fy(\026\013:\034)g(=\013)p FF(])141 4568 y(\001)25
b Fw(`)g Fy(\034)35 b FF(=)25 b Fw(9)p Fy(\013)603 4582
y Fv(1)642 4568 y FF(:)p Fy(k)714 4582 y Fv(1)754 4568
y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)1014 4582 y Fx(n)1061
4568 y FF(:)p Fy(k)1133 4582 y Fx(n)1181 4568 y Fy(:\034)1256
4535 y Ft(0)1304 4568 y FF(:)26 b Fy(T)104 b FF(\001)25
b Fw(`)f Fy(c)1732 4582 y Fx(i)1786 4568 y FF(:)i Fy(k)1884
4582 y Fx(i)1942 4568 y FF(for)31 b(1)25 b Fw(\024)g
Fy(i)h Fw(\024)f Fy(n)p 141 4606 2315 4 v 256 4693 a
FF(\001)g Fw(`)g Fz(pack)o FF([)p Fy(\034)5 b(;)15 b(c)778
4707 y Fv(1)818 4693 y Fy(;)g(:)g(:)g(:)i(;)e(c)1059
4707 y Fx(n)1106 4693 y FF(])26 b(:)g Fy(\034)1258 4660
y Ft(0)1281 4693 y FF([)p Fy(c)1345 4707 y Fv(1)1385
4693 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)1625 4707 y Fx(n)1673
4693 y Fy(=\013)1776 4707 y Fv(1)1816 4693 y Fy(;)g(:)g(:)g(:)i(;)e
(\013)2076 4707 y Fx(n)2123 4693 y FF(])26 b Fw(\))f
Fy(\034)2898 4446 y FF(\001)g Fw(`)f Fy(q)29 b FF(:)c
Fy(\034)3249 4413 y Ft(0)3239 4470 y Fv(1)3303 4446 y
Fw(\))h Fy(\034)3470 4413 y Ft(0)3460 4470 y Fv(2)2679
4559 y FF(\001)f Fw(`)g Fy(\034)2901 4573 y Fx(i)2954
4559 y FF(=)g Fy(\034)3100 4526 y Ft(0)3090 4584 y Fx(i)3148
4559 y FF(:)h Fy(T)43 b FF(for)30 b Fy(i)c FF(=)e(1)p
Fy(;)15 b FF(2)p 2637 4613 1123 4 v 2898 4693 a(\001)25
b Fw(`)f Fy(q)29 b FF(:)c Fy(\034)3239 4707 y Fv(1)3303
4693 y Fw(\))h Fy(\034)3460 4707 y Fv(2)p 0 4917 611
4 v 0 5047 4 131 v 28 5005 a FF(\010;)15 b(\001;)g(\000)26
b Fw(`)e Fy(r)k FF(:)e Fy(\034)p 608 5047 V 0 5050 611
4 v 395 5218 a FF(\(\000\()p Fy(s)p FF(\))f(=)g Fy(\034)10
b FF(\))p 324 5260 554 4 v 324 5340 a(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(s)g FF(:)g Fy(\034)p 1059 5260 659 4 v 192
w FF(\010;)15 b(\001;)g(\000)26 b Fw(`)e Fy(n)h FF(:)h
Fz(int)p 1900 5260 748 4 v 181 w FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fz(tt)g FF(:)g Fz(bool)p 2829 5260 V 181 w FF(\010;)15
b(\001;)g(\000)25 b Fw(`)g Fz(ff)g FF(:)g Fz(bool)1905
5589 y FF(58)p eop
%%Page: 59 61
59 60 bop 512 302 698 4 v 512 382 a FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(?)h FF(:)f Fz(unit)1457 259 y FF(\(\010\()p
Fy(f)10 b FF(\))25 b(=)g Fy(\034)10 b FF(\))p 1391 302
566 4 v 1391 382 a(\010;)15 b(\001;)g(\000)25 b Fw(`)g
Fy(f)35 b FF(:)25 b Fy(\034)2138 264 y FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(v)k FF(:)c Fy(\034)2686 278 y Fv(2)2816 264
y FF(\001)g Fw(`)g Fy(q)j FF(:)e Fy(\034)3158 278 y Fv(2)3222
264 y Fw(\))f Fy(\034)p 2138 302 1251 4 v 2427 382 a
FF(\010;)15 b(\001;)g(\000)25 b Fw(`)g Fy(q)s FF(@)p
Fy(v)j FF(:)d Fy(\034)170 668 y FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(r)j FF(:)d Fy(\034)724 635 y Ft(0)838 668
y FF(\001)g Fw(`)g Fy(\034)1070 635 y Ft(0)1119 668 y
FF(=)g Fy(\034)p 170 706 1096 4 v 440 786 a FF(\010;)15
b(\001;)g(\000)25 b Fw(`)g Fy(r)j FF(:)e Fy(\034)1629
658 y FF(\()p FB(op)32 b FF(:)25 b(\()p Fy(\034)1913
672 y Fv(1)1953 658 y Fy(;)15 b(:)g(:)g(:)h(;)f(\034)2194
673 y Fx(k)2237 658 y FF(\))26 b Fw(!)f Fy(\034)10 b
FF(\))91 b(\010;)15 b(\001;)g(\000)26 b Fw(`)e Fy(v)3019
672 y Fx(i)3073 658 y FF(:)h Fy(\034)3163 672 y Fx(i)3222
658 y FF(for)30 b(1)25 b Fw(\024)g Fy(i)h Fw(\024)f Fy(k)p
1629 701 2102 4 v 2153 786 a FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g FB(op)7 b FF(\()p Fy(v)2716 800 y Fv(1)2756
786 y Fy(;)15 b(:)g(:)g(:)h(;)f(v)3001 801 y Fx(k)3044
786 y FF(\))26 b(:)g Fy(\034)103 1068 y FF(\010;)15 b(\001;)g(\000)26
b Fw(`)e Fy(v)532 1082 y Fx(i)586 1068 y FF(:)h Fy(\034)676
1082 y Fx(i)735 1068 y FF(for)30 b(0)c Fw(\024)e Fy(i)i
Fw(\024)f Fy(k)p 4 1105 1339 4 v 4 1190 a FF(\010;)15
b(\001;)g(\000)26 b Fw(`)e(h)p Fy(v)468 1204 y Fv(0)508
1190 y Fy(;)15 b(:)g(:)g(:)i(;)e(v)754 1205 y Fx(k)797
1190 y Fw(i)26 b FF(:)f Fw(h)p Fy(\034)983 1204 y Fv(0)1023
1190 y Fy(;)15 b(:)g(:)g(:)h(;)f(\034)1264 1205 y Fx(k)1307
1190 y Fw(i)1524 1068 y FF(\010;)g(\001;)g(\000)25 b
Fw(`)g Fy(v)k FF(:)c Fw(h)p Fy(\034)2107 1082 y Fv(0)2147
1068 y Fy(;)15 b(:)g(:)g(:)i(;)e(\034)2389 1083 y Fx(k)2431
1068 y Fw(i)p 1524 1110 943 4 v 1667 1190 a FF(\010;)g(\001;)g(\000)26
b Fw(`)e Fy(\031)2104 1204 y Fx(i)2132 1190 y Fy(v)29
b FF(:)d Fy(\034)2296 1204 y Fx(i)2709 1068 y FF(\010;)15
b(\001;)g(\000)25 b Fw(`)g Fy(v)3138 1082 y Fx(i)3192
1068 y FF(:)g Fy(\034)40 b FF(for)31 b(1)25 b Fw(\024)g
Fy(i)h Fw(\024)f Fy(n)p 2648 1105 1248 4 v 2648 1190
a FF(\010;)15 b(\001;)g(\000)26 b Fw(`)f(f)p Fy(v)3123
1204 y Fv(1)3163 1190 y Fy(;)15 b(:)g(:)g(:)h(;)f(v)3408
1204 y Fx(n)3456 1190 y Fw(g)25 b FF(:)h Fy(\034)40 b
Fz(array)1021 1483 y FF(\001)25 b Fw(`)g Fy(\034)35 b
FF(=)25 b([)p Fy(:)15 b(:)g(:)i(;)e(j)5 b FF(:)p Fy(\034)1668
1497 y Fx(j)1705 1483 y Fy(;)15 b(:)g(:)g(:)r FF(])1157
1596 y(\010;)g(\001;)g(\000)25 b Fw(`)g Fy(v)k FF(:)c
Fy(\034)1705 1610 y Fx(j)p 980 1649 939 4 v 1003 1734
a FF(\010;)15 b(\001;)g(\000)25 b Fw(`)g Fz(inj)1531
1759 y Fx(\034)1574 1734 y FF(\()p Fy(j;)15 b(v)s FF(\))27
b(:)f Fy(\034)2152 1607 y FF(\010;)15 b(\001;)g(\000)26
b Fw(`)f Fy(v)j FF(:)e([)p Fy(i)f FF(:)h Fy(\034)10 b
FF(])p 2100 1649 820 4 v 2100 1734 a(\010;)15 b(\001;)g(\000)26
b Fw(`)f Fz(outj)n FF(\()p Fy(v)s FF(\))i(:)e Fy(\034)p
0 1961 843 4 v 0 2092 4 131 v 28 2049 a FF(\010;)15 b(\001;)g(\000)26
b Fw(`)e FB(c)-5 b(ond)41 b Fs(cond)p 839 2092 V 0 2095
843 4 v 730 2258 a FF(\010;)15 b(\001;)g(\000)25 b Fw(`)g
Fy(v)1159 2272 y Fx(i)1212 2258 y FF(:)h Fz(int)j FF(for)h
Fy(i)c FF(=)f(1)p Fy(;)15 b FF(2)p 730 2295 1130 4 v
853 2375 a(\010;)g(\001;)g(\000)25 b Fw(`)g Fy(v)1282
2389 y Fv(1)1346 2375 y FF(=)g Fy(v)1486 2389 y Fv(2)1556
2375 y Fs(cond)2041 2258 y FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(v)2470 2272 y Fx(i)2524 2258 y FF(:)g Fz(int)k
FF(for)i Fy(i)25 b FF(=)g(1)p Fy(;)15 b FF(2)p 2041 2295
V 2164 2375 a(\010;)g(\001;)g(\000)25 b Fw(`)g Fy(v)2593
2389 y Fv(1)2658 2375 y Fy(<)g(v)2798 2389 y Fv(2)2868
2375 y Fs(cond)p 0 2591 779 4 v 0 2722 4 131 v 28 2679
a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)37
b Fw(`)24 b Fy(e)p 776 2722 V 0 2725 779 4 v 884 2888
a FF(\010;)15 b(\001;)g(\000)25 b Fw(`)g Fy(v)k FF(:)c
Fy(\034)p 641 2925 1045 4 v 641 3005 a FF(\010;)15 b(\001;)g(\003;)g
(\004;)g(\000;)g Fy(\034)36 b Fw(`)25 b Fz(return)k Fy(v)1867
2888 y FF(\010;)15 b(\001;)g(\000)25 b Fw(`)g Fy(v)k
FF(:)c Fy(\034)2415 2902 y Fv(exn)2618 2888 y FF(\001)g
Fw(`)f FF(\004)30 b Fs(handles)g FF(\000)p 1867 2925
1393 4 v 2065 3005 a(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)36 b Fw(`)25 b Fz(raise)k Fy(v)303 3293 y FF(\(\003\()p
Fy(`)p FF(\))d(=)f FB(lbl)10 b FF(\()p Fy(\013)822 3307
y Fv(1)862 3293 y FF(:)p Fy(k)934 3307 y Fv(1)974 3293
y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)1234 3307 y Fx(n)1281
3293 y FF(:)p Fy(k)1353 3307 y Fx(n)1401 3293 y FF(;)g(\004)1502
3260 y Ft(0)1525 3293 y FF(;)g(\000)1622 3260 y Ft(0)1646
3293 y FF(\)\))81 3406 y(\001)25 b Fw(`)g Fy(c)302 3420
y Fx(i)355 3406 y FF(:)h Fy(k)453 3420 y Fx(i)572 3406
y FF(\001)f Fw(`)g FF(\000)g Fw(\024)g FF(\000)989 3373
y Ft(0)1012 3406 y FF([)-5 b Fy(~)-40 b(c)q(=)r(~)-47
b(\013)q FF(])91 b(\001)25 b Fw(`)g FF(\004)g Fw(\024)g
FF(\004)1722 3373 y Ft(0)1745 3406 y FF([)-5 b Fy(~)-40
b(c=)r(~)-47 b(\013)q FF(])p 39 3459 1941 4 v 331 3544
a(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)37
b Fw(`)24 b Fz(goto)30 b Fy(`)p FF([)p Fy(c)1335 3558
y Fv(1)1374 3544 y Fy(;)15 b(:)g(:)g(:)i(;)e(c)1615 3558
y Fx(n)1663 3544 y FF(])2162 3422 y(\010;)g(\001;)g(\000)25
b Fw(`)g Fy(r)j FF(:)d Fy(\034)2716 3389 y Ft(0)2830
3422 y FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000[)p
Fy(s)26 b Fw(7!)f Fy(\034)3573 3389 y Ft(0)3597 3422
y FF(];)15 b Fy(\034)35 b Fw(`)25 b Fy(e)p 2162 3464
1699 4 v 2382 3544 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)36 b Fw(`)25 b Fz(let)k Fy(s)c FF(=)g Fy(r)33
b Fz(in)c Fy(e)1006 3837 y FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(v)k FF(:)c(\()p Fy(\034)1599 3804 y Ft(0)1589
3861 y Fv(1)1644 3837 y Fy(:)15 b(:)g(:)h(;)f(\034)1855
3804 y Ft(0)1845 3859 y Fx(n)1892 3837 y FF(\))26 b Fw(!)f
Fy(\034)2119 3804 y Ft(00)2252 3837 y FF(\001)g Fw(`)g
FF(\004)30 b Fs(handles)g FF(\000)907 3950 y(\001)25
b Fw(`)f Fy(v)1132 3964 y Fx(i)1186 3950 y FF(:)h Fy(\034)1286
3917 y Ft(0)1276 3975 y Fx(i)1340 3950 y FF(for)30 b(1)c
Fw(\024)f Fy(i)g Fw(\024)g Fy(n)91 b FF(\010;)15 b(\001;)g(\003;)g
(\004;)g(\000[)p Fy(s)26 b Fw(7!)f Fy(\034)2687 3917
y Ft(00)2729 3950 y FF(];)15 b Fy(\034)36 b Fw(`)25 b
Fy(e)p 865 4004 2170 4 v 1095 4088 a FF(\010;)15 b(\001;)g(\003;)g
(\004;)g(\000;)g Fy(\034)36 b Fw(`)25 b Fz(let)k Fy(s)c
FF(=)g Fy(v)s FF(\()p Fy(v)2238 4102 y Fv(1)2278 4088
y Fy(;)15 b(:)g(:)g(:)i(;)e(v)2524 4102 y Fx(n)2571 4088
y FF(\))31 b Fz(in)f Fy(e)453 4381 y FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(v)k FF(:)c Fw(h)p Fy(\034)1036 4395 y Fv(0)1076
4381 y Fy(;)15 b(:)g(:)g(:)h(;)f(\034)1317 4395 y Fx(m)1384
4381 y Fw(i)242 4494 y FF(\010;)g(\001;)g(\000)25 b Fw(`)g
Fy(v)j FF(:)e Fy(\034)790 4508 y Fx(i)909 4494 y FF(\010;)15
b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)36 b Fw(`)25
b Fy(e)p 200 4548 1473 4 v 231 4634 a FF(\010;)15 b(\001;)g(\003;)g
(\004;)g(\000;)g Fy(\034)36 b Fw(`)25 b Fz(let)k Fy(\031)1136
4648 y Fx(i)1179 4634 y Fy(v)g FF(:=)c Fy(v)1420 4601
y Ft(0)1474 4634 y Fz(in)30 b Fy(e)1977 4381 y FF(\010;)15
b(\001;)g(\000)25 b Fw(`)g Fy(v)j FF(:)e Fy(\034)2535
4348 y Ft(0)2573 4381 y Fz(array)90 b FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(v)3335 4348 y Ft(0)3384 4381 y FF(:)g Fz(int)1896
4494 y FF(\001)g Fw(`)g FF(\004)30 b Fs(handles)f FF(\000)91
b(\010;)15 b(\001;)g(\003;)g(\004;)g(\000[)p Fy(s)26
b Fw(7!)f Fy(\034)3371 4461 y Ft(0)3394 4494 y FF(];)15
b Fy(\034)36 b Fw(`)25 b Fy(e)p 1854 4548 1846 4 v 1983
4634 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)36 b Fw(`)25 b Fz(let)30 b Fy(s)25 b FF(=)g Fz(sub)o
FF(\()p Fy(v)s(;)15 b(v)3313 4601 y Ft(0)3337 4634 y
FF(\))31 b Fz(in)f Fy(e)1125 4927 y FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g Fy(v)1554 4941 y Fv(1)1619 4927 y FF(:)g Fy(\034)1719
4894 y Ft(0)1758 4927 y Fz(array)89 b FF(\010;)15 b(\001;)g(\000)26
b Fw(`)f Fy(v)2517 4941 y Fv(2)2581 4927 y FF(:)h Fz(int)868
5040 y FF(\010;)15 b(\001;)g(\000)26 b Fw(`)e Fy(v)1297
5054 y Fv(3)1362 5040 y FF(:)i Fy(\034)1463 5007 y Ft(0)1577
5040 y FF(\001)f Fw(`)g FF(\004)30 b Fs(handles)g FF(\000)90
b(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)37
b Fw(`)24 b Fy(e)p 827 5094 2247 4 v 1098 5179 a FF(\010;)15
b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)37 b Fw(`)24
b Fz(let)30 b(sub)o FF(\()p Fy(v)2174 5193 y Fv(1)2214
5179 y Fy(;)15 b(v)2298 5193 y Fv(2)2338 5179 y FF(\))26
b(:=)f Fy(v)2564 5193 y Fv(3)2634 5179 y Fz(in)k Fy(e)1905
5589 y FF(59)p eop
%%Page: 60 62
60 61 bop 1436 280 a FF(\010;)15 b(\001;)g(\000)25 b
Fw(`)g Fy(v)j FF(:)e([)p 1969 209 118 4 v Fy(j)5 b FF(:)p
Fy(\034)11 b(;)k(i)p FF(:)p Fy(\034)2233 247 y Ft(0)2257
280 y Fy(;)p 2297 209 V 15 w(j)5 b FF(:)p Fy(\034)2416
228 y Ft(0)2439 280 y FF(])643 402 y(\010;)15 b(\001;)g(\003;)g(\004;)g
(\000[)p Fy(s)26 b Fw(7!)f FF([)p Fy(i)p FF(:)p Fy(\034)1467
369 y Ft(0)1491 402 y FF(]];)15 b Fy(\034)36 b Fw(`)25
b Fy(e)1780 416 y Fv(1)1911 402 y FF(\010;)15 b(\001;)g(\003;)g(\004;)g
(\000[)p Fy(s)25 b Fw(7!)g FF([)p 2628 331 V Fy(j)5 b
FF(:)p Fy(\034)12 b(;)p 2787 331 V 15 w(j)5 b FF(:)p
Fy(\034)2905 350 y Ft(0)2928 402 y FF(]];)15 b Fy(\034)36
b Fw(`)25 b Fy(e)3217 416 y Fv(2)p 601 456 2698 4 v 955
541 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)37
b Fw(`)24 b Fz(case)30 b Fy(v)j Fz(of)d(inj)o FF(\()p
Fy(i;)15 b(s)p FF(\))26 b Fw(\))g Fy(e)2572 555 y Fv(1)2642
541 y Fz(else)j Fy(e)2905 555 y Fv(2)369 824 y FF(\010;)15
b(\001;)g(\000)25 b Fw(`)g Fy(v)k FF(:)c Fw(9)p Fy(\013)986
838 y Fv(1)1025 824 y FF(:)p Fy(k)1097 838 y Fv(1)1137
824 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)1397 838 y Fx(n)1444
824 y FF(:)p Fy(k)1516 838 y Fx(n)1564 824 y Fy(:\034)1639
791 y Ft(0)1753 824 y FF(\010;)g(\(\001)p Fy(;)g(\013)2068
838 y Fv(1)2109 824 y FF(:)p Fy(k)2181 838 y Fv(1)2221
824 y Fy(;)g(:)g(:)g(:)h(;)f(\013)2480 838 y Fx(n)2528
824 y FF(:)p Fy(k)2600 838 y Fx(n)2647 824 y FF(\);)g(\003;)g(\004;)g
(\000[)p Fy(s)27 b Fw(7!)e Fy(\034)3244 791 y Ft(0)3267
824 y FF(];)15 b Fy(\034)36 b Fw(`)25 b Fy(e)p 369 867
3163 4 v 917 952 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)37 b Fw(`)24 b Fz(let)p FF(\()p Fy(\013)1834
966 y Fv(1)1874 952 y Fy(;)15 b(:)g(:)g(:)h(;)f(\013)2133
966 y Fx(n)2181 952 y Fy(;)g(s)p FF(\))25 b(=)g Fz(unpack)k
Fy(v)34 b Fz(in)29 b Fy(e)602 1245 y FF(\010;)15 b(\001;)g(\000)25
b Fw(`)g FB(c)-5 b(ond)41 b Fs(cond)187 1358 y FF(\010;)15
b(\001;)g(\003;)g(\004;)g(\000;)g Fy(\034)37 b Fw(`)24
b Fy(e)909 1372 y Fv(1)1040 1358 y FF(\010;)15 b(\001;)g(\003;)g(\004;)
g(\000;)g Fy(\034)36 b Fw(`)25 b Fy(e)1762 1372 y Fv(2)p
146 1411 1698 4 v 163 1491 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g
(\000;)g Fy(\034)36 b Fw(`)25 b Fz(if)30 b FB(c)-5 b(ond)41
b Fz(then)29 b Fy(e)1453 1505 y Fv(1)1523 1491 y Fz(else)g
Fy(e)1786 1505 y Fv(2)2619 1367 y FF(\010;)15 b(\001;)g(\003;)g(\004;)g
(\000;)g Fy(\034)37 b Fw(`)25 b Fy(e)p 2207 1405 1547
4 v 2207 1491 a FF(\010;)15 b(\001;)g(\003;)g(\(\004)p
Fy(;)g FF(\000)2725 1458 y Ft(0)2749 1491 y FF(\);)g(\000;)g
Fy(\034)37 b Fw(`)24 b Fz(pophandler)k(in)i Fy(e)1216
1784 y FF(\(\003\()p Fy(`)p FF(\))c(=)f FB(hnd)10 b FF(\()p
Fy(\013)1790 1798 y Fv(1)1830 1784 y FF(:)p Fy(k)1902
1798 y Fv(1)1942 1784 y Fy(;)15 b(:)g(:)g(:)i(;)e(\013)2202
1798 y Fx(n)2249 1784 y FF(:)p Fy(k)2321 1798 y Fx(n)2369
1784 y FF(;)g(\004)2470 1751 y Ft(0)2493 1784 y FF(;)g(\000)2590
1751 y Ft(0)2614 1784 y FF(\)\))784 1897 y(\001)25 b
Fw(`)g Fy(c)1005 1911 y Fx(i)1059 1897 y FF(:)h Fy(k)1157
1911 y Fx(i)1276 1897 y FF(\001)f Fw(`)g FF(\004)g Fw(\024)g
FF(\004)1701 1864 y Ft(0)1723 1897 y FF([)-5 b Fy(~)-40
b(c)q(=)r(~)-47 b(\013)q FF(])91 b(\010;)15 b(\001;)g(\003;)g(\(\004)p
Fy(;)g FF(\000)2526 1864 y Ft(0)2550 1897 y FF([)-5 b
Fy(~)-40 b(c)q(=)r(~)-47 b(\013)q FF(]\);)15 b(\000;)g
Fy(\034)36 b Fw(`)25 b Fy(e)p 743 1950 2415 4 v 1005
2035 a FF(\010;)15 b(\001;)g(\003;)g(\004;)g(\000;)g
Fy(\034)37 b Fw(`)24 b Fz(pushhandler)k Fy(`)p FF([)p
Fy(c)2343 2049 y Fv(1)2383 2035 y Fy(;)15 b(:)g(:)g(:)h(;)f(c)2623
2049 y Fx(n)2671 2035 y FF(])31 b Fz(in)e Fy(e)p 0 2261
740 4 v 0 2391 4 131 v 28 2349 a FF(\010;)15 b(\001;)g(\003;)g
Fy(\034)36 b Fw(`)25 b Fy(B)30 b FF(:)25 b Fy(\015)p
736 2391 V 0 2394 740 4 v 774 2573 a FF(\001)p Fy(;)15
b FF(\001)966 2540 y Ft(0)1014 2573 y Fw(`)25 b FF(\004)264
2686 y(\001)p Fy(;)15 b FF(\001)456 2653 y Ft(0)505 2686
y Fw(`)24 b FF(\000)91 b(\010;)15 b(\(\001)p Fy(;)g FF(\001)1066
2653 y Ft(0)1090 2686 y FF(\);)g(\003;)g(\004;)g(\000;)g
Fy(\034)36 b Fw(`)25 b Fy(e)p 116 2740 1698 4 v 116 2826
a FF(\010;)15 b(\001;)g(\003;)g Fy(\034)36 b Fw(`)25
b Fz(block)o FF(\(\001)948 2793 y Ft(0)971 2826 y FF(;)15
b(\004;)g(\000\))p Fy(:e)26 b FF(:)g FB(lbl)10 b FF(\(\001)1557
2793 y Ft(0)1580 2826 y FF(;)15 b(\004;)g(\000\))2464
2573 y(\001)p Fy(;)g FF(\001)2656 2540 y Ft(0)2705 2573
y Fw(`)24 b FF(\004)91 b(\001)p Fy(;)15 b FF(\001)3129
2540 y Ft(0)3177 2573 y Fw(`)25 b FF(\000)2230 2686 y(\010;)15
b(\(\001)p Fy(;)g FF(\001)2563 2653 y Ft(0)2587 2686
y FF(\);)g(\003;)g(\004;)g(\000[)p Fy(s)26 b Fw(7!)f
Fy(\034)3173 2700 y Fv(exn)3285 2686 y FF(];)15 b Fy(\034)36
b Fw(`)25 b Fy(e)p 1995 2740 1789 4 v 1995 2826 a FF(\010;)15
b(\001;)g(\003;)g Fy(\034)36 b Fw(`)25 b Fz(hndl)o FF(\(\001)2779
2793 y Ft(0)2803 2826 y FF(;)15 b(\004;)g(\000;)g Fy(s)p
FF(\))p Fy(:e)26 b FF(:)f FB(hnd)11 b FF(\(\001)3527
2793 y Ft(0)3550 2826 y FF(;)k(\004;)g(\000\))p 0 3052
426 4 v 0 3165 4 113 v 28 3140 a(\010)25 b Fw(`)g Fy(F)38
b FF(:)26 b Fy(\034)p 422 3165 V 0 3168 426 4 v 1255
3347 a Fw(`)f FF(\001)91 b(\001)25 b Fw(`)g FF(\000)1742
3361 y Fv(arg)1936 3347 y FF(\001)g Fw(`)f Fy(\034)36
b FF(:)25 b Fy(T)104 b FF(\001)25 b Fw(`)g FF(\003)849
3460 y(\010;)15 b(\001;)g(\003;)g Fw(\001)p FF(;)g(\000;)g
Fy(\034)37 b Fw(`)25 b Fy(e)91 b FF(\010;)15 b(\001;)g(\003;)g
Fy(\034)36 b Fw(`)25 b Fy(B)2178 3474 y Fx(i)2232 3460
y FF(:)g(\003\()p Fy(`)2418 3474 y Fx(i)2447 3460 y FF(\))30
b(for)h(1)25 b Fw(\024)g Fy(i)h Fw(\024)f Fy(m)p 246
3513 3408 4 v 246 3598 a FF(\010)g Fw(`)g Fz(func)o FF(\(\001;)15
b(\000)817 3612 y Fv(arg)921 3598 y FF(;)g Fy(\034)10
b FF(\))p Fy(:)p FF(\()p Fz(enter)p FF(\()p Fy(s)1424
3612 y Fv(1)1463 3598 y Fy(;)15 b(:)g(:)g(:)i(;)e(s)1708
3612 y Fx(n)1755 3598 y FF(\))p Fy(:e;)g(`)1935 3612
y Fv(1)2001 3598 y FF(=)25 b Fy(B)2166 3612 y Fv(1)2205
3598 y Fy(;)15 b(:)g(:)g(:)i(;)e(`)2445 3612 y Fx(m)2537
3598 y FF(=)25 b Fy(B)2702 3612 y Fx(m)2768 3598 y FF(\))h(:)f
Fw(8)p FF(\001)p Fy(:)p FF(\()p Fy(\034)3106 3612 y Fv(1)3145
3598 y Fy(;)15 b(:)g(:)g(:)i(;)e(\034)3387 3612 y Fx(p)3427
3598 y FF(\))25 b Fw(!)g Fy(\034)0 3802 y FF(where)684
3890 y(\000)741 3904 y Fv(arg)870 3890 y FF(=)g([)p Fy(s)1034
3857 y Ft(0)1034 3914 y Fv(1)1073 3890 y FF(:)p Fy(\034)1138
3904 y Fv(1)1177 3890 y Fy(;)15 b(:)g(:)g(:)i(;)e(s)1422
3857 y Ft(0)1422 3912 y Fx(p)1462 3890 y FF(:)p Fy(\034)1527
3904 y Fx(p)1566 3890 y FF(])684 4004 y(\000)26 b(=)e([)p
Fy(s)930 3971 y Ft(0)930 4028 y Fv(1)970 4004 y FF(:)p
Fy(\034)1035 4018 y Fv(1)1074 4004 y Fy(;)15 b(:)g(:)g(:)i(;)e(s)1319
3971 y Ft(0)1319 4027 y Fx(p)1359 4004 y FF(:)p Fy(\034)1424
4018 y Fx(p)1463 4004 y Fy(;)g(s)1546 4018 y Fv(1)1586
4004 y FF(:)p Fz(ns)o Fy(;)g(:)g(:)g(:)i(;)e(s)1951 4018
y Fx(n)1998 4004 y FF(:)p Fz(ns)p FF(])684 4119 y(eac)m(h)32
b Fy(B)958 4133 y Fx(i)1016 4119 y FF(is)f(either)g Fz(block)n
FF(\(\001)1715 4133 y Fx(i)1744 4119 y FF(;)15 b(\004)1845
4133 y Fx(i)1873 4119 y FF(;)g(\000)1970 4133 y Fx(i)1998
4119 y FF(\))p Fy(:e)31 b FF(or)g Fz(hndl)o FF(\(\001)2545
4133 y Fx(i)2573 4119 y FF(;)15 b(\004)2674 4133 y Fx(i)2702
4119 y FF(;)g(\000)2799 4133 y Fx(i)2828 4119 y FF(;)g
Fy(s)p FF(\))p Fy(:e)p FF(,)31 b(and)684 4231 y(dom\(\000)948
4245 y Fx(i)977 4231 y FF(\))25 b(=)g(dom\(\000\))31
b(for)f(eac)m(h)h Fy(i)p 0 4431 209 4 v 0 4543 4 113
v 28 4519 a Fw(`)25 b Fy(P)p 205 4543 V 0 4546 209 4
v 759 4715 a Fw(`)f FF(\010)91 b(\010)25 b Fw(`)g Fy(F)1226
4729 y Fx(i)1279 4715 y FF(:)h(\010\()p Fy(f)1476 4729
y Fx(i)1504 4715 y FF(\))k(for)g(1)c Fw(\024)f Fy(i)h
Fw(\024)f Fy(n)90 b FF(\(dom\(\010\))26 b(=)f Fw(f)p
Fy(f)2728 4729 y Fv(1)2767 4715 y Fy(;)15 b(:)g(:)g(:)i(;)e(f)3014
4729 y Fx(n)3061 4715 y Fw(g)p FF(\))p 759 4757 2383
4 v 1498 4837 a Fw(`)25 b Fy(f)1624 4851 y Fv(1)1688
4837 y FF(=)g Fy(F)1842 4851 y Fv(1)1882 4837 y Fy(;)15
b(:)g(:)g(:)h(;)f(f)2128 4851 y Fx(n)2201 4837 y FF(=)25
b Fy(F)2355 4851 y Fx(n)1905 5589 y FF(60)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF