gperf.ps   [plain text]


%!PS-Adobe-2.0
%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
%%Title: ./gperf.dvi
%%Pages: 32
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentFonts: CMBX12 CMTT12 CMR10 CMSY10 CMSL10 CMTT10 CMTI10 CMBX10
%%+ CMSS10 CMB10 CMR9 CMTT9 CMTI9 CMBXTI10
%%DocumentPaperSizes: a4
%%EndComments
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D600 -o gperf.ps ./gperf.dvi
%DVIPSParameters: dpi=600, compressed
%DVIPSSource:  TeX output 2007.03.31:1631
%%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: f7b6d320.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10
%     cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8
%     cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10
%     cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10
%
/TeXf7b6d320Encoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand
/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen
/period /slash /zero /one /two /three /four /five /six /seven /eight
/nine /colon /semicolon /exclamdown /equal /questiondown /question /at
/A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X
/Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: 09fbbfac.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmsltt10 cmtt10 cmtt12 cmtt8 cmtt9
/TeX09fbbfacEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi
/Omega /arrowup /arrowdown /quotesingle /exclamdown /questiondown
/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla
/germandbls /ae /oe /oslash /AE /OE /Oslash /visiblespace /exclam
/quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon /less
/equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N
/O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright
/asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l
/m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright
/asciitilde /dieresis /visiblespace /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi
/Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /arrowup /arrowdown
/quotesingle /exclamdown /questiondown /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /visiblespace /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: bbad153f.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9
%
/TeXbbad153fEncoding [
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /circlemultiply
/circledivide /circledot /circlecopyrt /openbullet /bullet
/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal
/greaterequal /precedesequal /followsequal /similar /approxequal
/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows
/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast
/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup
/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional
/prime /infinity /element /owner /triangle /triangleinv /negationslash
/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur
/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection
/unionmulti /logicaland /logicalor /turnstileleft /turnstileright
/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright
/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv
/backslash /wreathproduct /radical /coproduct /nabla /integral
/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section
/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/minus /periodcentered /multiply /asteriskmath /divide /diamondmath
/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef
/circlemultiply /circledivide /circledot /circlecopyrt /openbullet
/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset
/lessequal /greaterequal /precedesequal /followsequal /similar
/approxequal /propersubset /propersuperset /lessmuch /greatermuch
/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: 74afc74c.enc
% Thomas Esser, Dec 2002. public domain
%
% Encoding for:
%     cmbxti10 cmff10 cmfi10 cmfib8 cmti10 cmti12 cmti7 cmti8cmti9 cmu10
%
/TeX74afc74cEncoding [
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega
/ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve
/macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
/suppress /exclam /quotedblright /numbersign /sterling /percent
/ampersand /quoteright /parenleft /parenright /asterisk /plus /comma
/hyphen /period /slash /zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /exclamdown /equal /questiondown /question
/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u
/v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space
/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef
/.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute
/caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE
/OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
] def

%%EndProcSet
%%BeginProcSet: texps.pro
%!
TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
end

%%EndProcSet
%%BeginFont: CMBXTI10
%!PS-AdobeFont-1.1: CMBXTI10 1.0
%%CreationDate: 1991 Aug 18 17:46:30
% 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 (CMBXTI10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMBXTI10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-29 -250 1274 754}readonly def
/UniqueID 5000771 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D004B836D34E88C20EEB527CE1124209388A2DF
E27A8DF298A2693A9D529916AA0B2176E6ED237F69D84A8FEEB36861D1847207
BE2BD61C6A412FFFEDFF13AFEC32AC7735BCCE5965F5966418A62ECB99112AB3
3BC938EC590FF6922659125EB67E260BF02885E49BA6019E696D33F0B53606A2
F515E0C45F323311613A94B838491BAB9FE230C5CC79D22925E3D882799F2707
C32975A494F0F9513E4D8332E7E54470D9721FBD345CDBB48286F2F19CC6D66E
BB631DD6476A509167A49CA525A72CA50E82C1D08C2B372DB54C5949C753B632
2009B761EB90492ACD3CBE6A35CE1B66F3BC4D8DC36827CE4261A703328451D1
879438479917C1647772999171DCCF1491A1C9086E0C6393506768F8757BD81D
141C46EB9BF507EEC29962A0072B6C5D8C8588F3D68886CD2606DD3BD2FECCEF
63245494E93EEA12AAFB06110E54ADC444C7E7619627A48A464394E5DE06EB46
4C76A2FF010318BBE48B3776C826A265C66515717F7F2E943C60EBAB23D96B5B
FD514A1C4E79BB3D3D2DEB936F90CD3FABF7B09FF7F564AB5CF4AF6A40E869FD
395885A88F4A138B3CA6943A2D430BBE43D91F7F17621CAF52FB7161DA3B2003
82244FB6EE792DCA1722C03392C296C029A2DCC5BAAB3EA03F8DEB039DC83AE1
763AAB84776A2CCFFAE9EAF0BFDAE417E8BE682D237FFEDAF224AC09C9665019
165CE32F5349E857177D94AD6396570932E1657ADE4D3FF57A3419946CCD210E
57E5A1D91CF708395942527D127606350924D71BC21C6F969288B1C8CA3404ED
E6219985F7301A20621368F74747EAD38990A4C9F2B62913B8FDB93657409FF5
178DAA7C97C35EAFA47778CE03E863303582D8A9900EF4F8DA879DED54BACD7A
4A50C18AA2ED906FC4DC073B1E6CA1E3855AD5B7698EF4A96B77DBE19A12382A
CFA8717DE230CB6182F2250885B8E90AC42A66484A7B527061B223A6D1CC72D4
890359E7E04690BFFA99FAB5CC9999F0873A9DBE49E33F79E483FAD72313DF9A
7B7D926461988C23CCE9F71AB7BB63BDB2B10B3F78176380AFFC154825C9BDCE
82303FBFC3B59E070438984C28D12E8655BBBF049125BF56DD2B0DE8C0450E55
82832DA59EBEB001AAD86F2317460DD7ED264611B9043614221ECF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTI9
%!PS-AdobeFont-1.1: CMTI9 1.0
%%CreationDate: 1991 Aug 18 21:08:07
% 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 (CMTI9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.04 def
/isFixedPitch false def
end readonly def
/FontName /CMTI9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-35 -250 1148 750}readonly def
/UniqueID 5000827 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E3948FFB3DF7BFF10C9BDA4EFE5F68A8CB1526990D1357AE6D2F7C2D2EF8496
4E47B39E6712EB8908A3265E5FAB40567E866C244814449F1E993AAB422C3F1D
DFA8C7118584F2E5197FD4BFA3A8AE9E953C6CD4672C0FF51E41C3A919749C1A
F06650DF4C5E17492164BDBCDF22609A74BFA7F69960A64B9F949FFC2A807458
8579366C4F41BDE1FDFBCC4845FA19BBB6963D65EE8532549274BAEBDFF24FA6
03235D1BE37C06B1938AF369DA75BF38DDBC87A1FF445EAA16E1895ABE9506B9
211955753E447865D33CEF007391D2666A046277A30A49804FFCED3FEA5EB2C3
E52EE14A9F75241EA10C91974CDA6236EB840FD44D6DDE4D9B3266C3B99BD38B
D835BCA8CB819C073480FB972CC028D218F6A1D344CE1B63F4FBF2C826F412E1
6E0B05A26125865A14FD7B7030B478BB8BC6BC395335C3BA940E1C348267F4F9
0AF97BBEE253511940F1048E175D3569F7D05A28851B6F50765FEB6C9654FEDC
1BF52F535DB5BB90C1BD5D2EBF75E0AEBE82B20507F3C28A03746781018D4EB2
298E4F2C27ACF73FA73EBE43F014BB575AAD516C0407B29E1653375135ECB74D
C91372F06FA8EF37C31AF3FA48AE65318EAA6C34830A5377ABB2DFA5DA53A574
433484BA1466709A4B186761655C8E482833B697673E847C691079E7F1DCB8D6
1AD91101D757B83E2090337D525AEECB028FB3C9F6A6E6AD2F322CFDC5A833E6
1CE4EDBF41FD34FD61630581D222F854A76C2EA9FD72796A7C9CC1F6C2FCCD16
E95CA05826A4ECFADA6A5FB83C41A7131E52BA6585DD6DD78515D8F7327DFC6F
9404F89293D6ACB433CD0802C43F0E74C6C4766A23A6AE3788FE6CAE82E1A104
BAEC8BEFDEFE4F292F625E60362F3886F602CE4121BF0AAD93526314BCBB5971
40091A7BBF7EFB3BA355B88C897D9C70C841DE41309348751EDFFA8675215988
49CB1599834A01EC6CD4FD813AFF97A614F56975775D5F48E9C1A9CE532FAEB1
4EBE20C3FA87CFE03664C428BFC5C894668E507950005BD8C2BCA8998C1FB92C
4E6B791BA05B79F332EB8AF5B0F851B8B7EE372EC0861B09C007CDF43F82D0B7
35446F682A0DA7F4112CDABE4F922EACFCB7B8C88BF550B60957E7
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTT9
%!PS-AdobeFont-1.1: CMTT9 1.0
%%CreationDate: 1991 Aug 20 16:46:24
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMTT9) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT9 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-6 -233 542 698}readonly def
/UniqueID 5000831 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D1E
2931CE5F5D18C658602059F07BE66E6EFC9239D7AB2FB8A4CBD41675B8ECF279
650C29E53B14AC0E392A664848C1844B1CECBB2D5CFB72D0916B675C9A9A1E35
F12696A6F628473C604A95376468E06E295AD6F76CEB939D94113532050B9D5A
D2F41A9EFB9424D986612313B89EFE9C8A71313340B248F6853B1EDBF02B7F9E
F447220FE131D7D54CFB8AA1281DBAEA73E665BACB1F164552CC0CEDB63BD4B1
4A9AE8AC6FA02242DBE8DA46B64B6BFC11762F0784F216FC8B9120D688D1705A
438B14F5E5DEAF2A98408B3B64620DE3732A4DAE6D08D5D97E34C75DAE19EABD
BA0796165C1151BCBFB1DF8D29A63A8300DBDB9E3323CB82D0337598B83F4F2B
A97CF5196D4D1CEC1EDB8966E548C0D9C194C932319610FB43EA1B86322FE641
AB48770FF13BD475A7267E142388563D1A400419C585B22A9886074687BEDF74
D905BE8EE440BA2ABF28EAB673399B7F129B9729DD5564C681954621903B84BB
CAF89AC5ADB2932472DF29ADA2BDBDB4D05F65F28F5F4C529613D61858E0074A
082A852710A62A147C966F2B85B51B0BE85F11D2057C66FDD61F6C5755367980
9F4DE680601D4DA41B46F8D2148450000413C27AA39B586B74B977B25F0FD3C0
4BA1EBFAFDBEC531EA13DFBD6700E53818CE04D23886B8AE75DCC36BCD3189B1
0D55FAE27D0D126E82AEF31D7B5DF27E58C30BB0867D6D7AC1DA9EFB8A2DF095
B5B934A68EE122DA0A83B36C952431586B957990206194E89339048AA6EE4C53
703763505ED57C494DD907D0EEA04F6B1D4C8F3BA778F4E7AA832AAB4D75F024
61E91C6D25FD6823CB24FC863AA50B9B6CBA06BE11814BE6DF2ECBC59614A061
67311E64620BA968BAC5A4AFBB51194E1EC2A8A6460E85C23C146388B0A16BAD
B9405D3A50CBF9F2060A32C8F37340EE51E6E7208F705B41AE2C78707EDC4C1C
AC4BA95875F0634C6D5BE1C5DD4BA35086F660154CB1D3E176518D634B551319
E8F8C5EE80251323C86C9DAD0FF8F360F4A2930AD3266999811333EA73405FA9
55B447DC8EB07A0C64CF2404BE8C6C7E6D263E799B1156E68AF1361ECAD79F9A
182A71A49040A9960826E74B88307F4C0061046C0F9DBFD25A642E9FA82A691D
FBF60D03D2BB92FC09D4C814CFC0DAC28690CBEE9D9E73FA943FF9C68285C683
C4E1AA05DD669D24AA5EABA214FFA994E61669821F0FDE4AA2BBA18FF4A11397
515996FE402DD98FE032C6171DA1E40D4F870BA08FCB5D093525EB366E825445
E58CD3E6FB72291DF9288707B8C2D1F96D0895CB316B74585745CD1F636936DE
9572C75BD823D3869E264E452B1F2554C20DA7A0A38F3E80646D1727C836FEF5
85C22382271615B6F994C34A5DAB5031F1FD58DACE3EEA8DEC66B6E683B68925
DBB3820FD525D0C07F82528B06E34A5AF65F3BB11DAD02ABB66C8A0670545071
97EE01859BCB8179731230D9A8BC52A47656A84BBC7D1AC118D497F14937A1E4
C5A2F171412185D365B7D476C872132CF8E49F87C8EEAE6EA4AA5979EED7831C
061384E91AD71AE04E80917B07F85F12B4B88D46BADDB6D9B56C4BD028FBEF25
432A07B83E81A23B3025DC6D2AAC38F40F5091CA6275E22388093E9C46B97774
0B091D60F2F85CE5B38A64B4EAD179C5EFB72A6DCB31BF080E62EDA70BC27FF6
70F1E6B7AA9B60BF19F52116D919FECE991946C8890766CA834C9EF887EE05B3
7870F0905663F66B483BA94829EF58BB076166A40809474ABB9EAD15FD21DAAE
DFD13192EBF5CE5F13441BF33910DBE1F03F24F692D229623974FC0545609E1D
04774A010546D9DD7DC565BA9118C9162C4EBDE79684398D055BE9817D5323E2
62F47521C9E9B45123A1A9519258FB0DDB1068D7F92F38FC65F38D3479E00B70
4193F003F92F1C80CA0B4607DC1A60C1D342E9298969B23BA9247936279F8D98
D953AD865D937F7B9FF3424B4263290802A53C3F1ACB5BE00F4DB01D8ECCA322
BC02E1A1E025CF85C960D6DD73D4C53474544B17EF73DBADAB9FDAAA93B627D8
7263110ABA54DF1D3C1F83724DA049DB977F630706988FE0192FB53F3FD9417B
C24BC1B3CC184DAF52B07F2B4461190E0BB06EC6B4AA0A9417C66AA20DD96F5A
8C7DB7BF022830873F5DF031C9CA661B1ADB1EE2F7B08DA3B3DF127D52CB0B88
E01E4593AEBE23FF5177B1EED76EDCF84C6272C677D6B221A35B420D93252183
6B6536F0477E7540636C30B02BBB7E4C33CED1C4EB6462FE2FF03FA3451F952A
E1BE1ADCC347E3B4BF0F551CFAED1D123F30493E4DD71883B8FFC6BB4A855D02
5C10248ACFC1AD3600D7A504D043BA4026BF29357D11489F6E2534111552D79D
C1892AE149061E5D86C01D82C52427B4486F88AF9733EEDC2A27C59053189136
14BA6AAD04DA9C35B8377E339BB1678C533A8800AAD7736C4F2C99C979F1FC11
65F2605F4D77A0F524E259C75F7B5C319229BF4E006F106D2E53057537E646E2
3E04FF414E52AD68BE9480B3FBEF472C446BBD928758558F299AADE32E3A947B
DAE1A1563E506753D5DCC8692D9315729404956DB585209C512C1843F11B1B68
9662B6F7FE8C288C0D4E514979D3BF3FEFAFB4694D8969DC6D238D4310141BDD
48812F4E2EC6FF9B30A19E7DF6176643E8BFB9E5FB5FF44269696A120E4629AD
AC47AFC0E43C9048552F47096F6030C87AE08B6969882EAE4A63C8EED064943C
2DED79E266545B8807739CFDAD5AFCBEC84CD577DB0956B7D3E573FD4D150683
C03F339502B0B7FF14B05F8063BFF72272AE941313A2A87833B266B29CB4768D
A5561D5E0D385CA96B0D42390F7F8C8D0938557CD4AC52571E340F7E9DC7BD6C
063CE5B9F584D60790CACFDDCBF46408DD37B8D2D77F4FAE3F3579BD601A6508
F62883BBE55CC900D4FEC66C95D04CC0FCB7F9D5FD0AFF3CD8A8041FC2A7DCF7
923720EA109E2447287D4DA7B390DDEADA6001948FC5D7516BC41D9F9045BD6D
44AC9FC7953A1B19C48F938DC7DEFCBB895F29609438B0735BEE9FE2350EC3A5
D07572A3DEE070F22139209F577E0F2635A2F081ACDD60F1DB00E8547E0F2043
A372C73063C50FC37662588138538BF02670D88E98CC6BA37A7854754896E36D
9660D1B57E8561F7646763B47DDABE791A22795EA0052A5D5A1215575DB845F6
72812840395A3FD09FB64C49E1FB301F894B81641D5F4E118E51376133FFB60C
C0D7E53AD245747100747C1CF79E43074FF660FD9CFDEBD27C314B33909993AD
C6F74320515DC8662C18D130B573866A425A71208BBDAC74B9856435F0BC8743
8B7B0A961EC6A50BD7C28A37D1B498E201C669DF18DFF254B46E1F826ACBEFA9
63F784B55FDEB25C47344D51C229576ACAE0B5668854BFD2F3C4317B9B8DB678
D7070B27D4F58AE5285EAE9112CB06B91B3B7EDD674A7C1CDBDFE0E908918DDA
070AD7F1AC630485BD63CC060AB809D959D8351EC0D0B16C5928B04A96FC5F43
E16AB4A92FFB345217429544BAD0290BB0301B39A461CB1112D666BCE90BF37D
46314951443D48B66F87C300F59553745A5218DAE7FF319EC6A3E54A08E2BD78
87DEF58A90F21E2EE89337287C672F039B99C21288A3893118B11BE6192B359A
743E7F2AF63D9595C6F0BF8E925A4611F5C9EE53216EAA6EF28F76CA97D8C608
668D4F2B9F4758443899761858C7FED1DEC31C7063D52A54BBC52408AF7599E7
B00A06EEDEF1C6B89CD64D83878CA3509365ABCB953BE258703304FD475B5423
6AC41B9A01FFC163D00CB39A714CD4C4EE44BD3B72B836FC6FCDC5B4807BE0EB
105F308F6F0BE0026ADFD15C7FDE8125F26FF0464F77BAA01417940EB4921F84
642BFFEFEB1B260D6D5DBF4FE8E4B27B735538C00E1A1E113C3DAD716BC5FB2D
4CBFA14D80494869D98F2FCD284A6FB0C21EAB1E9C39B2AD13ADB3F1ED11462B
6AF1D508F725D720F13E05F9DD829B6A4E85F2875FEABE6E08AE8AAC5E3E3CF8
20252F986C06659C956A91DE1A55F4562F69083693A506EAE83D9D3BDF3EBAA4
929190CC32FFD3110C91C45B8EA7244EB90AB715F25651276AC763DE439FC1E1
D329C8858131F5B9AD33EBB54DE30BB896605EB41F6D1A82AFA2F67BBC0CBFAE
65F2CC7BD43480E72FC9A320A8DB76F4C5BCB1AAFF01FE05F2473D109B72B367
91E8304E2D56516A2A0D36E9FFB237696EC8159D8A8132E8FFCCC52788A34C94
DA762D34516E07D639C7E2C92BF9855745E603F30E756197F77AEBED83C52A85
02D6922B39AD6F223D0EDC2B9355212D32770AB4E2E5D42D10CF3ED77A321A19
5BE4566EFD21DDAF65C9CF4961033D298E0A4CB01885C53E92104E816E261DAF
00A6CE7C501CB2282BCA60C641B298C8A5553F9CFCE711C6B677EF94039BA4A6
8A29B04C69D6B0C586A3DCF1D323B611E87741353101D201B1A51C58C5653808
A88DFF583970916F252F79BC09989A7526C6C004205396A6AEB5D5F893AD2BD5
21A7C70CDC4441826B31DDD7CDF72AC95954258EF01EA58BEE077E7496541955
98901F9DF5C3D9871C2D73D5BD55081FBF2903AB2D666B062EB59271D5DE2979
B6B7D9E6F98CC2BD25E93B963F8069FA557DD229EB689579194DD23552D44B76
CDBB0393E7495139C765A901796B27B4E1BDA58879E335DC1094419537150FA5
9F3C8B24BBD04CFF6EDEFA0EF0675831D473D08C563607F8B8FDC779A888CA90
59B91CA9455F49B75D01AE83E29B525DFAA3EE8AB6921C98A08C9863EAD03FA9
A06CCE0D2E4F5AE3B58E874962521BB632F40AC0253EFCA8080F388AE87930BA
2E6F251053FE3FACC9B8F5EE35C7E11C527BE04A313B15056DB5A2BA9179D38D
65567D7BFB41E864C5A628D92FA9CE07DCBD3F61FE5716DB80B0C4BCA5547E0E
5FD095421ECEE9F3AB0BAC5282D6848B592334CA0553776944FF72F033697BFB
E341F5F006FFE5E1C3794289CC7E5BEE9049F11DC4F4FF6CADF6D2FBDD87A66D
33916034A78D3F8B13E30DB2D5876405C8C4E533003DECC6839988E716B54CDA
8220EFCF0BD284F26CFD5CFAC1A680420DEA1C9D925BAFDC063414D6E9B3C67C
EA61C4348DEBDD601C47517288D2869E815FE104291BD26B4CB623FB24525981
3401580E6E6C84914AB9CD91B3B541F9AF742119DDE659146A4BBD4A3F532DDE
EDC29E58F4C2AD9B78F1B6B4C7DBE74288E9900EFE276A22E74B82D20F231789
79D72B1AAE398B8981D33E6EB27AA29530E169EA294A1A76AE941F7BD33F1333
59EE7F2448E0A2DE3CEAA02DA052B941718DB7288CBDFB0EBECAB5473F3A1E6C
6E2B3A823E92F9BEAB5E704CC717B170FBAA1F6021478D676EBA2DD8C1FDFCF1
EFCB0502845A1CA22C344A9C309B450E7C6D1970F12E5F21C1016C64373EC731
3E5D4EF7C86285ABFBF6CC8A7372E0A2269E44F8DAB78863B26B1C13F38684A1
746BDEAB3C4707D0E1D519357925041A9A34D39ED75056CFB3F80B428FC318BC
8D61F7B0B560CEB296163FFA87579C15978A6F85DF244597A2D69D1C952A9062
76B045F6DA725A0C50EE54087F2659E783F7C184C5F5A6429A7B5FE905C100D3
DB6106A1F5946314CBBE013462A62B9F4F2B053B14B6228D8903604E7058D1A6
22BF06E2148918CFF2CB8B7A5023D59457A3E4D719E4E21234D29A2B62BF58EF
DF5719C6976AEBF9FE7BFA627466E421EFD90E7EBCFDC0ED82AE79DB249BACC8
24194544826B53932F0D6C16B97D322D2F546E00E63E27B3C44FC2C1CD2865C9
BC3DAB3EE336724A1A345970B38E806B56C9E810C4FF6DD701FD61581F9A8467
EFE2A2C0A57DA04CE84281E8F2EA799428C46D9F08BB07AF3E4E293EB87A675B
C74F461086C1DE798DADCC23739195DF2479E6DCEE0E582AD55E8C496BBC47E5
403003F83C523D37DEBE106EB00CBD0E9E84BBD73CC823ED2F3AA3BA824E2C53
B2B1FC67C4FCE94A1CA568ABA7AB4950782644A47D3C040FBBA833EC0D00DE03
392EDE905C67DABCF6F0BA9771A953A29D3A02EBE2447D3AAF484BC461FC4EA5
A3EB4985F5FEA614785F962CABA273B5952F73B4048EF771A78126D022471276
C4C3C9DD5C8B2A7C89D4C4804357131E30F5734C93205D8C98D1152B7C2F3D5D
8E1DFF1731595F17AB58A761A56BD1A336C4EC203BDC7732FD99DEF3CCA1C2C9
0DBE11653610D192D0AA776A6AA0B493E5C2ADBD3D03598398251898FC879533
154162AE4A5BC9690F00F8976C3FA4C506325DB5E744642DDBE32FDBA38058BF
492C8FFF777D58F0D5C46C224C56FBC86908C8E0F7759ADE27D8BC5FD2752924
12EDEEFA51707577B91C86613D4A69FFB236E615D74F49455E31F2C5FC9F003C
DB70FA20D5CAF86CBC7F0F0413FDD4CEDD99741BD89DDD66778DE46DD98D6AE3
EF40473E16AC2A6DBC60F475132FC96348ED87E28DCB1074FC52D0EE81BDCE62
40869C9CB2B91B111B445B445A17782E194EE36F4BC5412788BF69D06801BB3B
224066F35E04CEE0B3B81894724C084A813683B405124171861802DF38D44151
F2A7FAA59DFDA16A881B920B20F3A5FDCB95330F0D57475738B0108ED4C476A0
40803FCDBCC23B284286A483D3AC86E98F77245F25E649AC4B6F8CC9E06D6F6F
E29E993CE6F34D76C6C8E7615350D47EF57823100F1E8101CEA89BFB0FCBF05E
FFBBBCFFF87F6A0D20E56B9BEB0D4807C856A82FDAEBDF6E756A82C7D480F128
3BCA96BC773D8899A9166EB6982B5566F262D0D4442D752D25DA750E9F7B2E26
8451CB3CB6978C022BFE32F4FC829F52CF7E856A2FD27E5C29E69290BF7CECD5
953F8CFDEDEA316F5BB0BBFE532E688793A86D21B17753B5585042EA0398800C
3840803202FC945E4BF72C8CAC140FE6412187142484B7EEFA080419A1BBAEBF
C77BC72CAC7E668B3217B1B9775E585BDDB10F4ED705A92FFEBF6C4DFB6F8C84
8383D9DAE4CE854304F0E84D777B0EEB9AB5DFD573AA2556A1B0721D2C31858A
B6F3432BC2706920
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 0 /.notdef put
readonly def
/FontBBox{-39 -250 1036 750}readonly def
/UniqueID 5000792 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FADB679CF58BAFDD3E51DFDD314B91A605515D729EE20C42505FD4E0835
3C9D365B14C003BC6DD352F0228A8C161F172D2551CD1C67CD0B1B21DED53203
046FAFF9B1129167921DD82C5964F9DDDFE0D2686875BD075FC81831A941F20E
C5CD90040A092E559F6D1D3B0E9BB71733595AE0EA6093F986377A96060BF12A
A1B525CD9FA741FE051DD54A32BECD55A868DD63119A4370F8322CCBEC889BC2
A723CB4015FC4AA90AE873EA14DE13382CA9CF0D8DFB65F0ABEDFD9A64BB3F4D
731E2E1C9A1789228FF44116230A70C339C9819676022AB31B5C9C589AE9094B
09882051AD4637C1710D93E8DD117B4E7B478493B91EA6306FDB3FA6D738AAB1
49FBB21A00AC2A999C21445DE3177F21D8B6AAB33869C882613EA6B5EC56476B
5634181ECBF03BFEDB57F079EACE3B334F6F384BDF9D70AEBD592C8ECF21378B
54A8B5DBF7CB9282E16AA517E14843909339B5E7C55B038BF3BB493F3B884A1C
C25F9E8FB912CBE23199AD9D2C3E573727701BA301526C66C3617B9514D6F11F
11930B1D97C17816C85B1BFD9B973A191B33CC3B391815AD14F1CBE935942AEC
D4004E6BEF379066FD72209DC88D2E634E79BCC2B98C766CBD92C561F2703F8A
109E6C6CEC7B866F2FC7ADF646BF492E520319F3B949AB5D84AE990B33344A40
3971F58DFDF8D8D67FA0B8F2A0D884F8C09A5A721319B911DBA0A35903877343
C37BC36C5EB32353272D1E6ED5FCA611BE319A7E1E842CB7576E7A66D8E9C810
49CCC0D35AE00D3669EC7D8ED957EEB2105BDCF7408E0B04A325495D38BCE845
E96329244411EAAC14D3ABDD2BECAD7D391ADFFE3F7565B14FD29737EAAED3C0
7F3981DDBE07D4AC09F6C1A32369BB88852CCE980C1E950E27EF3CF8A840B393
9792FC1A510BCB4A2976BB640EE4510EA2BA3C7B5FE02F5F0F845B6B00F617FD
EB4655CED34B0097F22329071DE7738CA994BD0F983C5C4599AB9161F3776023
9AB724F231D9C38A76FC8F6A2DD4E6C9FD2B8061CDC814442CC69E94D437AC78
B2DB204A99A3240E1123E0568F6EDFE11586FD1056FD547B7CC477CDBA05F4E8
267F1174136F0A6F1DDF36774E8C58C3819ACBD9082D6F8D32787199B991C539
66ED8AE31E98A78F906B67ED87FC30D3E9FC8786D38A1DA49EC9D1075CFD4B23
CF86014DD39A0875E64A40A1EAA6BB9B2D5BBE9F5DA15A93FA14027AD2CDEE21
F3CD937930BB35F12FDBCC15AAA27B26FD9A3965CD3DC6EC8981BE0B1D1B54A8
EAD03882DB414C55E69F022DCD972D2509CF438F5A8A3D005D6C4840FA11C09A
D80E4E7A2A9D5D35C9F90E74B6879428B3DBD6A9F65988921495F5932718BADF
6A1D0BCA5C28D95C77DB91FED97E631BE91F12FA8B822F17C19A40432BB51FB1
32456106CA12387835F299D2C835A6015DA041BB8EFC89A05B9E14B431EA49F9
663EE20B464A0D899E959809FD8CB94DF654FD60CE3DBF43B68513B73D370DC4
A1D6EDDA5A97E4FA33F076A46798F08BBC9A8B881FC98A6FC75D6DC35F11B006
1CAF7B4C1EB3D842AFFD7543E0684C08B9066580AA87DA60063917085B15574F
89A66AE6142B501DDA88AFB6CA54715FE9C322FCA314B24A1EFAB4540D29D4BB
5D9DEB2AF0D3EDAF249C7CF44E9AADB07378AA79856A8547723981F63B34616A
A2CE9FE46E701270235FA81568A236A614278FDD2178DCED2E89C67F73B17241
EE3963A20FEFD28D57A5EDBE9038EBD14F2B4522FD33E87FA15346E5650AA523
90B3C06C1F5C58C3A724E492E37D39B2247264DA02E5429062798387AE75D344
B2A49017D786F5CD038F47BADED863CA9B0AF8DA68D7633997432A8289FBADDA
5C0CB9DE70AD5C358A34D05719104C5320810984B09B6DF65D8D55F515704E6A
85DB3EB4D3E1174450D67D5B9BA65575697EBDE700EA6A7ED78BF125B86C2EB7
4F8A3FF408A4330A1F7DD21BD4D991A864F75E203F53A1BC423F071BFCBBD398
B6F473789C02DEFC495FCB176636A5FF6C1097F2B262FA55283560FDA41BD09B
1BF15AF3D55CA3B8EBE99822F2B0602CAA02DD7CD9C06FEC22020088B328DB5A
72C1B42A7EB70B9D3CD7186AF316B9C769CCE07C7EAE3CE6C0C297031C21DF01
50934FF9983295554BA5250B84F48E8A53C12874628AF7CE155C400045F836B3
9A9FD9C6DE9A85556AFAA011619597D023B229B24DF27DC30C280C2DCA6BFBCD
DDBD73738D049A34EEC427B15463A22C989AEEEB870BA80D2A161EB19EF3B07D
47381CB799907C723BCEBBC23591FE23EDC4B5526AA62AB69915A29E204EAA4E
5CC6F50ACBA322C147BCDAB2037942FAC0BF085ACD727037939DA6D679A67BA7
3C6F125FB7E95C37BD9E69F12936506E2591B7570D0D06C5EE1226966DBE3281
D72D682E570029A49A5B566F2A34F3C4D1B74A845D7C4ECDD5FF077326FFD7D5
2D67EBF1FB9B8219B6FDDBFD93D204B5054B8DC0B59264F944F6C434D73958FF
942CC33C4EA712E73547F15EDFB1D4F7E9F48330ED24D61CBFE4F1435345EB52
2654BFC97CDCB80219941377C9F08E37DF676CBF8F1FEAB31B93CFC356A854E7
2D44997DE52B3B61140EA94FF249DA41AFBAE054248BCF618B171B28885EEFC9
183C4BBCAD4F7D2A230CE4490DB184D4E123309718E5353970D4AC9FBF38549B
2211875F79D431340D5CB6A0B9CEED0EA26179121D155BA81B5FDF99C5E8D177
3B0B10814B81E4FA26B9B5875FBE7E2623B17AB3C04419DD250F0DC422CA6F8E
1677E46BEA2596BB7D52917E49A8B175C5A45B53DFE99CA1A1787BBC65E9B335
6BFFCEA2D8CA21E457AF27A83B192BA9011143B82E7ED7754C85677024104E9E
961D89ACAF6EF14E51A027EA3E4BEDE07899542ED05AEBB63C93A73707B33E29
39F159F1E4C042BBE672C661E8CFFB9E2D99A21DD37C67DE76ECAFB1D86A25A3
A35A5644653C5571B5B7AF8317A12C65C9D0701197BD6981DA6491AE466730A4
317FCED66FAF5B548D00B28D8FC9FA581206582A43BC8AC1C25A6AE28DB6F993
2C4EA8372A77DADB48E84F2BF0B13212782210593DA8843CE20F480189A6B1FE
F25628DFB0E80EF6246278A977779771ED41C18D149AD5B9029A350BA27B2DE0
B4BBD5846279AA5A7EF490E93D7A29A638C6D8300E4DC86BF13EB1B86861879A
3B040982E4B1E3644BC982B7F6F3EB5E0E68E4ABEC782B0A5D4A118344510C5B
5C713028D1055D3FE8F4021F34D6633100642360E78818624DADACE86C8959D8
FD3D17A6C3C68BC57D4DBF3C2C1DDB48E485477F8642FAB9CE972642CBFA1E55
E8A49F277958C2C5BCF94927BD4BD1BDE65CB7881DD58A19DCD4520AB550170F
75F2DB0F762D0E299B5E9ECD77D2DAD70A3D669FA0A35258501111F87004D8F0
1176446116A6947D9A9EDDBDBC8970E467C0C297FF782FBC792D67F6670F04D7
E144383D0FA67DAAA72320881BBD99AA2D5FE15FC39875C76CB51358942D5972
255788796AD094FEDB21A62649C2776D06DDE5845BE618BA586039114287BABD
2497E94EEC93B5BE6CF26EAD350C3054BE1BCAE4C7BC8BA00D790987A4B22427
5113579591E22C858E9BC334D521C79687E727C500A49D64A04D184202A8CE6E
2B3E061D9782A105E70E41299F921DED673BAC72D68E7571DEFB6BBC74F85A1A
459F0E3E25D6D7537A03599DAD46C0D5E2A16FDA46A6AF0FE03BD8C83B6A98B3
859D90557D1E57EEEDD7F294367EAB4A974F4B335919D82FCB10CFA5198C53B3
F2A1E716E911039BCE3518A2313586D7AFF353A7922B93177A09161161E9D762
A7821D0BC443C593D9E2E1DFF06A886FB5AD8138488C7697BA30582D762163BE
6C7B8DA2E878BECB58C6AEF6E7A79B3086ADDCD8A788C6B7500D8B0388C5644E
A671BC9DD7E42F0CFABC401CDBA0118747E575E990A12DEF28458DF96784D22A
3953A07E8BD0B635F2D9FB6146B68042639154044C4E904C64E9D5B724963566
FA3B60FD276E3D7EB2F59659CC36C45A1E8B66FA47AB87A3A0F0DED9A1E807A3
BDA72D96D45E4D6040E1E6D4445B0B6D8ECDEEFA947DFDF7CA1F366E662CA7FB
AD8A48B1A25733D5DA1BFD5716A4C6A1CECAF845563D29C49462C18A4272152A
135A7345C554D43ADCE45CF5F4CE4EE177FBA9140CE90435E332B19047A066B8
3760C148FD48FE375D44577CDA59D232DFA57A258CCB4BBBAE50BFFA27050804
B70B2C0D66056D468C70F9116969501CCE52C064CE41A23E295C141FD21472E5
CE1A175353A04922126CEDD02B726E9880F012A2210F703C2D99AED3FDA32470
A2CD735DFB9EFDD5BFD261676C56930815FFC44C106D87E68BF83B373C25C8DA
C58BE6F13EAD93E4670F7A710019DB68AE250E3E86AF9743E9F3F426C93A160C
7753B901F2E4865BEDA045C302CEF439138702DDA7B9EB6D29292D2490BEF110
9FAEDE14011BE77647D67B2FD62AD29925B2108EB90095CE8972497D6E308144
14AE95D21FE28DA652E891A4424A9815E2AD0D45B0AB9A3BD7FCE59499EF239E
769A99A01EC56884717CB544F3FD82CFBFE20E7D8E24FA60C7DCCA9F83DB8859
9D110F2EDC2207AE6C991456DD7D07575144DA2E1B4D84943CE2EB32748E3D2E
9BA1D3D4B9D42C0AD31D623C15B5A5541425D4E35941DD0FE91239922A57DA70
FCE714D44CE73BD7D3EE55D6F67DFCF6D118F6DEB09427B64481A45DDFD96AB8
9E7B290DDBD974AAE4168BC92976A3883E866B4304F02C1DC2BE9BA04DA2A961
BB08924737FCAB324692C884493A6C6B268B9DBAF97553F6FF0FB3E2FDE53E25
3CEC75F31975F086F44D0021E96A8925BA2AACDD20D934500578C22F79E373A8
11FEA8B4E2A058FC807C4E3E5A12A12E82A5B052443448DE3F7570EEBEABAFFF
8686C2893706D6147BA676BD8CDAB292D4A337837325185A50C6B3F6BAAACC1E
07D7D1BF91905D97D8DC8A6863C0D82E117ECCD3AC0372CE50F94506CAC86252
2FD9344C6B884681C6D7EF29B7AC644D1138D215B05323F48ACF617A6F6D4330
1EB5FD493F8C97F1A1CC587C5F0C878EE0CB8CA5C4CCCB8FDEE298AD78AD44A3
6F3D2FF5D74E552B0F9C7C3CBCABEDEFADD33AD7001B32A01F27166EC902D2CD
3516A21A2E68293F366EBE62E3497922A8CBD719CB713072347FA539483AAAFD
0361287956057976D74A1BF9CB1508455DF701E8234CBD321C5C62970AADB965
632CA077601F5D9B28BDDED00CA92F42A04776CED187489A87D1D20C10DE8A2B
8758039FD6A76EFA51DAD0523BC90AE299000B8476DFDE7CE733956441EB532A
3B386F0643EBAF6344E05F0830489B6B9494B5CF37A614AA7BC0F2F69972B23B
FC7636B0AFEF9A2ECB537501D133D57C7AC74F223A12EFFAD2B1EF109090CA2A
822378FA460CFA4F4E390F9750D60378FF2E521341FD75DC106D74A248F03F5B
5D60D3030564858474A088A6DBF1C96A98A0D3BC065518CEB57E042E79A6A0E1
E069C4A28E7436AAF169F6A0BF0A94CFDCE7AC1BC3DBA674ED652F8D2FD8649C
1BA555BCF0412D748202C12AAFD91FF70BF207AC9BA95ADE26AA443B1B6EC6E6
BAAF8F2E17ACC5E97B0D772CC68F1D2775DE4E27B16695EA3D70746C3D8329D2
CB874028A2F951FED9D01415615D489CA4F5892BD072A67E7405C1CDBA3DE9CF
22BEC8272BB3B2971DBC17640C2B7A2C4539857A57362BD678F2F2079FB32181
F51B4D6228F9D53967054B7C79499D72B871FD6491DF30A95692F0592FC8892F
1FDA2B08F53FA14019E9650F9B64E7CAE6EDF147FD661369B2C4F154E9FCDDC8
DF328201A0A73AEA0A705C305E3E687611E23869CA944CA1B40CDBEAB8C9EDC9
57B24D254169D03869CEE2D43CD2D4E7B403706E051C6A942E38315B2E8FFFEB
CD925B5808D918662E6817DBA96E114CA34FBF6E8232AB907AA4A6A77128F60B
A179EE8A411C3210D6C96C6051A03914F5BA48D199CD95D262A80A7D78110084
CE48FAE4FF53352B053B93A237DF43F5505D2DDDE99B2145D4D808F7DE5A27ED
B7E9B71BE7643199D2F1ECDC6C54C93A669B822EEC7452E17302C06B604FEB42
13C0345656D0CE2DC41F70D74565D3319C2B16D5184CF56201A39642D45B8ED5
D46B8FAC9E873EC294B61E986CF5546A5163492758270B62E2E7ADECC784F4DE
0CFAB393E485E747AED400CF70CE33DBEBA26F19EF8AC8AE9230E5CFCE9AC67C
9D0B935CA103CC51152ACD8DFC60B97FE6C6F271459494443114E8324033C12F
2158852A7298557814DF1CF48D849FA682AC77FC50D42A6F4B079CA5A4B4161C
8054BA4B4F7FF46968CF3DDB53D47CB38DE649674DEF4C701A8316D354E6D782
4D500184D5FAD3395D36F178A086096779F01A481951C98870A03BA9FE981574
F2A2B7050DA9060BEAB05C79983249EE111B09D462930ED2AC789F74DC3D6685
E930F00AEFC1B0C473810F8BD708D4502E1E666F4C4EDFA0DF9FCC226E369BBE
AC3F23AAEBC703447410FF4308979FAD9A1FE1313AA7B2D0AE56A35E8FAEE85F
A213342B1E98A4F60AD5B13274A4FBD38B00EE3FAAF0D4A0C5883DB5F9D7A707
6F9DB82B74578FBD7C3330FAD6E000CC7037AAB326F0BEB5EDFBB7C9CC70C293
073178C1F9E3B3D67B6643B2A6B7F2675FFB82E40D5DEC782B972DF6532CAB48
7405E306CDFA37FB41647ECBCB48AA86BEAB6E896951E507B31E0B142241793A
F0D4A635FDDDAD032E575ABC3067A8F70EE180D3AC9ED4DAFFE9572C2E928184
40B603C2A8020F6B6E43D947DEE073A9AC5DF24433B6670D197E8B1B03C89F0B
88DBBB87957B146C85A53161DDE7F7C78C452836A83A27B942C7EB5F1F07300A
B012763D821E8EF79C35B3C7D2B9AB06447F9B13D3A5379EF44C7461EF7A104D
93864FC316AFB4327BDB9B29067AD156B82CB20762E7C1CC3050FCBB6F68356D
6B549F1AB7FDBBEF324CBE679203C6EF1C846930CF4CB6BBA96573D72197F72D
69D2AEE92F80B69791A8C83815F549513ED88E20D276446EC42E852146F04A16
BF3C72FB7ABA60CFA1A4B92DEBDA41B788C849223491B06662B7A6FBD847EB8D
2E468B11ADC958B00526758B9A523990D87D0F980FBA34136CC9092673C1A01B
F6E6FE3A58A4004F6049DE0EF539F0A94BC924F48123B65B18B04D7A1810C501
E815E95ACCB74A1CF1F643B190DAC7AB10188E7453D446FD754B58658BC7FF9C
7F7C244E5D01FDA9780B9B335063BCA1063F5C89B118999AB277C59C91B2E74A
0AD9239CECD909064E857761FCAD1E6B5C841A992734B2FC5F0EC7E572FD4BFD
C95E79DB9AAA1A3371A215AC0C55291ED037CFBEC4176612C84A5B92B4755035
640BC951F2025C717C220F28E47AD7A77B3B93CC066E87C2D76B4B1825CB78D0
C136A9487EF6F2C0D71AC600545D69A15ECD94B447222A17814BF07492BB9849
AF415B2C20BCC9CD5AA2E1732416F0CBC810945999CCEDC83798AE4761D0C662
8CD0E935FB5AB2C72D5AE22F9659872514D36210CF3CFCAAFCDBE1B289FEA6FE
E2550C9730B5986D06DDD04E71C6025DB6CAA676A8C3D1A83B144803E18FD387
E114A18EF2A0787189BBF5DBB4C2F47F84AA174B665BE180F6CE50D9AD45ADC8
ED3D7DDD9D336BBC90CA936F1CD1F6BAB75D501B2482A3D5A97FDC784C4A78EF
59B657D4AFB421A6354941D870F794EE047BCB789D94AA465ACD0D37DF8EDF3C
A2129895138266D17276DAED2882AF4E73DB65EBB40D8DF96C5E55A0D892B48A
60B6F6E509F6A86A3A895CA9574C4D53BB7AA0C695BBD3A39F0FF2A9E1AF55BE
1980D6D70AEEA0C241712FD028F48FEADA42AEA6967E614E69B73E5AE7BD739D
78090D4DDD52C238FE5875514CF66BBCD969F0049BD5C35C507C6C1175A82727
19AD6C0C0A93692238C445D73D2597DB595B6E2E868E8A66646002FBA7812EEF
1953987B87CF18A1B9795ABE0395E521FBC7911B9E4FB2207DAB1D454DBAE1A2
CB9E3022837D26560C4EDBEA1801D5B27E1D41D33C4966FE8070EB37577ACED1
F6D21F7AF729887262781F64B6359F78D59EBEC209E236BD25C02266B5D1A8FA
EA312733B0AEF25FEAC98FBDF295DB8233BF983B74158D95DD4287F1E2613793
259409271EF6831BC0921196190CA5042113CB62443168D34B5DC1EC48CDA92B
8BC333BDA34DDCAD3220437E41BB684BECAD7A188F275430478D006AA476B9F5
ACA215E1CAADDFF97FE84A37E9A8920F3C35B90AF3A7A260C200DECA8931EB87
E804028C991C3AAD291B2B5EA2C607B7261206B2978768E649E5F05E951BC121
39F45AD98DEB4A0903950BEE15E1F39B1DAB307D0906B139B85C89A138C30BC9
D02A8F912FB5A73F6685E13D2062162F6789F861E5018C041D81A66502947F39
BEED14D2812F07C339B9B46899CBC9C5A76C1133A252F0026886F72133E4D293
49C2E9AFDE7446BB7A8A9C560177C9CA6769D59A6BE4BF88B7AA61C98AF3DC6F
1DDA9CA4D29ABD72473DC1EAE6753B51F3DDF447A9B7063AFB78186CF670F19D
896731872320FF3A8027A17016D3CC050591EFF22A531F04C95F916C83397A08
C38419612488D809245CB96B0E76B5A70FEDFCEF1C468FAA1B2BFEB93DCFD621
E6425CA324B4C51220358A85C883562E1418C8103C7DA57C8E9590D928A98881
22CC9458E6F84997DBEBA7EF3D679D12A4AF8F87D8895B59F05191F30860D672
F0F0FBBE2F4A6407B996A5E502D3A9A7434326F4E3DBA6337B06D9CF52FC90C5
08F80B5377ACC6A6F59366236C1BB1159CD8B9383AB41D1142F7873CE1F165EC
132E6178385B3B0FE3ABD7BF7F2A07FE78428E54A900AB65B251E65703B4D210
08A9D44445C7E1C53577F797F9CD716CF16711E973B5D1D013F00476BC06E10E
EF9BCB9B4B66F589037F5CFDFE35DB6FC281268F258C2096F330E885044B220F
58B01CA33EE4BD88927B7664C1A33C712B58459AA6773E7A970630F2C31287C2
FF3C08070B13F5E322B99CCBEB66A7A7823D0A4B1932A35AC492F432DA5CB49A
1AD508A098463A32372E771A83DC6C5AD1756B108FB0B7FC757DB7B85894718E
A812EA84412B0216CBC20609B361F29E986E2183B47B111946433CFD7119C15A
2D26374F286C365F90C8C16E1A9B4F4A3D6B8E96577F14AC55A3A521533483BA
DECA4C09FF50430938EA6034426C6DDEE847507F61D37A07A5A03499B1DE7434
876F7C1F79B0F5F147EFDB27B9D4A81ADB6DFEDB310E26C66D35EBCB289CC737
DDB161A6DED02194FEA213AAE3030DA2109BACDA8F6547618DA935940AA83984
69AD53028F628C59473D857F514FEFE0D56FF8C26F8A2BCE3F739BFFFB6D4036
F30E2802B58CB1254B7955E26661EC9D41759F590E10EE04470163A0AC208995
4BC63E753EFA7E27486D5296244BBC357AF2D5F1FE476FC2FEA428C956C9EC97
7386DEB211C49FE7AF57191EDD5F4CD536FCC02F61FB5395703EEF53003CAA08
75154D2BCACECD3E904C50B8C651C59D2C0BC6BE1C366B8228D4D81D9B476924
9C82D0AA057D91F8B2F0103E66AB447A7485F1F72ABB2DE2271900A9AFBA7133
72211C4F3D71918D0E2E4148ADC07632B700CEA221C8FFBAE159B9D6ECA16A66
BB276C844C69BE41018FDB2201D7831D91791ACAEA364827FA3CDAFA2C53CEFC
EA47D10297CDA9C0990ADEE984627CE96B04EF2AF157A098651D431D147E65D6
8DAB5AB6717748F68128E20D8C5AC697949381B0955B15FD34C4878C23AC2E7D
0309575CA8109DEC52D6834146966ECA8CE04E7614FCF38190F6960D87038AC7
7721849793C3B7D1FCE5C6D361FC0B1D14F84FBD6806ACDCCCE4E0EC332BFBC7
265BD96656959B5CB17BD3B8885DA2FF13A3B72046BF6B99BC2CEEAEB85FEFC2
5412C5CA88C48D0A646E259F8F897E205CDDB001B9CCB948B450E4B83456A75B
9753A4CE15191EF6213FA9408C8F0B986575F7D5440EBDB4F9093F70ADBB515E
F78A292BD54A0A9184D49C2695D720503EE8B4BF07A31B15922F7D8A1C220076
C494DB683E3090F0A51BB614614B4847CADB2DFB6710D84D0C2437E39A2D1AEC
88DA93E0C0D89269E8C5AB9975F0A335BDE7033CC0D4F76C65CBA07B4F78B720
FF13A5F3B7BA996C742D347BE05E42333B8C9B84ABAE24D2BD983D53FFEE85F5
E7D1A77454F119DF49A69332C497C776B57ABC050E170DCE1D3ECAC9E09F0643
92AB34FBFB28F9D26DBE95C5A0B9ACAE61B0AEB79A3B9624176564034908651E
3F6BE627529238717CE6F0B435E064512C7B9D78B29CE86BE4F5ABD809A43383
CF0B5DF21540D37D1BB8FCF32C7B2C4173D3C8B3DE45E8E4B7A405A529653D48
62F5DE1829BD3832C606954E2BE01B3AF7157832244B2E7757A03D74B4E3A05A
2CC87A9B13F37B72ECB6B4717665580EC4032DA405C2E7D8FE0B5468AAD66379
2FD5ACB16A3F36261B11FD7D4E8D4D2A820FB73045A9CE8595C5305AE24A7098
78A75959F32879CE5846BC1C2192AED9A935454E552B432B48B5C3A9FFCA2D5D
BE4A360BCF2B99ABC8477C697D802D0335A8692111E4724FC51B19C31704837D
A8D1BC8808D08D9F2EBFD7D706DF325D2AA8ED94F6773BAE63A836D88E87F3CD
680DCF2BC7DF8C7E06389D6C986BDBBD06229041414D7267D9AC9E8EFF2710BF
65CDCC222EE6735413368584117A274004EA0B415BE5D92EC61A267A3455D65C
6CDCF80FC2E64397FF395E7002FB3B0813F98F3ADB1557E46F644E0C7E0FDB70
533122C1838D195BDBBA28BD7868FBE02DB437CD22B72401C79FCA2259714348
DAF6B321BE3308190B4BE630821419673F101B539BD788B1755146554EFDE136
52430998CB5835960772DA8470CDD894AE8810A2AB7D0EDA22C374E95EDC671C
1BB5BCB69D7C4EA065F784DB46208C66D92C2C6037D0573E63F1B66B754A4D3E
A7C0CBEBC1A7086756CAC6736B9296BDED874E61D7357ACCB4421E5A617F59A8
9BAB85064CBB175596A223122D7C858597009D1D3C02749C88AB2694AE37250D
91E5B9CB0AB0ECE7A0F9006E63E230668221C3E704C44F8D67C9D7F677A4B41B
032E931BA43D59AFC289A08AAE721F15BD0DAF38D062F39CCE2AEADBB6358A37
A21F3E26CBEBF6CBA354A4AF264C338B1F99A05C95B3B93F6F0F137DEE72691E
6D81140161E2FDE25BDFB5B9E729ED71575944279ECAE16ADC257C7CC812D1BE
1BE58ED6A842FF6BA11ACE3FA83F17B8E3363C859553F33847CA40E6301FE515
489FB5650FF995E22054EC5DE4AC290A18393D9F791E70D15D81C1AA9950803E
15253C573E219B3FE27406A5E8A1FC87D3E1B14B7A4FA9A79EAD46D6280E91A5
64190847F355AF837293C6BC979C65F8F6B4E846545D10D3A1F8B1536B
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMB10
%!PS-AdobeFont-1.1: CMB10 1.0
%%CreationDate: 1991 Aug 20 16:34:36
% 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 (CMB10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Bold) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMB10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-62 -250 1011 750}readonly def
/UniqueID 5000761 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
2DB0E39996C010F3024A5A3C69C8485664A4E3AA81348AE21A30280D0E3B6542
A770F048F31907891EAB8B57DC70FF775574D6CD26B8AC9C3E64C3631325BF0A
99AB413BDADAA3B51A3E168B03A856EC7D346A38BBB0A2700A23B2CA91120B9D
2AA5BE5A359C60CD78F055253785CC9701F5D670ABE4967D74838C3B267C6563
C9651AC41D8684AD5E913A5C9C547CA225A74782D1AC62020FC38E29C356950A
00E8F2B0752CDBF81EE4ACD59BDEBBB9523AE4764B995855F3A401EB4B04EE56
B10758196CB661448A3617B83CA88C41756EF131CFCE0C968B94B6C69AEC1E9F
BF8B21837BC422D766B5089D81CF35A807394A026FE3160580695B1213968D90
8ECD1611E719A871E15C6085A17906F77B5B2DFA6AE670976758E67F8A4FC362
FC7299D85ECC3C0BBAD4649B9DAB4A2FB248D6481CF0CCF274634D37A5AA4DDC
31F3138AAF10998FD66F3817B77060E71C6D8F17205F9C098D81D952E0FE3831
2264C55D73215176470D8D75E7BE6E44514984B9D20208DB3ADD4767CAC09D41
9C8DAB6EDF4FA1AA2CB285CA28E30972B3BFA4F8600DB92164865738B015A331
EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E
69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08
CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790
87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8E8477F07
3501D4BFCCBFE32C964D3549B42070D43977640A289060AC0BDF951B78ACDE58
D95548DE8DE75EA7A6F5922BB463FAA93487253414EF4233C8BB976B280E1A92
A77D2D907599AC9302D1143597D4CD494045A0261DB9245A613EE31DF8994568
F7D0FB24D761F5B4E8A96B5AB339418462C29EC1DE163980AAE4B6190A1AA91A
D935859055FF59BDC9365F825C409B52530DB59A099FDE62E716090B6B14D2D7
28662E609B24D00FDD9F092F15D94C0726B1D3610F20A7C658F19D26DC8B53D6
8DD06EA7E45A8150DCD2DB3AEDD9239A029FD6B5344B0FF779CFE958A5889AB6
E941B9BF0464CB0FF3247F17290F82825313C171AAB70BB80D21EDCB7628B5D1
8266B3E93852BBFCE9CA6D38170F6CE57219A301EE8B989D66852EB7A48A8177
96722414CF3B147E046617BA46F6F1439F90B6B3812D61619904CAA0B7CDAF29
D6868D7F8346CF4164DB12015292BFBCE474B05BF886430411E8E937B6F09D74
42A2C0EB14BFC76003DFF172AC44D730214DEE512BF257C8688FBED139C01604
2C34B2E4C33219B9
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 0 /.notdef put
readonly def
/FontBBox{-61 -250 999 759}readonly def
/UniqueID 5000803 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BDCEEA888D07B439DBD4E8B4C9
D198C03874B5E6F8FBF4922065A92BC3E66D05DE53971CB1424510E892442858
D69CE1F76E4DA76C87C763A4B2FE36321E54B1328C9155B8ED6361855A151723
3386AEA3D042B8D89C8C0E9A33E5DF3B466F7BB8C2C8A4ED4CDAFF55FC6D3EE6
0AF2CEBFC1AC3A6E6692F8BB81F82D86BAE85016AD62FCB05467082C2E5AD348
44D1439C2B59F65590E57CA0DE481A7A34E79931B1513C4C30156170409A4BB8
46D412D1DAF88AD30722F12DBCA1CCC6B4BCC28D06B0D29149DDEC520C8FBA13
6B82E2E1790F00B216282FF122EF0D47B70A1B29514DDF7C0435ED238C14BDF5
6DA243117FBEF7398F97EB95597707ED63C6797EBA1B46EA19ABB1DABDA171B3
16CD500F5D64CBFBE4F9CBC3E66A34427D3C4D0C432710289381F9BFD91B4FF4
1E3A896C3EEA2F3105C218877D6C0C6B763760FA364D00065E1CAE9DCB5676ED
286A9ED0D1C946DCA6A2A670EE0936FB4706CC62E234CFEED34AA615C48D2872
A087F30990C85E64BA68F3D5C117123467DB411C9F2D6F6858CC70C1E352C477
713097321B4C4FD4C5CDE305415F998E7245908EEDE6E056A736EA77BD8C639C
3A79FFD0B74B3D28F0494A115F2841CF8A8827AB5608F96FD8998A5F40FB3DFE
3AA0C7696DE4E1D18DC0D6E84B943175FC38FFC42A9C0CBB13A908978C98BFE5
034F88480F32B9DEB2FD228FF6CB0B89B045AB02020C82E3F5716DC640613185
9F597CE262729BC52132F43922B9E28BB71A30AC8709634561B22D13C4FAFE0A
12C4451969226B220038AD8DDA990A4E2CAD53DBEAB698898BBD3046234EB4EA
901287E71CB41296C431383AB85F18882F65BE36923F6C0FD6FADAC5B42FDB68
64C06E047434FA7A659EF7F3D1AA8E547939FBF9C2ED7AC829F03CA59AFFBFA5
A7AD2E0FC7BBE619961AE1785D09444B333993199FFED007382B54DDAEBE21E0
1E75E0AB6D309DBE53BC7BB9F95D342F51798574D70B95021FA40163A86BE6C9
342536A5730837C522D5314B1289D9B7E4EDD108BE7F35A20AB2A16608F6F007
6DDD702A5A9BA1325CE2C1CD020DF677872135CF04F4E4F1E9AA6B494E2BC22F
107C331A7E80718B030A1103804D144802E3B03EF7CB083BCCDEAC7B43F1B4F5
C1BF6016741B741CF7E12B4BF95221A72CC9F4657264771AA69C73DA1DA29102
65D01A0E61F3024E672AFCCBE13CD0B7F54AE1418B72E357A0BABB4D03073B1D
F4EB54F899AD4A41A9F94DC200880A0DB99D67235A2451B25F710C29A882865B
A922E56E9FC16756014FA5CBDB1C32750BD6835A70EB715CEA19A8872041905E
8C660BACDCA26C8247D6B3C10FA5DC240E433E479AC6AFCF57CF96697FF46BE6
44748E
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 0 /.notdef put
readonly def
/FontBBox{-301 -250 1164 946}readonly def
/UniqueID 5000768 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8B731A88D7740B0DDAED1B3F82
7DB9DFB4372D3935C286E39EE7AC9FB6A9B5CE4D2FAE1BC0E55AE02BFC464378
77B9F65C23E3BAB41EFAE344DDC9AB1B3CCBC0618290D83DC756F9D5BEFECB18
2DB0E39997F264D408BD076F65A50E7E94C9C88D849AB2E92005CFA316ACCD91
FF524AAD7262B10351C50EBAD08FB4CD55D2E369F6E836C82C591606E1E5C73F
DE3FA3CAD272C67C6CBF43B66FE4B8677DAFEEA19288428D07FEB1F4001BAA68
7AAD6DDBE432714E799CFA49D8A1A128F32E8B280524BC8041F1E64ECE4053C4
9F0AEC699A75B827002E9F95826DB3F643338F858011008E338A899020962176
CF66A62E3AEF046D91C88C87DEB03CE6CCDF4FB651990F0E86D17409F121773D
6877DF0085DFB269A3C07AA6660419BD0F0EF3C53DA2318BA1860AB34E28BAC6
E82DDB1C43E5203AC9DF9277098F2E42C0F7BD03C6D90B629DE97730245B8E8E
8903B9225098079C55A37E4E59AE2A9E36B6349FA2C09BB1F5F4433E4EEFC75E
3F9830EB085E7E6FBE2666AC5A398C2DF228062ACF9FCA5656390A15837C4A99
EC3740D873CFEF2E248B44CA134693A782594DD0692B4DBF1F16C4CDECA692C4
0E44FDBEF704101118BC53575BF22731E7F7717934AD715AC33B5D3679B784C9
4046E6CD3C0AD80ED1F65626B14E33CFDA6EB2825DC444FA6209608D3976637A
DB9C73EB3A28623DF758C25574D740385B2C3D10086AEB904A33DD76DA2CC4BF
7E37F9117E9D81D3EFDA12D5BDF0067450C5A8A53959C055C5D6087F1FE6FB5D
8306F16FAD71AB986320F1229440C63ACB5FA24E41CFEB12C2BEA2C25E59A3F9
6CA5B7A04B57F2471D36F5B41E6363DCEFF2DFFE9131F044125884739392333E
15418156EEE8DE92EF4C176742032FE8889839755D8D821CD7F8FAAF8A22C283
19F79216C6D454A864898EE9F830DB5F3372B8F47C464DF19C69ACB3BC0566E2
F25E7FF148B2CDA2B90CB5884440F464CD57295728A4415963CC1BC0635BBEF4
E812CA5E0E788035873D05616F7B0F6A30D36BB285E7955CFD860345F16D952A
BF2F7D2702DB352D0874442B2074859EB49313BC27E1067D627362649D82A5C3
A57DC5041B1A13FD2FA89D875019E23C31650A25CBEEC6B93C575C363FAE2164
76ACBDCDFEFC8B7BD24AF41D55196DF6FB2F28DF88349947B448513C7E832EB9
F35B28EF86C231336351C1F89AA9AB1F8C02D0DC35746E97C2B29B7A44CF7418
89DAE02563F58C453F45C231219FC9727D5D477B256530D4492AE7E4E3CBA90F
50E8BAF9435EBFDF819DA9EE1F6F67A0D65D35E3D0EF63274B611B25756461D2
BFEEF8BFD513B0380993B8D52A6546D69773D67A15C059E6A89CAA2772162509
3B054860006DEA20685F5E2937C95B50D07C6316ABC08495EF319B36F8E48FD0
DA482F82D2D981C70ADA2E467608364EC664D151BCE2FDF571BA63FC926CCD72
052D4F83933A9582AA6642773A62555FD57DCF1448BEC02304B798B7E47B93BE
909C2BA1351EF483D0E70DC23BDD52A91391172D27150A70444B980E59DA01E4
6A79ADA80A1660351ECC1541F80EAEABB72C4CE6818C162257480EA3612ED810
C22F1915008ADA791282032FBD321BDE22529B3EE1493BAB010066C6317DFB75
CD9D42CB97A731BB7366D0A170D3E8CE00DDB21095A28DE2A77A995879D026CE
ED6350CDFAF3DB0140E14985A296630EA4D1752B793EC534C60B61F1B41236BE
930D8CC9EC66930E5533FF3A7328F0675312EDF0ABCEE5B559AA42CBBA8CDE9F
F407C8A7E5FE9FBF58CF90CF47F56C5D0F76AD6FACFB4EE3207884A8580CD660
1753486132AA6EDF8C150363743A086B2C138D66032AB2F4BD9F800F59C89EF6
40111353C4E828D61D7937837DF89B62C6E21AB81DFA802A3D106675EE08763A
61D27684F240CC0EFB50434006E3315BD5639B616AF3545BF9888B973339F009
DE44130586FC727828B50E7416A6BD1DFB29EAE0ED9A8DF53CB3E546A8306370
67F9A60F4DE3ADB7B37DB519EA5C793E551301485B1AE60DA7ED9CA3F50FF9EA
A9FD1964C5384459201F0E03125FCBD116382EF3B1693774F084380DC53699E8
478BC40779C80640E0C746CA1C2A03788B41B140E8051885CA590EF733277361
B386DCB99A017AFD298DE708DC15D47063C2B52354E8008A42D6A777C12802F4
D5A65EF3128AE9C600A14F69FA970983D53AD637FEED9A5E89D5CA1A72FC928C
32E6E74397B2EF0BD5836AEAD0615FB1248334F230C8124738B369C4AD756065
841942440A1A7662C23A0E8431B9A20046BABE41AA7753FAAA3805C34732BD1D
F31600ED74C2F2D30B5C415DEB7062E503374C2AAD8A06532FCAB99B66901AFA
73E90A81753D0235B0762E04991FC73F64545C1035BDA459C7FEE514DEABC2BE
37C37E7160DF06FE3466F287E13F1A052600CA833BA100B7B439FDD1D8931DBE
65122DAD5675C81BFE49E1AE43805E2AFBAC3A23D6E95B3DA41AA65FC7EFAABF
DD5AA6661BB47621FC6A7DAD21729EC0400490F30CB74026D00B2CA1ED0A798B
B4CF488E585371BBA519E618C269F47F999B973F86FA742BAC7384EE91C94DE6
088BE1D235965A53650038EE5FBAA6EF06965443D2FDE8FD52A521C6FA492553
C21E7528C713A60C6412F1C1B7312E083799DF466F09E9F4FF07474F21428F24
4850036F3232BEF5A177467A89F1AE5967A8E6745B34D273BF793D04623D0F1E
519E7BA5294D32C926FB29959F7FB4BEB9BAA193D7F2C30E392CDBC25E6A2F7B
A00F4EC543C7DCE8F457DA73D0EF73B773A3BF5162BDDA5C18AB5C5DA8E201AD
2E002328FB3598533E6B2EC5D4F481DB2AECDA3E6D55A5AE2FD1893D7B7A6191
FB74A43F01CEDAFFD142EBCF31F508D6182BA064A8B5B2D640051D521EFE69E6
CDFEAFA0EECF7946AF06715584F9059B858845A1F51E460F78925F830760776B
D5CFB62931B6134B34AB757694190D5DB21ABD3AE042CD9F59A3B434602EFE42
D4502B93B2AE0FCB06C7AD6C3CC1E6C6B4CCFEC730ACE1B65488832D2147A273
7A35049DD6FBD88E4B09B43F8A971EC30A8BDA50434E54967EE684141C589669
21C7A048C49F4FAF51A48870360E0EACC7B4B5AE7C9B1834B88EC4FB53D1ACAE
8E603F20530934509B9042288CE4013DD24F21F6193B1A86448A9AAAFF98049F
E8AE460848C6F06DF140E989E08BC047094C80DA9AD9354CC640EDEF3D2C7EFD
2338DB1217CD5741BB6965E2D6CD2C6BF4EF1DF66CAB33016237E568F7712C58
2A586FCFEE5E089991621A1A2C892B53F8D945734E838DC0D9A9CECD21241BB5
E861F8489B0DF3A05EE643F5FD683EEFC6F8A616E92C7C96DC43147023B11E77
FC2A7CED9204D2EEE35FB57B5BE8D790EDAAC19B150EBB853A07A6A066ABAE2A
E61F0BA577733DC2CE5D3A674725C54D053C3533EE7F68C6E283DCA25E40EF4E
25D953CC4D1D0A8E5E4891EE3151CFD4D3DFD0B428FB634B53C86FC07F63885E
D8D117871DDF365B722A8DDFFD06A6C22C1BCD7210EC14FFEDB569825578B197
6780F0A8E3698BB3F2A6C3B6F13E00124E3DD57A821A764D9B7F4741FBE4C362
8171963AED17179F9A95D9DCEBD24E9D032FD6A393B9C75DBB32EC54468BEB63
5A0B48BE302EFDE364485500F780C82E0D6C825A858C9E9F71F4C6E2DECF7E9D
872C71143E9E272F5A82E0B77AE0CEAE3DB11942B72B020E3A30213D97B661FE
EB583258A2CE3452432A517FD6290B17CC730A30AC2D647C232F668E5E3675CF
9D9F262DC3CDC67A694A8C7BE1B6E89D25C430B58EF63AC518D1A29E7496DC25
5AD9F6AC1EC9A17C6A9FAC798039660AE8C05CD03E41845A7C1FE477B5E2CFD8
0D0052D15A1657813E2844F45C01E6E694D05A8BE6C692B9384387DD16F30CC8
734F639901894F74444CF04F37DE0FC323C22E877304DBB59349E6609C543677
34DC0AF2F48C3E03E61B119CED5F1C1C0C764CDFB06CA29F946776607B7B3068
F7FBE46F571CF7E8FBD304A962CBEFF1F04A7C3485AEE8291192C19A35D06E5A
CC00EBE7F6C5C7AD308AE1D648E8D78A25475CCF7C3E7745839299FEBC31E23D
65D1BDFA1CF3EBD0D0C6C5EBC6982EA25D1BA629B9C44BAAB788BBEFE8428BDD
D54365670F9D3E20F673AE766B4CC74F6913B0272EB3D02C71D8AFD73D6CD2A5
6A2A7DDB0C334D3695E32176DF078618312F09F2C619E2445F4109917F8877D5
6786F19692F56D49C92D9019D6676BA151AB7D7CA3A9AC55C0200A2890C35BF6
CD0CFDFBEB989244D7D77626C72E45E25EA4DE744FECCADD62CDC97029E1911B
F7D868B8EA484D2BC45784BA2795A5D00C0F1A0A8EE14FF7613C8B5759EE97C8
5A8E088654C1A6E816CC900FFE2FCF71CDA4E55CCBC1BDB250B7F7B4A0710B27
B0D427315F18FD3752EEE13C14B9A5C1A34B867059521096B1246AD21C12301F
EB67D150528CB1AEE2E22DDD436510836ED22B4D82A71087C0C50D1A6DFC4AD4
DC5FADF6F5F757FFD25D91C1FF7A4CB16FC9FDEF3CCC4861049F4CD392728772
9DE465C5265F24BF803ADA07327839C8337C3B95239F2AD99DD867FA336D2669
F269BCA4BAE23E2F0743C5B8C39054
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 0 /.notdef put
readonly def
/FontBBox{-4 -235 731 800}readonly def
/UniqueID 5000832 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F00F963068B8232429ED8B7CF6A3D879A2D19
38DD5C4467F9DD8C5D1A2000B3A6BF2F25629BAEC199AE8BD4BA6ED9BBF7DABF
D0E153BAB1C17900D4FCE209622ACD19E7C74C2807D0397357ED07AB460D5204
EB3A45B7AC4D106B7303AD8348853032A745F417943F9B4FED652B835AA49727
A8B4117AFF1D4BCE831EB510B6851796D0BE6982B76620CB3CE0C22CACDD4593
F244C14EEC0E5A7C4AC42392F81C01BC4257FE12AF33F4BFEA9108FF11CF9714
4DD6EC70A2C4C1E4F328A1EB25E43525FB1E16C07E28CC359DF61F426B7D41EA
6A0C84DD63275395A503AAE908E1C82D389FD12A21E86999799E7F24A994472E
A10EAE77096709BE0D11AAD24A30D96E15A51D720AFB3B10D2E0AC8DC1A1204B
E8725E00D7E3A96F9978BC19377034D93D080C4391E579C34FF9FC2379CB119F
1E5BBEA91AE20F343C6420BE1E2BD0636B04FCCC0BEE0DC2D56D66F06DB22438
452822CBEAF03EE9EAA8398F276EC0D92A7FB978C17805DB2F4A7DFBA56FD6AF
8670EB364F01DE8FCAFBAF657D68C3A03112915736CEABAA8BA5C0AC25288369
5D49BD891FABEFE8699A0AE3ED85B48ACB22229E15623399C93DE7D935734ADA
DA7A1462C111D44AD53EA35B57E5D0B5FC0B481820E43222DB8EFCD5D30E15F9
BA304FA879392EE0BCC0E1A61E74B3A1FC3A3D170218D7244580C7AA0DC65D19
741FA5FE6F8CBF60250ACC27454BBF0897CA4B909C83A56672958752ED4B5E79
E18660764F155E86F09EFA9F7685F2F5027EC85A775287B30E2069DE4E4D5712
E7D033481A53A2702BA7542C71062173039030CF28D8B9C63B5596A9B42B33E7
D922944A38713383D3648A4AF160A3B0C8F3379BA4372BE2E7EA49AABA75AEEE
C5DDE1D8BF68483C3D21271280ABB91D54CC819680322EAB72E1250A760BC8DA
726405EFE420635B5B7F0B48752C06083E92BDE06401C42A2C528C8A60381227
CEBEF0C9440DC034DAD9C19FB27DB399BDAEE22053591D6538587C768C1B7B0B
7D1E222D2D8AF3A6473CC4C0D6C3E0DB49068CEB8C9BD1C5CD486A50DAA10BC7
7D6286142355E3F21DD254E27C00C442728A0BAEC9D3F17AE9CE320D365152E9
EB0D5E3874F2BCEDA98521D23FCFC30B4B69DAD2ADBE80E5964ED0ABEF6C73B6
DAD30E2C5061E3747FE536E1A5D190D028F2130AF608F5DDF9DDDF1E77DC8437
ECB3EC93B33505DF47884DDBD1DC6BBE4098DF04A29AF6FA3AE344600D0AAB53
B3820DD7ECB600A3B8001C51AF2CA7A39AE1485A0FCD5D16F0657F61E9655AA1
B8326F1813FEB669F4EF61CCAEF05098C73D6BE54CE3936F10EE4C56D0B8486E
66F02EDABFE670DFD8F4C41F743CA204E5C7F64B9D06544E1AB0449A45FABC91
5F0536F53E88DFE702A9E92DC317D5587E49A2E4AA2D6C07BC2974FBE2069E05
4A56D8029AD43F8367FB7BB624A49847435ED26374035D5B1EB9505B6D8D7555
6665128B99C201E2B34FA0F362F572FA69E160A4AE99E0E058E53D548B7BE991
76C432D7FBD61DE7DDB8C0BF8B01CE184C35806E9141B79A6DB955DD756C8EE9
C3114D383290DAFD03286DD852D73CF5EEA5657245276DFFF49506B1E5F3EF7E
DAD841A79CEB7ABD1ADED33DDED4BB921F6CBC1C8D7F711169380254070114BE
0F0FABFDDF8DFE74F44D87D8F424F03A3D4EEA65BA913713F837C5128203F99E
12BDCC878BA17B34D796FA747F6D778EF068DBB771554F9C64DBBE16024AB356
FB15A245924EFBCDB3BCD58ADB6AB154DAE796268F407EDE778DF79804532EE4
DF63522FBB599137E5DCAA0054CC09924603DADC05F0BFDEA4D1C2CAC0518633
E4D5891FE58A37D4055BD86BAA99E6B64CCA60BD8B7ED9A258C4EDD356EF78C8
156756286794E407A857F49DFD1C286881CD18055466F50CF2D768F319A2B1FD
116DE2BBD1C0E481D77EE0BF879779465E0E53605DBCCCBACCC3887A4CA8CE1F
E5D3E9B3D84D1CD5BE08DB07B5A324C5A752A3773FBB420E35D2E2FAE456C7F7
66DDA4A2B0922EFA48C7BB12942CEA6EFBBCE12BBB85DE4D19E224E9B602ECD1
3B28CFD50CB2C66DF52A6B4E82A7E9846B0C9C8DB8E90A62260184FC1A470EC6
A5EF9FA92C1F9108F297AEB5C5618AC3DEA1EF3A730A16F8771FA9A65469C26E
F63373649A4A726FC526F1D3186E8C92B3F1940DE24E3A30600F2196153E2B62
1A8B7DEC5781F3577EA3109C9A5B3BED4EE646625CDAFAC8996046851B50EEFF
8D42D20DE055117C0DCEA3A554DBE37D5EFCDAE137564303458F4DE9BC4248D9
79D0FDA7FA1B6551D4CD22F8995E514F11A224C572096A184BFAE2CAC0F49AFB
6344424B5C8940AF3EC477AB1CFD986C5CD99402D5A42C0485245938FDCACECC
D9AA7E145D3F46983EAF9C0851C555EF2FB1F6987C6209E192BF798659B64E03
21751E55FA15B81CD76CB3F15DF85C528CF092498D126FC4DBB7D56F0164514A
999B6F2D3C2C623B97D0439CED312BF5F691573DEF8FD249F904AB4097028691
03D14E024320DB6D4F93C68926B8881B5485B445A668342F88E58F57F13A58DE
078296EFFFA5680BA7F2148852F41BBACFFED59CB89E459E9C71AF71C1C1C267
A2E22492647E9E90BA72039B18CBBFE8EC94B921C5C76B2FAF888BEF44E58CF4
484A5A41DF00263D1C4A99B1F1E887EAA3617C6ED0C38AECC08310A03C2870F7
FA0FE3A6D8DF769B55758342D5866E49C9724566C896E82F850DAFE1FF222629
3814410C1999D616142BDFD986C2DF597365AD905BE00CEEF4A1A0D4F71F7560
4FA1C02BC5D4CDAA18681EDE45A682619E7FF4E2CC574751757EA43C7CB85520
A98D8B47D45E291B0BA25EC803B465198F32981DBF99C4EBF3004FB5B083CBE3
A68706583F79FE0F3152B07E99F0016C9FF4B5B54415CB366C316DE071EBD49D
B7535C5640892CB99DED62E24B73D6BB9626C685F9EEAD6FBD63679B3EF89DDF
C503EB242CE1A0382877C1F93DEB9A4863863A908C640DA19BB24CF48CDADDBB
F0FBF8968567FB87147F678EE8D3498C21FCAE562075A15A412CBA80927C8DFA
BA47B7E80F3CDB6B1EC445197B6B20662BBC206C75E0EEAA11F245CF12336D49
4FC0235C17FA03991579C3F31E9A7254166B9144815891DDCBC805B59DC28CA5
E8F542ADF39F07757B06F9E1C8264BCAE3FDB6C710BC2C4656B997BF7E895DF0
C769722B5DB9EA254B34AF588A77064DA887031B32CCD2180632CD7EC4D4AB5E
BA28D887DE6DC1B912C99AD7BFC0891CD1B6B8C836E7E3A037B2484E5974112C
830575D110DE9FEA4AD94D37E2843306A6CF744EC6830FA60774133D9C49E9C1
DDF8F9696D0A9A2BDCEC578F3D0BC2CCB8A22A4AF539589CA4A2FDB45FE47660
D3EBCE196804A9A7759FACA2940508EC3BA1923706FD1B8664F6F02B731F1ACE
67DD39EDA612B74008E82E2046C8A677114879CB9811F48231DDB465A9BEC565
BD6C5C742056B2C5940F7F5AB9D6367C15D4CC92C368B6536D77A5B2DCA90D5E
0CCCB58D672C3D3F5168C26C4632670F2ADAE2C5B2A1E69D2F984CD210EAD333
40D7D6A5F8EC4EB54AC5259A46B6380F37C76478BB57AF6C9CF7506AA8CE8C82
2571C24D958A65DED2D4C23829C3DD78CBAD71119838D5DDDDC45A095F58D8E8
A3A83A32A9EA790592300D848DE2C1B5F7EAD91A737D681057289A86E7C423C8
389696F1901AA2B850E1FD3ED8852880CA8E89F2091B61311FDA0E2ECD51AF3C
369AD0A08DE9DA1E052F3DCB7C49EC44B6336F3FEB587F1599A640E5EE95BE26
14B3F4A236DE2A5CCD937CC7AC2373BB2E9DBA76A65480E9B87687747D492EE6
458E2254EEA7D504550DBA3A7F4D2E7718DB9B959B65B0B5D79C692B71B37C62
DF5E03A4A38527F853D17C81747F4DB9C86D618ECE977AA0AA9EBC70EF507229
DF089C15FC8F54A1023F29BC817D4DB6C9F7BF1024A859412B795A8E07E4EE5E
5355565C4EDE0AD65AC83B85B459EC1CBACD9A450C9FB7411C4BF4CBBD7828A5
A9E9B671E6C7CAD6CD5F93C8C6CC72C1233C4610BE4FC8B5C377FB7D927E55FB
0CE6E1B337C3E19F9BD7B010B155BC592F342DE7AD6B4286E4B376BD488DDD64
D2A9173F7ED250ABB2980DB7BB8F367089D64504DF14F88C7845B5915F8B20E4
9E876A2480D28ED988826E86DA0C703B6F3AD68FC98CCB91073D3DD3160FC00C
DC3805D8F14447AA9FB199C38DD4B28CB1E6A8001D3903AEF515D822CB784DF1
5C3C179EAB1F2ECEF25C454E7A2ECB454C620C24B80498176523F160E40C3A9D
DE03DAC25A7E5399174A9E8DF8115DBAD6D5B8F16B6A59E7DF7E1E0DF24595D9
F7C6B1ACA13ABCED81F6DE6AC64D1E64154833834EDFD6E12CBA1DFD035FFA6E
05DF3FA5F8173D5C8E43D3E4D053ECC5A7107A38A60E20C93B02BF82C9559C6E
E7C0FA5D9B5F02581AE5AAEECD79B21BCF1C9E1DF0467CC945BB3FC8E9E45CC7
543B34BF2203E212871AD67E10815FC82F76ACF773559519309F5AAF03CD800D
06FB2ACCCA695B06EB64BF455D7353FBE8579FF62E5C33BE93A196B3CBF875F2
5017FCEC574EDB29D2564AD2611E59819994746FF7A7B053302B335EDA8859FD
8813AA235724EDEC0CF215CD4F4FAD37E3A0DEB874A24C4FBDF64E3654E0A350
C0F57FBA5DE0E6333261CD37184C91E38682FE808DF75F98237F158AAC0E87B7
C84157DAAAC88B0779C26DA29F584C065C4B9EA84D74A9FB3B8928751AF1A8F6
5F0DB7A23D7F802EF8A7F9F6C2EA8F4941516D48E12EE4A44A6362F9FCA2DDFC
EB7F8572571BC4DCCE2B2D4F3960AF71BFFB9D98ECC8B0220E79F15AC7A1B490
13121B21C6C44B5EFD8F0BA56736E61F19DCEF803096578B2EE9A9A54F644E1B
84E68806781A5151ED9FDA8F845BCD0B195FC7A408C7AD075E9BC1843CE0C727
026CD9C80B9D7D706E846D67F90128B15955B64F70732AECD8F31909A71A14D5
EBB0E466F7E4274423AC1F139D06F00C6ECBEC861D7C8A2279E9DE2D7FE39966
A1B7EFADB31194731078C4ECAFD04DB6F3D9B6CE4E377398D8D0EE5EE5E0A5E1
515A950897DEABEB0D454FC7036EE43CF196B04FFE50DC6F6D58BF03C3A74978
EE7CF02EF3901B7F623EB86B799351D25C79FA672D7D98F924180E792692EB2B
A6D8F7515C4513C6EA40969D3EA10AEC27B9CD014AB3C4E5BD6AE5522E03BA59
3F4F23C75831B15D0BBC0F9E35852F87A466BE24AB67342DD2F19CD2EB43211F
29E2A8B49D6B9BD5D19D846F8B82CD65189C511E0FB597A25C62AC853EFFFB9F
CECAB90EB54AFF4E40CD0CDFD31D39A7E99030CDCB3CCB61DE928ABE9E0685F8
6CA07450052B90E00641A2EF0FEBBF30007B574FA0CE4365D1844A59841C0853
C7BF5A5984ED0F9821F1CAACA7FC67DCEF57B54327060F4C60BB5E6CE00AFF20
5BDA60693385F5E96D58D8F6EEB6B2DDC1DE7571DED81E65AAEB3DCC4604B8FF
675A7A967DD548BF5AD7EDDA2D6815471CAB5A722E5AA61CB4539D59E043409F
F7EEA6E3EB7D9E5D6D8B0352D32BDCD3C0A13F600C9C03E7F1347F7F0454DB47
C869BC403BC8DDA258A47AB5FD91C1BC0480552E375FB3B015185F35E5786438
0FE833E73F050F0134295531FD0B4086DBCB6D74D1570B3C71DF15B5956396A6
CAEEDE60AA38CC8500AD215431A01EADA80475E688AE8FDCF6498E81B357EA2D
A46DCE5E9107713CDF1CFFE71BC17BAFE4C9C2D635F8E0DD3C54012F401377D7
64E8BD68716499ECD63EDF7D847073E32D2E6C2099D4C5DDC430C6475ECFC2BC
DAE444984B59906F1592705BE5ABF26AA10AFD0271CEE327AB4B9B191E531646
9E69539A55C523AD838A0692285F0EA21FA3100FA739B391ED96B9453A94C242
08D6235D012CC4AEFDE63384D463B11D378B5A835BFFC81B95505107FED0BAD6
9237E44564C0D82A3E4A974B57A904F475BD973710068DFFC91F7AC842A478A1
6857BF1B9DF346CD23F998D64C63B23DC3E4D2A47017EF26D6E475FBCD92C674
167E092750DCA1AE02911EB94026C58912B3BDC5B03D4362D5C4EF76CBDFCC04
CA599719B047F85A8F04D88C368AC467BA920418883787EEFE21C4377CA7D417
3FE01C86113E48DC72CE568772F6930AF79EC5836C0191987A6E33406DB9DB41
C8548744EB4154C59D20273AB56FB83B384837C26C188BAC0CF05A4DA531C954
9ECD2440DF5692B784CEC9492C0BBCD1EF3272545C7CA8618F4A847F9E11C29C
714D0E3E201B5DD949F96AF8F928AD5B72F2588A55EBD1A9C3D9867422E0CF4C
76536728970FF8CB5401C0E816294874E4D52E9C08135FA390377EEB66B8E33D
F60AF1E9EC3D9354AE18F215519BEF0AC1EC037AFC733B5C897440BAAC8557E4
37B7B21A00BD478B91B3251D1F81917A052F6C0A24E063194F0466922AF9EFC6
D619F6A84F97C932A6AC72141D2420E24BB20773FFC8D636CCA493BF1E65202A
D02F78C5A1CE9B325B83CE002865F88305AD4E0A50F9261558B2B4978056A620
0AE9C75BA65F63EC8FC14737D55B7AFF3566BE88443081ED37555E504E9D2125
E041C774F99CD74B8EB6F027C838C03DD59E36B88BDBB9C0F4C3D0C7EAD96274
8E0F4BC5D387294FDEBC3ADA0E9846A6C2869B7B49A332054F6C28F8FC55A679
1176654E35B0AAD9FECEFEB1C967F9C0F8A5DB5575ED4335AD38624E31F45AE4
1A2A3939DA3FBCE9BE99C284867B06AB66993BFE52615620B161CA52893DE0F0
D1A79C9F0399F42A5CDC01B15F4BAA71E53B0ED415031D9984D3CBC81B556C28
CF514D3A160B7314DFC5019C9C431FF0CD1F38494066D0F9EB3A8AD0A8CA0646
24A0A58DC6B362EC895A9BEEB72027DEF4A5320B752496A172EF32D14C3D3CAB
81DAAB12269F5FB13EEDF2FA30318D4F7F5E0493E54779FCD956456C6EAFBE0D
15A2BD6D8D07D045AB8C26D66143A3F24FBD76A00E51BE71D48B45799444AE82
F321135FBBF10461B3C976A5CA9EABD20E411670702B2BC1704995FA95A6B676
631CC5850679256AB7003FC25F7DFD39CF2D8538A8B74116B2F70B3300BACDCA
3A34C1D7DF9D3732ED02F39320FE2C6E01369F4C2BF90551D80F160841DB4629
186C5A26A0DA6D08A965A366684BF3127A3D1E14F46BDA3B46F829F70B255D21
3765A752FF2194BDD74E34A50C59D039C46E10C57538264457ED875F12B656A7
ADAB03E9A3A965811D29F3FCD804D93782294601EF94045C692DCDB3D789E3A8
33055DE95A331B61B958747ADCD6A65EEBD01474BD8E127CABA7949EE6A8143B
86E561BF9CD21297C3F5A330C73DDF08B592F631A9DE0E717A4765706726D499
FE1144F05D3CE8246EFB108599C39345E93C27C8EA35BFC0DC3528F55DAC605D
0478D40A5F13D3839C8D1AB0597B1679CE02E8A09F105179AA8C42A9A2862A2E
40D4361789FC9468885C2068C3DBAC199D1B4E47DFB9C9F9AD5D7598B6D05F24
D53F3B7A129C8B49C946DD40FEA941B89C9EC75514A3E1EFAD180B932C08CAD8
5E5F538903739C150D68702A856B1E1E0B11E262AF51CD1F3DCFAEE2B60795E2
C355D82E0E8B88CB136BCDEDC53D823FEBAA42C231CE55C1853D412B992352E9
130DA25EBCAB9EBDB1F8B75EDAA1EF3B8FEC09F0CFD1909A159D9DD8A15BEF90
1490E788DCC536051CCDF4522337C4EB7CDA989F6EAF09FD8A849231E1D0AB61
AD043B9898FC0DD1BC6F02202D8BB63388BB0FF323073CFAC95EFAA14E792EA7
54239813B08CEEAD085EF994883031FAD6CE4257D570888542136E70EFBC6E96
FADBFCFB148CAA3C9E21B402D6CB490B127F00A761C37D482ABA75A396D5FAD4
B68114BE15987188D34A6E25EC764FC52010040EE830952E92657C1E30F744E4
54940DE488EFD7F8105346FD55F95A942B308C569EB4D22B44230C797E0969E6
1E9496C43DCD898C91DB82FDE6721043BAD7DDEBD6F8ECB79BC5EE093FD39F13
678851D4610C2F105A7532574B4427535178E62F125F1A8098A0C1CF09AFEC6B
5958BDBDBC8F765BACFF90B705E2EDEAEC63B1699D9C076BE99EA08BB8B39C0F
107B3C09962C59D66C3F725FD0ECBE05B00B33D4D950869F5F3EFA578DCCE82C
514FDC51EE564ADF56A2C01CCF3327D14A0B49A7A4D661B4B2FD7F76D5BE4175
72CDB5D4A5D556304FFE79A849070F666990C699E804305A20FEFF0AD7C46C4E
772F2F818020479052D428B1559A0163C99453CC883DF631D98F5766381F7938
2CB87C68F5AC50AD6E82F46122B84A522FB19DEAABC17F57721047900B3B189F
7D91AA51CABAF053A4F865B3A3E1601E1187B069DA67A483BD6E0C254DD98A41
0442E3D8ED6F2250169B98F6A3ED2E3D9DB9631D2C804F545D6162989D31CEF0
D8031B23D288FCA87B8489D0A1E83C8C14B816D7F2DF671201848E25FACD4CEA
48BB7D58570EC0F43DA33E0BAC65860453BDC9E71B54FCAE6EDF04969F4B092F
479C6301DC7E0293038D1850AFB12478FAC8EB6B619A5FE3F4DBD6CE1449BD58
BE4F33A893E6BD91996F5B6CEF8CC792A4A09400E99E57AF4C02BDB44DBB076F
A6B52978DE9578BAC24CB0314280C8E01DB22AF38F243625C88B1ACB0C74BA95
AB92801EB3648151B06034150C64AA944D007536AB50C7EB7D62F64704E006B5
2B1A7D3D1DB15053F454FC5DD0677813AC6E38EF875FFA7E306DC21F4BDCA032
23F09C5F2972259CCBB81F93D09001FC1EE8EFB7930FCFCBDC2E4C6302B1E4CB
82F2D8E062D2FE7BEEA84899921DE14608F3E80025D3D8812EDBC628581CAB46
7B93ADF4B3DC5132B9E9E36DED114077F0BE8DA4AFBB8F7BEA125204CFE44404
4DB8DC722F12A20AC8A5084A7AC93E8003CF7C24908EFB5A734324E856621345
437CD20CBDB3740D38981A5DAACB525A17474F5F85FB7D757A6D08AE78AB2D5F
89762575D264E29FD8EC7A7ECE2C4F74AE641169F58BDDC8C4BC533B7AC7AD60
61BC5B429E97C240542128C879A9D6EA0A9D4C05D6423359E04D25C07E53898C
F88D4F0EDFCC535370218A440F214AF5EB2FE2090585C6E13974AFDF92F95F22
538D50D3EBF9EAD584974FBD064C58E1A77AB99D6DEE84BAF47E7DB4C51E96A9
5AA3C5C78AAA3B7A9C73DB9D582EAE1EAB83668879D68124FEC58E7F7C0C0289
A19AAC8FA63A9C15F861546B4957C1169FF50993CD15598137D0CFCF04E267C5
4E306F920E065579AB7C44B02F7F89263AC0F984D63FB0A7A723EE086E8CFD39
BC0E40F6277A824FB2E53CDBFF57FF1CBB62F8E2AD2C13F36042FABF5E84EB95
1E47494E30058F92ABBBB576B969FE22E93EFFA6A6439621350AAAF1F0C391DE
71FCAA583BAFCED79669BBDFE69487BEFD9C4CB1DBCF2C5575A45D016254AD02
7110C17C6EA288DA6B6B145F1A6AE10D6C70CA996B1E908D13BBA2555E51D7E5
696CB1D9FA80352DB942DEF37E6D8FE5B3B5C05E39AEB63A4F83E7FF8A02B9F0
AA1FD7A03D410B0BAA95297824FEF721625BAE714C82BE603F14233932E0B212
94324A8A1B7CC68F5C249FE637136673560681282ADB38592E5349FA63BA68D2
90447F64364054D6092B893198B7F772CF627107552D3A4EDB47B58D828728A8
D22D0B34F413C4C21E5647D0B321B6B211E0830899A273EAC693F467512B5D16
9EA46A66E73AAF00783CEFA678BA46EE65BBA1A54017213461B146EE28BBE146
5186FED35B5D9DF6B1C29FD6384F2B882EBED0396BF0CD9C6A0C80F2CAA0D17F
1901BCD520A166AFD7787557CCE8B3270896E0CAE601CDE94FF6186A65FAEDA2
8872C3BEA06C7AB218EB0C18C1C611294989CB1BB896F45F193AAED81A3DEE32
C571D517F311F415537ABC1951C033BFDC0609AFFFF246C4E12E405D8AB3A557
19E3A35891700937E9DDF00F8E5D4C89A09F04312BCE74C53AA6A4050EAFF1BC
CD9FAE24500F77AF6E0A997089CE47EFE3D8643DB83720EA87515FA01A50AA45
9157E2DC1D37BD166C52A903A4F7B88E15C006A94151399ACF8492935B4B28B2
5621DCADEC0FD03A317BB323F06A966D83EDE2D4AEB49E19543AEEE4351CB8BC
A99074D1846C8B6118F3F464DE5D6912F68D9BA30D50D8BA4DE28147EF3D9DEB
01367E889FC762233E56FD6A56E2588796B79D591DD57C03698B22E21EA82801
FC7B994860A325115DC22175C2B8BDC9C2CC88DC37BBD9B05F22C61E7DCC26F0
0B554789CF8664ECF688936427D98883D5ADD4C0B8FB51E9AF1CDF3839B22F10
A4F9B5BC83FBE812C0B19C4EE359B93253D43A9F68BF083132180F96FC809594
B23DAFFF7562263DA7DD77BF0B625CE68721EB88230DEE011B5DCBDA5BB27236
DCFD0AEC7828630ECDBACD700274E9E1F77D007B495E56CFBC2737367235B52B
4B757DB9DDFE1BAFA2CF9C66B72DA4C5423CA21FC425156020338BE97213C990
DF02E327F41B08AADF7C3895DB24E3B9A0DED10B11D7A6B789A6872ACA17C202
13FA2DA292F3F4AF398D2C7548711AB60AE3704A322ED418E27CA51FAC181960
9EC62EF5CC6F2A9039BBB607AA756431937D397AB44027AC95FB0DBEF0D04BFC
6CA824464458CD2000F5B60F4B61709483F5C5139FB2E511763654A55B2F0A16
EC7A14DE0B5DAB388ECD328741BBC84BFE419E74DE02D76677B369A56787BEA9
C36943B09B05A8DB51E32F510A350F89688E9DC5F73AD88C124F62C5E1742D8B
C526003FC5E28D7F1628EEF6677EEC4966E84D57E9AEB0BE5E9FB2AE0C07D0FE
3B25F09781CAB270C0B2AA34118F86EB5016BBB7121E9ED3A7B6E2005A302A6D
636625E94A91E6479C01EE1AB6B1987BA89D876BF3A22E05CFC49B3ACA07A36C
9DA1CE5AEE751C4098B73CA25E092DB1821FFAF98D6BE874CFE62AEF00C033D5
C764DD1D1F2C94205BEEB97ABC5AAFA6817E253043E348CFFF2E022DC51E6F33
3D152B84CB88DC33772533EAD686CBAC2FAAF63B39F1C83F6B7DF0C19ECA879C
4E6A1F1F489D98A6E6E98662F209BF6792C53C07E6DCBAFF7712D6824C997A4C
0CF329BFC8C11287EF4BE6EEF4C85FAF886969D11B422ECD0707BD50DF9D15B1
1738DAFE0BBE48E3234CA9BD100E940BBC4841A72A009EFECF8CCEACA68875D4
99D05F38BFD7C399DCB59CC90588B9B4C30A376099D410C010EA1218AE15F6AE
43DE1FCCA09A0915CBE46A4545FB9E12F016F29F85431A380479C959F1C4364A
416AA7B5E7D2CCC9D0FF56AB7E99B015601366B97018DB062B3CEDA1F3BA93B1
1B0E6503E5CCDC64A610B96F7EDDC1790144EDCAF0D3F1E3880B3DF1939C3720
D90C5724DD06E2299641A884F379305951FB9F81A4C2782770069AB5F563B0E4
F9E1FA40EBDA50F36A8406E3547ABB6A443B9DE2A2813ACD17B639D3CBC57C9E
6C2DF03A5596F9CF42178A40DF725CCDD18EDD8642146FBEA744A603E850CBE0
665FE5F2CE6E691D44FC6AA70880FB1E1796FE6E49A7FE18FCA539591E066543
3BF08D78568FB430AED84B8CE7CA07B2E0BD4977457CD18D6EF7C978A16C0301
CE44E994C65546BBB915DB9C8A09D427B70B7CCCF848FFE89A51005C449FD37C
63F35C734EDC4F6C09700B60744F51D111C642089B202942174990DBE413F950
146FD10B5FB5D28BCABA713E75A971E5C6554450414A4A908C36B09A1A475421
0E81315A5E6E40B488E9531CF048D1AB0C09C307B920E3948A033402D07BAA34
23B98C8BBF6816129CFEB665CB0117C18BDF0E5D17FBCA5FBF07DCDD97219C95
0880CF1E9127AA8E72E8115A35F1DE7840EA01E06A489604C3980327B9C4A667
8F6A5F74F38F86838E11268DE1F8BAECA8927D67818EF60C6553E3D645D74864
F679CDE21AD7B657F567B03B697F2C2EE6182F1A3274F2E43135183E227CEF69
B1919221CBD3664040F2823A2D9EBDEE36D6300AA109D0693B2A69162D7BC1BB
86CB892CC774DEDDC99F92C9DC8CBD3CBA4D6B84C1599CF2261E96B24BA49C8B
71DE5731E687B7A0A9FE05AFB31298058C3F573D7988C8BA76173408B720A273
5A8500B5C2DEFD3B16EA606785F1CAEE0DC351BEA9FF1642412286B3576F26B7
AA2757EFC047A0FA472C2257C1133BD2904448F1527A8B88A8842F6BC0721034
77A4569AB2EE79547E703A21B52BBB7B7779CB839529F819C147E50E545FC8EB
03AEB1008D3C59B0E2CE719F4F0B292DD6030A8B7BA959D71B79D1F53D167BB5
FD88A91B985A3E1945B32641F6F6A8884293DFE5CD41CDDFB7A875E6E45B0676
E0E2F27F77DE2E3A04AF174CBF4400FF3ECFF31E71ABABBB945680A93400EA48
6BF761A86C0230D9AB6F7338AC1298C69F28491CD377D747E2B2340D302CAFD4
4EEE642CAB20E86AF26DC4C86176F32F177577AF9596819D4778B982D10622BD
BA074BE2E703EF32C888CB41A6E1CB08B283F3113480A6A38CD4D4CF19B67827
7B64B4959EDC07725890156B124C42FCC414549F66CB947D5376EFCF97949F34
F7C399FCD27F308AC3B57B5687E87B2ED2BD02779C39017B97DC3832038C0C33
D2A27E426BA52970E209C8474E1FF67BDCBDB1DD8F7FB86DDC95D3385B2BF70A
C58A9CC16697E8AA20C67EBFD91661389CC3450549B046CB17C8CB8B9775E99E
1BE18F5B93C826C3B7505BFAF4829726D188014BCFDAFD53CCC1E2E14CAF8996
B01F8F9F89DFF605356337605B36B3EE932A5F76B0DA0AED1AC4F80C4019C03E
7BEAD387BBC5D26D5DB6081AC1C230FDC714E81A3CC9EDD7A98188810A51E95A
AB779B17D442BEA1B27AEC14BDC0A09DCE674261C44FBCF371C2E724593F80FD
02F79C84D1869A2FE5C8F3B2F452F1023D5C0DD0753C438B1F397D96E8B9659A
BD4B772EDEF6D315995B435EEA7C6D2494B58200A88FACC44C2EE2B166E610A2
0AE6C244690A78477EBBE1122813041EAE4509D2082CCEB55922C6024419EB54
5E791DA1A8574FFEC27C51ECAE720B89C2AF19D33EF6E69C9E4F9B2673781448
0EFE546A01BF3934E5E17593DA99BBE0686E519F0662EC25C849DA959E60F804
35EDCA1953BB19FA6A5F4B61849DE8B562DB30E85383A67C9E242944FF80DAF1
59A51C22E9CE91AA5B92C001C9CE122EF6C78E42DCEF622B0BD76D2FB3697C9A
2D6E0942A81AA67EEED73B03773FD5CB4E21831BC096C07F78391E47061486E1
88008EF87DF920B329BD0BB7C918369828FB1E3F873BD12AFB2341F845BC779E
60B7625E98BFCC3132D471DB7C6A7FDD6FDB9CAA2FC49198AB42755410EAAD9E
0B191DEB0CA44FD5BB84109112908E8A8ECB96E070CB473BB280BC7D4826AE03
A579F724DB01E6678F428408D34E9344A64D8D2EA7675D820C561E8145CF1620
3E13194355B2C1A57697AFC305BB906308E24365E66B6902B4269C5671E1AEB0
E9C611FB1FF44BA6E78B28B223B01EFB64AE4502EF98AA5B9374D10232C98881
B64851BD3820ADC4A7DFE08E4C3204DFF68E5879C46F2E1AEC856439DBACF818
51CD04EE662B20C58017CA80B3F888C7331A06E6BB81AFA6674E50537AC6CB29
CAA446AC914A00043837A26667F4158BE018BD8E62A503AA4430ACE200A98DBF
F8B8B78767F9CE4D549A087F7FA1E96F371BF6703FCC0A1076A60DA2F50C2ED5
F9BE2D6945F5B7F44090CF3E10EB18FFB0EBA92F4413DA97A3B338154A9DF2E1
D4DD0F9DB0BA706E5EA5EE7D5E591364C62AAE947076DDF0232E3FC71E477668
B9D731D9D2FD1B78DA993FDDE06ABA940F9D35F01E5801D2FD5FEB5E88FA7D12
7B04D149E4E46145D4F6D9233D4DACE9C1D4BB69193112B0FE831DA200102FA9
29C096324A64C6DF0CCF3D52EB88FDDA629E7A71B1360F38C5A87B4E1ACBF294
3895F1E75E07FC1857AFEFCFD2AFC9EBB2C617D7751CE609A5F24C77F549FEAB
651B13946580DF56CCA73DFD42B7A1C81D62E0717DF34D889E4A87DBD5304387
AE2FAF2ABB39360CC802F24A695409D3351D0C87A76C09A98F3FFE79F07EE365
7BCCB54C76321B82AEAFBBE8C0C28342B3EA76FDD90283E1FF850684502B019D
B3A9691758090160740CAEE96BEDA8D6BBF2AB321F7106834155E77AD41E358C
00879C8A44E91C60ED86EC6CC9FA711AEB173E5271F7871733259DC952D04BE4
CC53D93907A1CDD026DA5340954A025E42EB844BF5A594E3E5D316BD5B419CEB
C08E1FE624B225955E751A0ED66A87C954E3F755C0E3BFCAB2E2AD8B27BC90F0
432C3AAC430416162AC63245EC4D2926AEAB134B5755EB584263DDC91D3F93B9
BAD527C3C0A5F608F0F2EB26365AD8EBA76297F57FCBB98B64AB660109B1FCA2
8A21358E83536EB3D3CE7667AFDBE1DC52B7418630CC8F507A00827A62D15A13
AC5D14A0AE48CA3F67C8CA759011C8C23AB1E3FACC0F28E59FAFBE57DA7917CC
56A636818F6B833441FC7BF1061C899027B56329D287526EF098873824F599FB
199194A22003F05F0B9ECB14BADEBF0DF7A6C80F50839A5FCF45209E3774A50E
17A375F61C5D3759EBF26EE62DE614FB8CFDA025550A0D56F9D3FA34DEF1F7CB
EC6368FAC63027C2887BDAF2093D247B057CE8EA80A2B04ABD2EA48108596C9D
654C41B566D01A78A01C273CE3BB407A417D8B50E76A2F9257700C1EC2918844
3B980340453944288EDDA891C804E69155179A0DD1EF95A4D371E88ABF0946EE
BA7DB725B97CC2B7A4BDD0740C95A757D9DA85966B91AA14E1C85837884B1B78
3CA9F7385F585C0982C43E7C3F4E3B4F11829126210FCEAF6C6FC9C6A5DBF3A4
E9D86EFEE1400DDF61D630815209994807918C9A196BC84F9B64A31AB92A36AA
271B021359DE85EF2A9A757047C6275DFEE63C8EF59F02F8248305EFDC5015B2
3011D07B98DC78ABB7FCCCF04575D5B8AE25696E053832A60DEBE4162545713A
57B48191F1EBE7C3DD940EA198400D89F839B3DFCE6E14CEFDC26AFD40FF7163
E6CDD325588E396653C3050643C3BA39B8E7B5E7B8208E0DD4F364944B8ECEAE
CB584586A630C95140E0B4EBD68BA981287F57A4C2115D560FA9D3AE2960F8D5
2043019D0C119A81B4F060DCD13C8A7A6DCE37CE61253F1A06FE1018E5D5447C
D692C6289EABBB35DAB603564F0ADC831760E40608EFAE87B4811D6C524BDF24
1EB98A26491A7C64DCE206293B7E11C9D380770534F3F4E8D31601056C983D39
915A7581647EFED73B5E6030C6814AD8CCEBCB9DB56C39A7127801FC22A6C427
372C13FCFE5FFD96326E8E5F639EE95FED1BA04EF6BFA7DE21EBD474BD4AA87A
D97D7934AA486C1879542B57FDA1F202D75C31FAC106BA230B2058EBBBE12D98
943451BE72A80582BD5B1B2FB61075BB1A1ADE11DD7EF0052186A6DCA7A8E08B
D43D38A39B972F81B11EE22ADA00046829F6C7B0110ACBBC47FBFDE195D96A93
36C2D275C60DF4B6C6F3BF0284BBEA1EDAB9C3316D9A636CB1BFC23AA5A80A67
92321F56194867F54AB82019BA64E27B964E04AD421297C2D8988810CBDFB237
ADAA240AE7E27BE287DA9B884A22C7441553E588EF1C812130359EBA879FC74F
AE172A11550CDCBDBB9E30FF9B45122BC0C043F471BE9EB00E41F59D47407D7B
9936DF083B25232894EB674DB31C7E646B9009DAB4B708CFDD2362B18F715D2F
30D1EF79D7AE8FAD2AC430CF235866C89E7540AAA3D1AFD24795EE7D97D0F3C4
DF3D45394771D050307FA3DD62142FEBF727E6FD143C556D935DFA8535A7AA1F
8770AFAC9B3DA19D06532CDC0AA8A6040617479C6955617388BEEDB6DB80370B
76C483F8BA14377019736E16FAE2BCCC5AF313AAECF926961F0E833376BBFBF1
89CC0C6118FCEDE34B97D1BAAC665F6314FC5CE61941483234D93CDDB0EFB9E8
C4330146F6320AA04D58F758224730C47B52CB76E9CC533DD35390BFACB945BB
65C86EEB0C365FC2F70AFD1B7DC6144AF0AAA1D19E769C71DEA1B4B76910C9A7
34A6DF1156CAB321E394BB5B3B5186A63A91BA92A807E0F79D9977EE189F9A96
714A54C9E6C3A8BB5F08DD509D2FD27C8018D794727509C5D25B2B41602310FC
09C45CB42C8C92041EAF1D8781712D7AC99AE5EDDE61696B7CEA6BB5D057858E
DE00BD447965F9B4103590A977D44DE07480ED4B86875C330EA0D2DAA8891031
0FC7D0C77665DB7303AF14BDC24E4601D4403205D282CB18B06061829981339F
AD9BE89378FA29EF5ADA6EAA2BDDFEDA255C0A3551C83B2B08E87D15676FA94A
20BA9711D5DB08D426FB3E1A3DF10F3F143256B391230BFE5B5C9B3D2D4FD9E2
BCDA391C3EE4AD779B2453404AE5C2786953F061BDCFC6E854BA5DD9E77E1948
F1DF23B6F52A7906EBE3F4F225B74D2C48401A8DF68DD9BD04D82C1FB7BEB610
680D8439D4606193B50926D7C2AC8C99AA949D18BE5A2E9B56D44C924622C222
566563F4D816641385842D001D2A2972195FC55AB7DFBA118722389589489E3F
4770EBA66EF0E659C1C6417CC6E394C6F9B927E3F114E0C1A396DC50D15966D9
F97B68A0859B74E40291376D0EB62D25BB38660709282C0AC3BFBFDA2F9B8880
4B2E14B1E91B809DE7B53C05A787F446438A42264B0ABC9DDA781F4B381ADD20
744D70A4945FC9DE01566AB429C08A87BEAF7327844DC1A8895587E364B43E40
69DE49E8B171A19A5CC2116F5D5648079FBBE671E7119E76B57F34C1EDA5DC90
5CFF7E9EB9D3E4993302BA3901A303B182A7A240FF3489B8B09AE820027D2586
4D06AF576FEAE03FD39D934CD007F3E162AC1049D7168340D7FD4BDD903A0BA4
00F32DE68815F6C19AB4430824E771A067CD065051FB9CF895C3A0599B61E751
E0F107C4C1AE1649C8909ACED7427DF65235CF5579CCCEE83E3A9B1CEEDC520B
AF2D92A51D953F08F86911D207A1E0971D9DA7909F35EA5C7815F1672551833A
B9609C8D76B390E31E4F88AA2D1C5C977B772CC0DEE9DC65AC7F368594234345
5C19877A237B938F410E5E8EC9D1FA4F986CB07A3F9AC64886B0D4C524819C59
11FD51182E0E0613BC3FE47B5502DFE468485C2576FF4E7BA65121CE7D42B7B0
7838BD5CFD50BB5F91BE699C69E0B9B0E5E510544498507C6B09DD71C1E02C40
B80BEB8507B9BF9D591B20CA0378707E3AEF09E57C737AC66B8566D57AFEFF29
983577E69CA97147B4BEA8CDEF5F9BA1F721916C63A38BCD4B6DD3D8C6BC280F
AB8609D17829E7C7E53799647D6456770F3B79B5B6A8D288ACF3E3DA26DB5A57
69ECB172D60C00C5C83BE140A3D7C495E3F8840EC937566594CE10249B2869F7
E92B1A3541BF6066D7415BAA809D9BCA8E21D0809A847CC8E080D849773428D0
D5B5AD66EAD43EEE4FBC056E3B0EE27E4DD9C836C8AD1F43EB702A7B5621D391
6C428FC59845DFCDF208166A3ECB4281212B98783E3BA60A15720B5A263FD303
81D190A0499C457A46172EABD8B610B3832BDC7A8D51CE5D5E429848B21B8459
4B1F0110CAFCE7A8B3602D9A8983ACEDE78577AFFE4690D69D9EB1C36E3E7C9B
887F9C385F4D8F0897DC0003CD6C5FD907DC9A303C5BAC859D96EFA3ECED26A5
E3970BAA70CEA1F773A9367055BA25AFB35F779BCC747D56DA42075EB38EB7E0
B5839306B05540E41E42219470F38132445CC19166BF5EC51185C19302505219
4A4BD46B1F2E3882BA50E8EC1545B70054434A6109C2FD39986F049F8C2B1AA3
3DE4774F66F3DB019188419123C14E4C097DDEEF9A938B897A4E8E48494BC0C0
C7E8739D171116A57841E335C62D3E7C15437B3DE6735939136CBB706B4E148B
F797C870E0856299633CB03B65E655A5607320B5DE57A01E034BFF2BF7DA752E
F4B9256F003516AF3AACC27FD09EC54885C24CA6A524DDC2D413FCECFF521AE7
26F2383C6FC807BFBC2F7C12D3DB2FCE84AB3D6964558EF78E699FE46B9EDAC5
F1688D33A172C96DF748DAD7F59CEA54E876BCEC5DCCD471ED3521D6AE3C0FAD
46EB7F287FDE54F2ECCE77C540069547B6F6AE6D769DB4DF64D74CE47065D777
C94566924F60BD207C8F013176A4A4EED9F095AEEFBA1177A9E8BDD12182E55F
419EBB5483DF2844D41906FFC636B132283D10513F31E3374A6C237C86C216AA
B94D57DE1F9CE86FF47F198F38425616810335505D9D754CCC40EAF52F5059B3
B185C5603ADE59CFD87FBE5B60DBF808A835E3C669AF31A0BC93B89AB68373E1
DAC31540A7E00E0B0EA4D5FCAE9637346B3C86173B5F49339C722D9017D3AF56
BF80E5185A3A29A6EFAAE01158BFC7DFB5A1ED5417273B67ECE42ADC68511E9E
E2551265DB281A82888288FFB0A596A296543607DD298372AD18EA5C0E3535E6
8F9B41E476AC37A837419DEEF1D7DC32D9439AF3E1A99EFC2D714905B9A21A7F
743B009D8E8D4FA6DCB24537CC48C91CA04E195A116B1819B9D778CF82739A11
03F315F1823FAEF8035C959772168AE3D076B2ADA6393967F99D2BCABC035EE1
2C3A818905FC4550ED17C4E23ECECBF263CA94BDAC1F08ED5A55907684AEA132
831ECDCC65447C6780C63ABD0638D65E8F8451D29E75986F64748EA4389CAE37
43EADBB813B2B10D7F473B73F854DF9E8ABCA0C228866B103778E93B2DB97D0F
4745ECFFAA2A4DAE1E6E450F0C1759CEA0C6AB130F5A7D83D98E11E33D9CCA97
8A14FE3C27CA66D88CC2A0CD24EBDA27397A651136BE5249868B7C19037D9365
B427A82A6645256BA75F8177830C93A74EEE2312AFD7176DAB8127C261A87484
13630BE7DD0B5E6E64360B125208E338739FF644B22D9C450C131989D555DAA5
77E1A731784D6C152D10C126F58221013995DD3447DE42D191C4707424C0DBC7
1025EFE0C1A8A6C6668A5A29581C83267C5B4AA4C2F479A550D8943B48CCC2CA
D9A8B9ED9EB2A51CB98617B4805AE307281499BC1CE8886B3887FABDB3FDEACB
540DDE55DA4E96C5680DD39AD133E3B2D776426F18B928845F5CE730DBED4FB7
19EED88D08CBA2F4C83D803E2932CEDC088B4CA22666386FA68DF24FCDFFF618
BC73F11738853D9A74AB3E0836619A95A6A1C1C729FFD283E131F5CABD7D09C1
4C7D3A9461BEE7401398E375BF3D17522FB2294901FAC0883F913F236EC15F1F
7469BDA601034F133C13B5DD5833A2C6AC843C23FFE1EAF5FFADFCEF28CDDCDE
DCDDF28129DDC97BF78CFFFEEB30D12BA698E99FF46EEE5B856A8C34958F32AB
6B2103238ED8C10B9F1C018336070D7FDA0126445E5EE67BD955E68F8C976C83
E6530EDB363C773B0FD18750B673DE5F89DBB5D0FC1E14904F5DAFA496715CC0
8516F4C28957AD8862B5D254A2BE2B8E12A9FC8999FD76B791984EFB47D45FD8
7B1BE08895DC49F9D7A0852A069210FF89929E936386131913A9CDC1804B7C86
F152B58466F6CD963C0F09276706748EBD1824939431F07FB1C74C7F3041458F
0935D26849FE9FBF6614048628CFC4B451B28AD4B7972CAA524654088EF9A91B
B239721520B829F3CCFC25710E56627EA22C38EBA475BD3F54E3973C79493350
D5276A7455F0F029D03F24292AC6E8CCA1CF7E1AE9A7A61A9FAE9B368234E7D0
B17F6E128F7E4A2C6F31F2B17D01681B72364D0BD9BC1693247F051B5F153798
642408C2632667AFC0B25A5FD17EE325ABAB5A4225B01E8474D726DA3FE69029
08CEBB920DEAD5807651CFA8C9B7D79DDC4E45B5B392DE482CE0682419FE9B98
FD50C2A05C47AFC9CC1E8243BD31675AFEB0ABE5E0FF27CBEAB353976A90CBBA
62C64399F8FDDCF5015B95E92CCD8ED04DE51B9E922B06AE48EED5A4D9D5925C
C611B6D7814536914C28B03F6455C5438AEB7BADF718F63BAFE0242DD4467355
03765B500DCA599DC776FDB53A7FFFAD40774F769E2F5D64CA6D7313A70E1FE8
2E19573353CB59B9E646C5C1E5DEECB81216DC4CAF210F85F90FD2333B47C360
D94D6B45DA01234024A37779121FE3ECAD42D00C335974454A53290CD2214733
72DB9B951D37E3004B18F41BC01C88B4AA90BC4FC66444271C754039D92936DB
E6FCCE7CE68008AA02FA2A83DE7447ED
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMTT12
%!PS-AdobeFont-1.1: CMTT12 1.0
%%CreationDate: 1991 Aug 20 16:45:46
% 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 (CMTT12) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch true def
end readonly def
/FontName /CMTT12 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-1 -234 524 695}readonly def
/UniqueID 5000833 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660FE13FF01BC20148F9C480BCD0E
C81D5BFC66F04993DD73F0BE0AB13F53B1BA79FE5F618A4F672B16C06BE3251E
3BCB599BFA0E6041FBD558475370D693A959259A2699BA6E97CF40435B8E8A4B
426343E145DF14E59028D4E0941AB537E34024E6CDE0EA9AF8038A3260A0358D
D5B1DB53582F0DAB7ADE29CF8DBA0992D5A94672DFF91573F38D9BFD1A57E161
E52DA1B41433C82261E47F79997DF603935D2A187A95F7A25D148FB3C2B6AA32
6B982C32C6B25867871ED7B38E150031A3DE568C8D3731A779EAAF09AC5CE6C5
A129C4147E56882B8068DF37C97C761694F1316AF93E33FF7E0B2F1F252735CE
0D9F7BCE136B06EE967ABE0C8DF24DCBBF99874702ED252B677F407CB39678CC
85DDFC2F45C552BA967E4158165ED16FECC4E32AC4D3B3EB8046DCDD37C92FDF
F1F3710BB8EF5CA358ABACA33C7E5ACAD6BF5DC58BDFC3CF09BA2A38291D45A4
C15FF1916FE2EC47FDC80911EB9C61F5D355BEDFC9DB17588547763AC5F0B1CC
12D2FFB32E0803D37E3281DA9CE36C5433655526ACFB3A301C56FAB09DF07B5D
048B47687348DEB96F3F9C53CE56DDD312B93D3918CD92AF53FB9461864D11B8
0138918D0B1270C54873C4012CDE6F886DB11BCEA04B023EBB43E0D0A06BE725
741D08B9DB688731A6C9886C15A83C28DADCC81385EA239E045E8F3670CE03DB
9EE77ED067036595C9F3B1854343BE3A12E486B6E5A2F8AC44FA5378D28DCCEE
306B0E283AA444423F9A4FF38E2B56DCF67A39CEB2C643DAE86865517D5D0371
CB8797208ADEC637330A3A57902C9A88EDB75A7C16FA9850075D9F19578EC666
1353CC1FC512D59DFF847ACCD3D03959C548F21BF622A6C3224EE815E753BC87
E0364A12A1728D0762C266515BFD30F7711A9F1F796BC4BCF679918151320681
D3202FD01EE5901981E7EC55F58812978105DB71D10B0A5A39BB69F703B11160
71E527862BBC00736D616BF295EA94ECB611548BE15829EEBD0909514403608D
4C7C220B61E9F004D1CE7760F7D96A75029244E5505A2579171BFC831AA0C18A
5D09BC573A582787ABBCF9C680DC4A5F41F6D7208A4DE3DD4E566675781B86D4
7631FB52070FBD290AE6DE90DDCBECF4A71A9C04A88F4DCF468E3256B3E240D9
86688B5DE5C0EC734599CC85478045BF32033E14B99C532D3192440F4D23BA99
AABC774E8978CC4CC681102FECA5969C404FD82F9A0E9F772ABA32D9A309E140
C33E65CD55DA1973802702A9D38953F95734097864C045690EB370F9600CF504
1D8C256C3F54789A39130AF465468B2EC43496CD305352AB5C50B19B6D025C0A
8D85950ED3DEDCE064098AB2EFBE0E5470B1553AAA691B108AC28B169609B244
B9A4596E9DDDBB5017847AE359E7CFAE76951CDB353ABB5EAC83026FDD24BFA2
40899B9A904389B04CA8EDD18D19574585FC843F2D8459EDF6A296FFA0047F3A
7D08570D877CCC8AF22684DC4CC7BA11F5E2296FCE728087D5394F3D2E4CD157
399E3BE34CC8A97E4D9B7AE8A54747C945C23C3A2E3C07307815EA77E3DB8F02
FDB2E31E2EFC2F4FB10A6CCD14D6C5121AD7DE0BC201BDAB24998DF9797D7F37
8C00252AA9783E54023EED68AF1D0A7C3DE94C0D51DFD79F6D1CECCC35FCB852
C7F523D4CAD562FB00A60835EA49753F176913C4B79708A071CF88E1757215F9
4844D934D0F0DE9E79A4E68328C9AA900C8351B7A51B5504C651FE9C6832AF05
72A710A16C7693C544D585311E6F81BEC2C33BC8BD3FAE4E82B0DDFCFB1CE847
B4BF65F30AB480B329774BF6BF1246E2D1F402FA72F4298B90887DDE0AD09DB5
4CAAC75BBD2437B7B50A9F42206421D0AB69DF3DEBA9F0134BD699BB223EA67B
B65E5BFD4575E7DDEF810B768D568387AD94DE8A6673134B824C78AE36D0922B
E21F10BA2267BF39AF9D7C06E64A467D96A0F8C4B6733BC9D801FC391D426B46
7FB6CEE46D3C2DD27770565774258E5F2C5773D82F491039976FC29DB4E86213
0A4D9491E5EEFE362AAF37F6C0FC0BD6C285CADA011201809FCE904F0C558834
FF6EDB62354EB38795A4FBA53A670912FF984A2A702B9898D4723FB993AD10D5
E8A3CC543EDEC2D6CFC69E6DB0321010D6A7FC357B9B6292A9F6D5BCA1FC5B62
E769CB1BD40E7711A0298D1A425DA896B11A68DB14795FFD9FCBAE6C35DD3FEC
6F914A57C65068473594716B2CE171E7B59270B129233571D0A5D6D477907286
70057B799C2BC43735E2807CF34BD920C25B736BAE8034A6B8CC5E39EB4B7989
84626CC8667E5912BCFE3C9FD65DA80D6CBAAFA6795E8B9AB9895EFBA2C46704
64FFB18CA92B5215AFAB89876C41E34E5C1F14118714F73E516210C21D44D038
F860AE5512AB012BA7931B8411359B63E6013B3599EA007B774D6B6D85E872DA
979837435B5EC037B756A26BC1DACF1050AA7884F3D694CC4D829688D599C994
3352EF1436AACE4E456C6C8E1DCF29BC276D6B2130EFA0F2318B7904F3391387
EA5650743E6CB1768F4A9ADEB48378D1B86513FD8BF92864812921D262407DEA
276AA0A2ED0C36C7678DD04C5975A8D9CA8A315FA127DB1DE6AEBDF79375543D
654BE2B92AA5BBC5461CEA72A689751C884E7139AEEFF88BC589DFC285CAA007
FDE71A258B28A382967D314721B5D29A2D31444C9EC9A3481247E6C878D3BC6E
43FBDE0B6E18B7540600F0060455FDB2294C88A0C67D635103151F8FB91696DE
D372C14C3742AEFDA7DB3A5719CAFC7BA3BAE587B239F2D55F33C70347558225
1C2A16490B20E00C8976A27FDD326D2151C6FF53CC045D2EC1DFC9E01C169FB6
AD694DB6D8CE3489977471CBB867AACDE52F245BCDEE90C3A23F07BE0E7E2094
7937446BC05A1705D86BB65AEAEE557E4B922C542EFB6172DB59FB9B49785C7E
9DFE1F47B9FE21B6C0D6436EC7E8B1A057B8AF5128E5B888589EC1307734D22D
C2B20BCBCC3DE667F067B44E9D0C9BB639B054CE402EC991B5B12F1A8E2E6BA2
E50CF2D44A7C4C10EC7DC93C472B75ECEE779FCAD56FB7F293314ABEC48CCF74
B04B2AF9078D0E57E936440867CE1BC1FA8FBD944E3EA779BD89977B7C0FCE9B
6B2E4F4895D91654FBB5788FBCA84985E90E92E5366CC32DC874B51ED2281CF2
2E6FE6BE3B206CC18FE73233F014451BCD5D8C2F4873DB3EF2A393F62D5CB2F0
B98CB8D8E19DCC6F885C4E8F7BE5F96BC34661DC6FFCB457F3642866D393DC45
FE66B8AB77F95B02ED26A9D550860BFA4AF0881BBD5D0F01F035FB466CDB8C9D
B6406B2679EFEC268CA1AD8D4CDEE2D47D6EB641D13AB7F3151722588DE3E2C4
3EDFC0BE4B9A65D0CBFA0F369C9900CC105216A86DB6FC9338910DBFBC4F3447
531A32AD80C30F83BE7183E30D9C49D00CCABF3C615A94917851D3145F7FE82B
B62C60EDD92FEC634274679B1BBCD979F502CCE2D76A7A273D071BFF9A6EE664
D88B56896613CEE8617A239391A3140C55D8EE40DB0EF84E1E6F378CA62073CE
D0C24F98F07BC80875B0D07E8D449344826CB71659AF33E196C925256B11A737
066C9A1FF0BEF8C90B068024B012A25E605F1CAB88856FCCBA52F23ECEB9091C
368D3616332718EA80A122C74089B911DA55F7AB3E4BCE1C
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 0 /.notdef put
readonly def
/FontBBox{-53 -251 1139 750}readonly def
/UniqueID 5000769 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5F0364CD5660F74BEE96790DE35AFA90CCF712
B1805DA88AE375A04D99598EADFC625BDC1F9C315B6CF28C9BD427F32C745C99
AEBE70DAAED49EA45AF94F081934AA47894A370D698ABABDA4215500B190AF26
7FCFB7DDA2BC68605A4EF61ECCA3D61C684B47FFB5887A3BEDE0B4D30E8EBABF
20980C23312618EB0EAF289B2924FF4A334B85D98FD68545FDADB47F991E7390
B10EE86A46A5AF8866C010225024D5E5862D49DEB5D8ECCB95D94283C50A363D
68A49071445610F03CE3600945118A6BC0B3AA4593104E727261C68C4A47F809
D77E4CF27B3681F6B6F3AC498E45361BF9E01FAF5527F5E3CC790D3084674B3E
26296F3E03321B5C555D2458578A89E72D3166A3C5D740B3ABB127CF420C316D
F957873DA04CF0DB25A73574A4DE2E4F2D5D4E8E0B430654CF7F341A1BDB3E26
77C194764EAD58C585F49EF10843FE020F9FDFD9008D660DE50B9BD7A2A87299
BC319E66D781101BB956E30643A19B93C8967E1AE4719F300BFE5866F0D6DA5E
C55E171A24D3B707EFA325D47F473764E99BC8B1108D815CF2ACADFA6C4663E8
30855D673CE98AB78F5F829F7FA226AB57F07B3E7D4E7CE30ED3B7EB0D3035C5
148DA8D9FA34483414FDA8E3DC9E6C479E3EEE9A11A0547FC9085FA4631AD19C
E936E0598E3197207FA7BB6E55CFD5EF72AEC12D9A9675241C7A71316B2E148D
E2A1732B3627109EA446CB320EBBE2E78281CDF0890E2E72B6711335857F1E23
337C75E729701E93D5BEC0630CDC7F4E957233EC09F917E5CA703C7E93841598
0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6
472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E
A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26
30F2AD56EA22D77BA06F2F0A466830FEF19E343311E3EBB8A5CC4A176B791D9E
F82BD32F64C39C814379E8BCAC05C1FC19B2D49B4016C4E4625FBDF0F842CC15
7A3B3FACF36C12CF87558FD4207335BA87796761C06535B3659123487E2B573E
8130BBB39A337725D90C83C4F96EA64AC8CA7588BA6958C08919B5B14EE68AC2
4192D6EEB13E174589C35CBE00A961DBBDCF4597DF2F4821DB73BC21517F293B
8290D6FCE00579F118219F9E831B9BBDDF930053685B80BA9D9CC81E44A9F73E
8B4F751EDF6480A9BB5C0ED669DA82BCBE1DDBA44F26EA4482FDBC0A4ACCD749
88E48FB46C1186FA557711B0264667A2D278B5C98E0F95951A95F541AD3979D2
D4A6839DE475D9EB07E9C6B572B6C8655D8E0F15B2F130C72573F8522DF30857
DD8FE25841B87C42BC7ACCBF96BC56C4A93F0F0E2AB990B9A16DC59544A359C0
1053EB807CEDD81FAE05ECEB21A6CD0D68EC99FC69EA97B121FA189CB72AB522
2BC463D5274A5260E208A66E6D5AE14ECCA328E3F888A6883368107249E8BFE9
511D504A50488CAE2988BD34C694CA490EA0A0B71B565995BA19AFDC9C332C9C
4C0437B5AEFE5043AFA8796B64BB80572E9A658F47A46ADBA0A53C3F5263E80F
C0FD55067247A8BBD7A24D7FE0681F82678186957467B3AE7DD69A1B7071BA30
A019C8A623D870511231C9BD91DF0444C126A3CFB3772E0973BF41FEF1DD96D4
837AC41F35F1435F7DF971FF2571AFE0D8FFDE1DF2F1B25C7B366F94665DAB2C
719BDF3EECB6CEFE02F8CE16B2AB553A755FA500E15216313B0BF06385C25528
7CFB7D9EC4A83016FB8075941261F7A0FBA01E6AAA5DEF1EDCA0037756E4FF0D
909A6321D1F0EA32A70AEA089647DF89121A373148F9982A926AFA4880AFD2B5
C5E946BCF0CBC661DF6DE06A60E0680CBC9A6A856F119E57C9DE7B708B57C111
4348040C914BCC3C88A986FBE2C7C77B7F2C1B039CD2518CC7218F0E68B52565
47ED4BB997539E35A01E310306095E89A34E36629F57C6021AAD085BF5FD2BD2
7CB4B9433139FCA7FEF5CE54BCE312B1ABCCADD14B8849B8FBC5EF6408A2743B
CCD12BDCAA46859992DF6570EAE001A7C547EB8B56E7ECD9129DC0FDA0FE8D1C
F25DF1565627FE33B9E8267F22B716A7441177964983F013093444BC07250E53
6FDF5AE45FA0F43A48A5EB0A5AB25EAEC58D49B9049A26C94A024FBA51BD54BB
E5107C9BF98543D2E659FCAC3F3C77BE77FE7BF9A9E4920A890F05B68B136257
31C2A63231DA1A2F37EAFB8E429EABBCDF443D9740054D17E6C4C2A1DEB40E22
612BC6773C291F60394CE50709FBAAA2BB433008D096B820157E5A90BE248C32
DA05C2D63F8F7B8F855B2FC5A6780D10238E43246ACEF6494EB2D782351C322B
422547CCF149F6438711B03001EEC2E2AFF843731E7C8B9A11248529485F861B
5B438F4CAEC933B798141DDF608BF7BACA7D47D81D9A686F31AE208851867ED1
E46981D3F4DBDEF5ACB0AA591DE4731F85F3B35BDEC868F54264E28B4C703CE4
68F96D02CD9C66BA640F60CA9EDB4B3E853F9EB5ED8A9CFCFC95D904E9FF1E03
20168B675206C15D6D99633BC15420271E1D0A16CA0DF900A2439C5275656893
713B773D96EFD7B2A723E09A1D4CFD3151B93FD04919B0A9A5E56E1A7DB05819
C972B98D565961710D9F0CF85A2753EEF25100D22ABACC983A9A6C11D0793C77
7C51208DE9DC478BD0F191FAE21DEEF2B47085604D2C239460EF1940F5B6B240
AD022B4BAB72D407671AC5D4A163A2B00CCB2F297F52A7DF633A79996BBB15D1
F480CA95A00861A0F5CCB947824B77D8EC1BA9261B99EB2C3A8D6EB39CDE6F5D
98AC095E31508B7260ACCC3F771C9424B0FEEB69B020B1C72B406C682E4E9B5A
AE70BE2D455B0DDB83BA412AEB478CFF3749E9E4CA79202B282969FA7435FFA9
CC67C4C42123DB9B65991F5D858AB4A67B53ED2D83CD4EB3E5BBFC14D402DF36
8F85B77A90E5543608D6B0B5D496BC9EF2D5011A6EF57C962604438BB6B7C5A7
AAA59BAAC719D12A7CEF3ECC264DCECB29E45DC291FCFB83E6BEC0AF11801421
9CD3744C24067F824C77FFBDE35435E16ADD36308270066FF494886A13DC05B0
F325E8A2C55B9A36963732519286FE3A00E5D59C05551CC7E38C97594C94E83C
0A3F5D807E01BFB4BF37135BABF865225AFEB23E47D75834BDC22642678AD6FF
3BC38BB3F33F0AE2EA9BE668B7D8A705EACF48059D2108255922C34661E867DA
3747A99C7C765C0F88D0D6C7AF84750D04FA29AD801B34DCB798F181C7C34980
478A8103A64394BEEFE49D2EA73E037EB2B09880E24E603FF6188DF37C43A306
9006B33C0711C336BDD587326A3BB5C5D29D09FD9724D4073D595EF5AABFC06E
DCB16F8E9FE165E2A603231EF503C8BC3F2535722FF1FDBB1BFA160225FB865D
AA73E5B51DE27D61F26BF735C9BE6AE8EAED4356B9556FF31006719CCF5AA58A
91A2CF7E71369E335DBBA261C186A92C3C219A4B899DB1078B06B96EA4D0C444
48B2B64E8F939007E6ABA7821B925E9A3A5A04BE33B36C546205A4B86BAFD4DA
86B635E6BBE0E09782D6BA5173906F8759FEB28DD5E00043BB62EAE4DB96DFFC
3FA20BC81686D43AC82FC4A1E418B24E8308D40D87489108D2641E6948269B10
BCF9619D4069A027B7E09EC4D05F202E64C3C1327588168A4011DE869D1E6780
DA5C10FB83B424BC6CDE0652FE542BD081ABC30C8D294A04D410D997FFBA02A0
E150BC3CC8413E381B256E926D2956607D05EB1282791736233DFDE7BFEB98AF
18FA9EC712326F30A4BD0BCF3BE3D73C751FFACBE58431B44A53E5922EDE7A1B
03F8E2C3F71A70DA5579A6C79FE22DD3CBD9FDD0F26E75C7912C3912B1B19DF7
93FEA62A929736E723E7C525CB01FEF37A5008B665B9932FA2D26E1047872090
535A8962B423C0D3A7C6AF41503572C06DFC0637C600B12D8B23F93C9777DEBF
6FCBFFE8430A709E93626D5A7394102963669F3AD718A505E9B9A556FEA6962C
CE41D69F5E017AFE2A41EA8974D6778AFFAD895CAD7C292FDBCDDE4504E152FA
D0E315AA4E31EEBF9B6572138061DB77175F1DC0AFDA5837372A5EA42426D697
84C9F986A34D05A68341C308E7875D4D1806ACB149C00AB86463AEF0934E9441
606A0650DBCC8D794E33C368DA42F1BD337193DB17D279F06C1A375483847744
E6C2782018F687F634777134A8E68859AE3A61888BC146BE26E9EAC8083E9D7F
EC591DF2847C1CE6B466DB5A05ABF048235E0B1D7906C2960FAFCBF704358BD4
F4856525DAB9C58FA5348F6E85580ED76F440715E25D872F6C0363612DEAF591
6A8BC8AC44378B6549659B73B0BAD49A1BF4FA04DAF375F7311B9788946ED020
8B246212B3668DABC759166459885F04C3A59D68B80EDA109BDB2D1523B18D94
B5E2044ADD046A1CDE38673997823E79CA7414F126372549CE9F9CD47B5DBDCA
DD897524B18033AF0CB04E21BAF952E7D9BA5DE9F3DE041D444C08F845AABDB4
2D4A42DA4F29874DD9B2ECE6A7812AD01ACCC5C245DEEAF47B9D33F3E8B05C68
A51E21B1F2A5746601CC69200F7C1CBDEF08036B0D392AC93A9D339A8B311728
B2E37C7A7F098252E892ED698AA3E679AAC7FB4F8BD6A052B30B1AC12BB9AC96
B6AA796C79C28155E70ABB018ECE7170D018B1AEBFB3E3E1F915C5176153E882
784AF399AF15439A3E52F7751A33B0C840C32B711A736E4614807E7E386857E1
87D227E2A3BBED127DB2CF6A84A3496BE2C2D2A40357FBF5B72028D708726260
ECD5418264C0009ECC80472B0E28218C13EE65B533774D601A86108242A14F8A
2B3B011F032EC9618DBAE721497035A60DE12887C57FBEA197B36AD94E03C948
CC229AB85C200D785496F4B38C36EA8560F83783C6633F15D4668FC4362D7FBA
A61A4E14C5B60DABF087C389AAFA41053B98736DF675D1CE2D1369B56EA8EE8F
12044122E522FE9A489D6251E26E38B28D445E5827A20CF3C5AEC07A4BF40302
3A1D9106EA76088D30EB921EB90D9B3FBBA18ED6FF6923B903A32BDAC5128387
258220918EE014C4A2379C060205BC7D45722B6A21D820E6CFE458C5303F0796
36EC7309F711990C1BC0EA0C0FC511B8561BFA74CD0F5AC9BA153EDAD2531581
F3325C59FD9C73CAB132882EE147D830292220837AEC13C864B44CB79BC943B9
A58BCE34CAB70922B38959001F9A1851427A174576FE9BA944D2BD56ADE4B0FA
80E311C321DF356A88A9A401F3F6F1957F73A10726F8473AFA9C28C81A7CF382
9FC8336812DE5ED38D2366BC58301669F5CFA7AE99F7912E06A4343383B5F4E9
706F519C6D65FCBB66F5A1BD0C36D523A42F9E28B7C3B4BFBA9918A66C12CABC
786EC9BC73F82F141FBD837E8F9D9E1C4E083E6E00E57786E13128747183F5DA
A049C73396DB206D2CB2DFD593C37FCFC563F3479CAFDF1F57B012DB596793A8
73BC08607620077991F13B7BD66DD573A86F605CBE308EDB0E23A9175CF03359
0E3946E1FADEACC1141D71A0C9F9E0C093EABE2F55C3422C259B2646D6A20300
03A9380B54C533346C14AA7564414983409DD9E76E1D6BA04A18CDE5E4DF79BD
03BF5EB4ACF4B60081F8ECBD049A402E4935B7390F0C33EAD610CC84F155B1AB
69D9DF881AAAF17997029B34E0E9453B952C43F6B6744D9ED373F79CFC2D5250
C3CE02C5E490600966AA9CD8D6787D6F0493D9A16DE94C34DEEEE2E634D5AAF2
3E8080B9F347D0D40D112906A3DF0B4223A4348F58736462CEEB76EE1D678C28
ADAF46AE0ED2D4F3D5599398E6E3DF792475FCFA4A751E398D4DB71CAFB39C59
0A38C2952483D00454EFBADB2725CC71DB513FC1C067840C6CCBE1A5416E6836
09557C0435084E9F5E0A316185251A7948E67706140496F730B3CEB37A0B96A4
39B9D62E2A1BC32516D26DC3C45D00E7553B8F8F3ACB2F03B60381B60F2DAA2A
3D512897CB5A4FD0A59C45E32AD6503A99D5A75CFA90D4E786ED9102170530A7
781F75429AE774418F78E0D6629AE9E6148D99F71115AEDAFC6C9FCC590B956C
562F4A1337344A5E0D7ACA076BAA008E389A9D281A3C9738F49394F3E23A6BA8
BC62D7B0566D2C24A367E7D3C1AEBEF5014D8050BF1950865071E2E1403CB972
3BE007D6F7CA30F04E57834AA19E1E967C6E770881CE27EA48B171E651E75DA7
628B68BCA031EA13AA31E08ADFC33CAC7D1A270599B5F5CC00702D510F4DADF9
F89D57F1366BC7D85313FA73C89228C75E50AC2397986C33646F61F2548302D8
6337F84E957D01013431576CD9C6C5D2F082CD971CFF2EFD7872F35FAB90BD14
EE4CC0B1A749EEBF09A34F860CA3C86B6B70BE35F2618EBC832A68016C9CD282
CE74117531E8FAD950C8C7E1504D83E90A5A95E50994959620A6AA5A489F3854
117323F2DDEB30B54C0390A13BC026575296E6FE94FB4508C2776FCF7B77DB22
BB753A440A3670463EE87DD0427A4B3D2E2FAC95B99DB90DA35A6C2B585E6F40
41E2094A07B40B29F16A9662C7FD3575A8E9BB5DD5D2C23BCC45FD8B75F5BC28
9BE8457BA91D06174D9F7C116816851F86A50500DBAA7383019C9C5A52DD7714
9AAD3B92385F884BC057977EAE8DE2329888B245330B9FDE301CA4F09C06465F
677A7DE41712E376694BC097360D2F635CED53145AF9569605B959092FD976F1
6B0147DD63F13EC750B93DD35E5C6A9DB94D4375EBA0C642B73879566D7A6537
AFD9A31635724B8FB58AB20762432F428EA1E4DEC18461DE313663CDC969426C
35EDCA2658924918E721E9AFE04EEA210AA7D0FB3A2DCB38F224BEE6F0639373
D4D69396E90C076E0B812171CE37B1BE7BE7818E1A910AF8609AF49EB2650673
6C25FB6E3E86868E833FAFDACD2A97765E395D6F1E252CA311A16A1509B3E84A
ABF4AA15DA4158D971E0D4DF3FAB415B03092A98F7C07B5FBC45499644BEFADD
2EAA13C18685F4E4EF3D3D43C92AB9B42D2870C339ABC6CBA3C27ABA38C5D135
DEF3B16CA1E75A3B9573D7067DD390CAB3F9DA7C2E67833325DC57D39B1DCD44
8DFF73C0E89281077F529884A9A256B78DF1F8E0871A5EC1FFE2A5DE7BFCB468
9D6C5E48620EA68CA19C5D18901C3032ABC42B8B3A301F8DD314512CF904F479
EDFF66D5904D0068E43933C6C46FDD05B2B984496E8E53BC6A96AD60C6CC21DC
BE657CB2AE8839DEE243E7946A368665FC6EB84262B41815C1908B78C0589C8D
D34759D4EA392F2B94AC20259BE1298500550B6C74547FDA814DC31722DEF159
650C13BDCA71E908182BAD4FF83443668EDAD752CE0C4E244300F1A897D9DF45
8DB4FB909C1036B8FA7AA98626732F69F024E0D96E7F40B19AA55E339C15DA8E
D7053F237207D0639C2877254C59814E884E08E667EA3FA9EACE080454761E73
F70ACBE3700699F6802088D73E73C485EAE9E64B58BC4D6A8E881DBA71E00191
F3AA92053588E73C9084746CE792C0AF8CE34B24825AC8976AC3BD12460520BD
EDCF4F2A8DB299E94992967FCF870128AA9A2E7747A42299CBED9D3E8817A6DF
4CB839643999FB2B8C3CDA64C1B25CB64CAD99361B8EDDFC68FC83EDC5CA82EE
0BDF48E4D33BC139CC43DCD04B2B2642ACACCB99E7A44724D6C804BBCC0CB2B5
381AE4D122E243BC29D3A8F1681D5EB106A4DA37F650BB761CA7FC7BF5B47B62
F2C8E2347F0ADEE421B64B5ADB4BE6D80F1C582BCD18B92A79C2ED805EF83D9D
C9ED83166117B9552A061433BA10F87C39AE2ACC945C1BC8BF24762F9F2C7D83
7A367489D75E0F6AC4F59F8C867E36F488FDE8DE50660156F26FD013BA3C90A5
76EC94F0FE765090E78C13CE984BCB2C5245F44E9149400DC6AAAAB3E320680D
1C934A07436D45E591722FF154BD143ED9F074CC8D244530D1BCDBF77A708DF5
A42907A3EBBF807D03AEC70B39F47B55F91870C5978E21658520E8BD3A2CF6D9
030A32493F390BE775B4B6B6122F774286BC20D7C6A5C9EAA6B197B7F7C0E9F8
A4A4BFDFE26BADE0C342DCBC9FCDADB64B565A50FBC8583D3A6E55993CB3DAF7
3AAB1E30B48DC16472BFE4D7960659526B3CBDB3EB4DE3EAA8D84438B38CBC70
2898F3B043E97C5BA639E38C5DE3C94946AF6CA31BE291A4333A6C1B7AE6924E
123FEC09B9624040126C54157B4A255CBD2314518E3A40709449851B79B82CCB
A2E6811922CF7EC6F6A9C1D2EC2F23E8F1E2F85B6F886139459554FF0609E2DD
419BAAAAB1EDB9BBBDB1A6387F40260C6D3A72EC49D9706585996317BCD845F3
09F0CD17B82EBD7EFE1150C45437689A276C5F31B537A70FE42C1F35B4879280
A06841FDFFD2056300331E5BDC2DCF285883247A5ED6376FEBF879CC3A8228BE
2AB9ED6EB579CB54FDE0116A68889D37B0DE18F3EFC83B0ECE49CC63BFE00BBF
7E1088318F4D429CCC6212B6D6C43EB151D35FB8D4898DDF7C07465D45237817
FB7185D719298F94D9E547ACD938095CB2BDB9247EBD57DD2E86D04744E760AE
25BFC68141C64C7D23C5A9BF99791B71B9A2FDF3C0884F4AFE3CED51DDF04FB3
EC9D8DCB4944A7791E40BF0FEBE2E1D80BA85569F4239EC337C013592FFEA905
10E429746B2106108FDBF48C407C82D66D5D87886520F1538A9CFCCD7083F6A6
D1F86588814E0707291AD77BBFC281C7B65A0CF008864BEDA5F11718C43ED544
C767142BE54C640E2040BEC5D7367E8FF22FA9D839BC807001BF73528ECB7FA3
3CB2207F127206FED87645803D9BAC5E8ECA8E8BC452586F8EC22168DEE55BF8
E7CB5AEC4085B3E25C46138E3E8A98552752ABD6B4F8544E80067B5970565681
A0F39BBEF5E3DFD3B79C052C6436586A9683FDA79DEC1491ED109517E3881FCD
FED3B5010F685C24DBE34E0CB63372E16907D843A794F445D5579517A64CB508
B01B2C2DE005E05B4D01E46357F5A405B441DD492DBF7A959933932518F26DDC
62AC159B40C6B8E840146676138308A8D67683278C19FAFC7ABD1B9EF85DD21B
40AE84A583BBF306AE3AC4BDE1985CF1E8EB58F037F2BED81C8CAEAE51FBD20F
9251DDF379A40883A1C82CB8FAE99A3E18C471CF9A7C4BF127ED1B417842057F
7647123712ADF67936F19A01FC648D69E2817422FE5890D13ACA1B7A22CE84AC
FAD664800CF12AABFD3A891075C60B8602091298B42A5DE5C8BAFBCAD0B04762
2F7D22A591AD4FDCE0B3B70C10AEA586511955989F55FC26961E6D1E2CA8CBD0
278CECD6F7719B835F12E8AE27C7EA54BD83F367F5C20614FEAAB3BCF416B273
4EA6F437442CCE904A40144981A55CA8EF59453CA378EB5161CFC1994A742BB7
5E1CA866BA9EB123C3D4BBB76713A9A6B93611A233CAAA321E426D98E481C29F
589E51833C6278451EBF621B7F981B96164BCBE69C47B2D5D7EC4141E62F61FA
EF6669278B430A9AEEA910F8FEFD454178D63C9BEC694A79CFC94E413947986E
E03A7A290A4FA3515539F8C14A5DEABE164D28BF5500AE9A6DD84AC56F87B024
CF83FC1299F514A6A879E5B7FB45CD52F6390F888B5CBA28BA3A14CED46C1062
8BC5E05BD9A1117720211165EDA80F48267E8D1E5775E09772041B5F052DE32C
8FFBEB70CD8DBF01E9CBA4DAFD2AF4E44EF05E8DF2EDFC1B920FB83BCB147526
1CEBF3B3D75AF9BDCDFF081CED6541D9DC32246E24945D724DC1F6F8C1113FCE
29999903098B4F84DEC6C4F882DCC5BE44F6A9A077A84CCD2A6A2E0D290A571A
16A61CEBF9D64CCA429D7D6604B3EE3FBE01A3C1BE841F4AFAF63DBC7E26A67B
8C8C6549D6FEB8E45CF8904341B7C279B9B8E4E683B7076BF925998A123A1440
2A8071214BC24699040624EEC902F55BA0BE2B2C99962A765AFC51D29575351E
8BD44A480E95112DA49F8BD405967FC8C12352F766498A847560582CEF4DE75D
BA4F8C1F4B42D1BC32D6CDAC8B596DC7C5A8BDAF7B74412EF2DAC7721A9F6352
83AA212C6522B0F4F25D51FE4B2FB032ECA88CAC112C115FC19C5765C1115CB0
9262BA4C55F760AAF4A11F12EAA146470A4DB6C79CE56E80098738A6D9F892E6
0A91B30F1801A86D537B7B5D061029E62F08E93EEBC0B56BC1BBAEDBD78F0614
FD4825A43276D223BD493CF558FDC6207B36A39648E68E6B17251767892A542C
B39DEC514D12CB8CF895DDABB829256AA29C5AF02B96348959944D6C97BE5BAA
5F3620B514A6BD5A310476D9D3BF80F361CD531A7972FE0CAFF59FEA45D517DC
0E46FDE22860CE37F8A9C13EBA2C093A40DD4F86EE760AA43A500194EA5AAA9D
D0549F2D3071CEBAD7EB9D2112CC910586DC022342D0B8858AAFEAAD82C6DC36
F2D6F78A8F1B0C360239C586ED511BB5301C074B27F94651521976CCE9E1CA83
3903752BC8195047DFA846259325A9629E5630B3200D16A259789E184BC91FC0
F2ACBB673A7F0420EB58A04DD4EDD1E8070E442A59C383D9E7689820319242E1
1B92456B6AC03C89B8EFF42E7E7870D48F1A733F95CE3E604F65630EE016AE88
3D39859EE3B869B53D8DBE0A9093EF247D53A7B7EC5D35334681F357056EDCC4
62BE002A49367F2CA351942363493891220B00713C38D31CD9A974D2F08F3F22
410D4BD87B79E20D6AC667832EA25E410DC594EA91B0BFF912BF6268DC7F4625
2337E04D29D90F1A8EB0AD7FD00B9C3D242A73072DAF4844A53EE698C367AC52
B8274F9B95A48FC52988F9D5F3243507C1BF3863385FEDA1BC97CEDA7B9B6521
D9BCF64CA2B88CC697601F1B5898DF5D07BF064012207B5EF5C349637FF0618F
B97FE94990E42CA0D75CE9670E8C467B49ED55A329B95A14D79012E46746EE42
AE646F3B99CD57E7996737D502D1064BEBF1F1AA1DD726162E32EF1B48AF03C1
17D6C86B4D1457ADA3759EDDBA0E78EEF0324976CF8D31D0DC68C4DC69DF5888
BA6C6E7B37218596825F013ADA779158999F8C8FEF9B828C3074E412CDBC4F55
8B3B18ECBCBAA9DCC0A2FF8ABC86D2D84EC138986A37D4767FC1DA395A775220
8D27042583CD3A6885A07E2D8CD14603A53B1A21B27C331AE63957A559A66D69
CA94CD5BCAB722ED44DA9412FAF5F6F112CD6F5D8B50FE80025787D9E324822E
541D485498271A1F082F0D35F3D9492839298DE8B922CCDCD2D3ED1574A0DA23
0FCA83FB62BA4617639929A43234876B7E50D658AE61B0FD15F6F4B789252BA6
47CA59784F1C6E225AE4CBAB87C871CD72BF1CB830A39956FEC9FFA4908028A3
2069B43A35672917070C98F4AD43A62DE79301A035205237C1E0E9F8CBB9BC7A
F57013EBF816EF9DDCC0C9DA49508195925FBEC09A4A7964672E7524BB503DDF
FC734B8BA116B1BE25BAF5290A8819DD2AB2FA94BFA0D9463B2FCEFE2F9CC2C3
362B2A738070B39ECD6AB0FD299E6B64BFE25054904BBCE3015D70532836A6B0
ECDE5F04DF46AE1399A2F4B506EA029C0F0BCBF366C1928DE388A8DEC79C4E21
31845F4A75F706C0BD4BB929A2600BAFA08BCD6734A73C59DA145A66797A2404
7626CCD5E8B287B1F6D5629E3B3BFF320F91403BCA38FC73BBA882D94B30284F
694A2DF5BC3C7762842DA0D072C4EAA4EA2EAF4F29B4EB59E473789552FD9A29
637029E849322884CDB3F50EE84F33BDA5CF8D940445A6E8605AAD0A46C5406A
04C4FDD7133997266921F3EE980161841337090D127DF03F34AF77B9BF60010A
129C9760B71E55F8A1C09C55A01A154969EA3A7641C8F73EC48003DA57758E6C
F81FA2808A49BC10AC66818EC2321AA8CB39A49E44F891BA9A06153FD4649095
ECA8ACD3E692977B94105AFE083FC090E610E3DC57AEB7C5944FDCA7756BFB7D
34877C72D38ED5015000220D81686D3287AB89BBA64B007DC25CB4A6D6A75862
28D3FEA9E6B95D54B2ED1AB3568111C84CBBEFD45CC0DE8E86A2CAC84AC066F9
B619BEB0BC881BF51D2E3E63B9AC95010FEE166D815B3D4A9832A7891E56C2F7
34F459081D07B2FF7DD537A724B9B29D37725D94CDF7FB8C0CF83409F29D7DC1
7345E7B5A66C2D41FB242E2F37E7FB1433298EBF6283914C908AC2BA6F124608
7D67B247A38EAEE3FA5C80AB78E9E234F0FDFF082F3CF3CEFD4A638022F3675A
BDEBF1FB7E1182CBDDB02BE26F81935268E9F7FB5B445ECC31DDAC5D7615D3F0
F7A67FDA2DC741C2B0BEA47086C9F3384FB5B6B5DB4407DF6C0B639025EB7DE7
9EB85A13AF12B8D1F85932FFC87C70052CA0E2D0A916333232F0C570A048E318
C2E59CD67E649E451EDB62DD4D5763B22581D43DF50DA72D6374B96F06D4B5FB
A2BF3EF609F8C9A74E37E65C38E398B1768AD59F5DC67C91E9C4DF618C201F71
E1302D238E99D3C511EE52F9FAE664F984AF22CEF9F3ADF13D36FB1218C6D384
296E7AFDFC0BB6ACFA0AF5B3572328192E82797681A10DE036501EF80BA166CB
244D312D042F32F12D8A849AEEBC1E4B6026851E1C2B9F4081BCCF5445B6660B
8E66A47214D3E39C68DE0FA26B6D5656716967A9A3646B6E2916647985199AC3
9727B581E8B1B313D36F5A237030965A4129743DAEE19509A557118212026937
45646A77F6E2CD6E2EEE0832F056DE348FE0888AD47ED0FF91E6B7E43958B440
8217FF563C28AF954F2669EF3CC630C4F4BF782F3EBE4BE174A2D14C5EB57CC9
9776628BB77A213D36D96696E6BA5FEAB8455F36BDAE26EA2B5F341A309A8166
095A826D8E788CB44B7688F4CD2D86278D130B9250CA25F25B60BC1E5E6A4449
F718DC6F4316EC61E863C2D69810ECC143B134929B21BFD5CD718EA28658661F
1823E20BB65653CE5678B8A44E66A6D75DE1EA612D492F52CB1DB757CD8504C0
04899BC85E53BE683FF8BE68EB1458CB45E71339BE3C569C01675E13627E8E1B
498D6EFB5EABDCAAB2B6A4298FBBE7C4F33887B1B17E9243E386B4F51257C584
6800EB53B7D324A6B06E3ADFCFA315C1DD509730DA5CB68CD4DAFCFF51F401DB
9E8CE303B3707D635AAC3BB630F8CDF2AE8F9868DBA9CEEF483F2BF9FD2582A2
4902F90A1C5B92E30F507E2B34E760D2E2D6C500B2CA6FC6F8A1F70C69641295
0C4AE3E39F585AC52727C62480C7F8538C7E5793809D4DAA2375ADC2B523C5FD
6C0A20CAF26FC974CBFAA310F7094B4EA5DB158C17C1D116DE562D42CCA8AE85
553F65D6EE166EB08A30F1D86AAA7FCD86F37FE98B1FD86D42DCBA22D5AE708E
D3D2D120C0A30820752AAB84018FC498F67A493019E0BB9301B04B403A370B02
4D1061B0451D3B5A6E4C8AE111E07A6C5802255F0C716FC7BEA55EDBEE20AEBA
6FD7250847E18AAAF41E0B7008C01C7721A7AD6F739AE1A79D1105D3DFEC7711
A5CF05D7BFC28AA27FFD1EDFEFB706CAF476463B3776424B1F7F8E0A9C9E71AF
A7C08C94636D74BFFE5CEA7AAF219DBE41DFFC3188983B9263A8AE1ED2B07F99
5482A6C02577535863D2E9632EA2729ADBD4D5B6F26E300EB093E20CC341AEF4
134AB90BEB7E6EE96BE51B2B369F57F26E05260626504CC5D124137EC8EFFE68
4EB3BDD8E5612B35B4AB36D1C5D351D4EB505289DB20F3CF5DE9ADA6E248CA0F
ED03ED6DAE1F87D72F2A12E709DDE5DD5BE463C6D37293E7757D310887AEF858
C77B640E0AED544F8AAABC3DB13A53E1733935BDAE204F4D5DA0B78A5E1F095D
0142F8A7B733E2810B35078BAD71CB81C38FA4AA55FD5ADFB75DCB8028074C0B
9908387ACED66DB0E276A3DF185C9767DE2EF1416C06A18473F364EA8EA95379
504522446EFA99061121BB82284A19A86A25BF9EE137EFBC6860A3A0E742793D
3354890CE8E27287D376E0741FD56F9E1D267FB1BF4529EA7C741C07CBA7CB10
E579C1FF0C6C79998E878C1D77005D3CAD64BB44D2A569B6263C047FA4C5E6FD
A8F5DE9C7789813726B4B4CDFF1BB42E3D170639C25DCB87A51394B4BF980C18
CBE6FBE545B60E648C9CC123C76CF0747DF0608DB71A896203D46746511FE16E
6A9992318489A53521D0C39E13B161CE7CF1CDC0B4F496298C87CB2236BE32BA
37D7A7BBF573AD8A58111F53990F8D894AF5DF8D3DA1CBAE0D5FCC1D3DE945A2
D1B66BF07B6D07CADB63646479E790B667C063FDAB3FAEBBAE91352357AAA4EA
71AF012052ECBE5012A889A8E87CFFDFE91B144948EA0692F389B40880F52072
6EBBD95DD71439F0B20E6539AB27F19FDDC2EE9C2FBF2F343E4B3BBB55326878
EF4551B426DCEDFA238AD4D9F217EF242C801466F7CC109F44189719ABE37170
DC219172DC422EB3ACD828F381437D1E521B2CC5C208C4E1806671912B198DC4
2B6BD090C443420EDB377A04E95AE613DBF39608CB0EB1FCD9FFC310AC33B46A
101C44AFBB5AD7E393CDBF13C02894EB1999E25390EF0834FFD74395ADC9DE47
55C2962AE9B64B227777A76CE7223E56F70AAB580474EC1480A80F4488F1EDD4
E88E48F963563D00E650C8FAD93F0B322467863982DA3FC340C0665EAB586975
70604B7D14C85A3F9D4A9E35CC1B064C93B63B52E73F18EAAA30CEA0F5BA0588
934BB8402DA346C060C2CD5D1F9CF86F531C519BE17CAAAC99E70122E5D7FD42
9D18B92C82894112786DB1C19EF81411EF852B9F6C2957705A18
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 0 /.notdef put
readonly def
/FontBBox{-163 -250 1146 969}readonly def
/UniqueID 5000828 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9E3948FFB0B4E70F212EC976D65099D84E0D37A7A771C3101D6AD26A0513378F
21EC3643079EECE0C9AB54B4772E5DCA82D0D4ACC7F42FB493AA04A3BF4A1BD6
06ECE186315DBE9CFDCB1A0303E8D3E83027CD3AFA8F0BD466A8E8CA0E7164CF
55B332FAD43482748DD4A1CB3F40CB1F5E67192B8216A0D8FE30F9F05BF016F5
B5CC130A4B0796EE065495422FBA55BEE9BFD99D04464D987AC4D237C208FA86
0B112E55CE7B3782A34BC22E3DE31755D9AFF19E490C8E43B85E17ECE87FA8B9
1485831624D24F37C39BF9972D74E6EC4784727AC00B9C4A3AD3DA1C22BD6961
7E0ADAF55422F22ACA5E4DCD4DF9FCD187A566B7FB661D0530454D0DD6C6C50A
7A3875C6CBF8EC7769F32A1F3F7FC1C072BADEC97794D4E90E0035282A170402
356E5A9CD9ABD80AC4342A5283E458A7269252F4541CBB6452B39ED54D336D0B
19928E9CD1AB26AD83EB209E2EC75011A2643813053B5DBB0246097C4821B5F2
C92554E9140BE35B2DBFCD98809A8EC9FC910FDE9E0D86457C70ACB056EBF90F
244DC0A5BBD455E15D6E3180311D52CF50B0BF7D0A7F64F3A1821E0AEDBC2E7B
AEB549FE1D51088C153799C6E089B5D5D65E1C4E2D2B430CDF1FFA23CCB25D95
5C4DD885310A706B320AB25C8D742C6F29953254FA54DAAEE60ED477877D19BC
D28E9AB576B0EA088171FD000B60D73B3C57F754BC07EBC9BF751B7D2B32459D
993861B7C4B0D98C422A11BECEF76F4EFC0ECAEE89723E6CED53E3678D733363
2DF068AEF0FE7DFB57393BDAA439A6A4C396F86032A98009EAE1247B7DE83B3B
E46DF2898598FF5E6CA6953127432A967E4FD41CDD60D6E413059A58FA556EF3
309178B57C16A763CFC9BEEC276944BDEA255789EF4E1ECDE1EA43EEDB955513
F42EDDCF39AE522A1DC2DC523F046EEC4CCAE25792B702C288732F5B13B5CCE7
E8B6A1A1DB86B1EA38883E481BEAB54023EDD9BB94E7780DEEA577ADAA169E66
AB7D8607B409619E79F242CF52E618AC0DAE43317C507CDB27EA8A1472D4E8D9
17E62C98DFB049C78AD15560CE44A39581BD6B555165091C5D41071212A9D2E3
05965AA02B8A67AEB04D915DADC1B84A531A1D672AAA06E9F720BA88419A3183
63D1F9A3BEF8CB2E23CD1F9C003BD7849F093D3B4C83C153A5A790C1F9E37948
5799C02F004C61A6FFDEAA1F9AE884DDD40DEB1539CFE3C3BE03C7C33CB54D56
2C2A0F467049797B56D407AA43EE6B8C3F978A7D945A80BF711C12D6BFFA3DED
35FA8B22E68BBE4FEC59E4C56D3C57E14995A8ADFA51CC6C3A84D3D775CAFA87
A1A0F45C0283139FB485B8FB0BEF5232494C0CB564F966DFE0D0566031392619
3FE8F0BB6747BDA591DFB26132947872D3B209FFD838A17EB1D5047FF880E7CA
28BA81889AB0DEC353C3435B95D95C2F085D4137A62F570CDEB16C44DBB361AE
83DE118ADA0DA5161C826F65DC8323D7D8C9CC860FDA7ED795EAA20B1CC97FA8
AF8EA786924702E9D7923D38C729D4CF51F3FA68583E9CEFE4C7E2C46F7E343A
78D6B6DFF1CE99695B525932A36FCAE65CBF8CA33F19B5FCC65501732575ADB7
75275A8B076C41B49F6B9DD98CCEE4248EA55F396FF5FD3F2C535A291657FFAF
9F8670C5806792CAB5FA50A235A9D2E5357D8D8A0E05A75A790249CF09AD48B6
05FA7E9A8751BF2EF4D2AA0222D20E405D2471F19DE6D58FAEF624A437902362
5D81178CD62290E4B519BB1C5003AD7D7FE7A42A48F04D640C744AD138C159C5
0F88C3FB95A0E541777EA35C392F09182FD45847263DCE59588AC86D95FBB79D
BCDABA5CE37C217572D6E450C20DC0E84E25EDE104ED8B8E840530134214F0BF
BBB2EFE76225C286D3FF468E55477CB868CA563C7D28C94733A75DB8947B510A
3F4699FCE22CBFF8C01FC6286CB0F64415BD65CCE6A80B84CA751BCEBF315BCB
A3675338D53AAC627C2DAB1F230D056CCF017CFC0DD87A3A47CFC0C126D408B7
4DD99F2DF57DB3330681F0F9E215366B38CF48284DECEA833DAAC926EBE5A535
86F0EFA4474CB1AC1DEE03AEA22D5AE1484355BCD2E6B5A715F1BE34FFDC7E25
5011233239AEE2C49A61AEE7B63068F3FCCE4D8C498E120BA9B13DF0A067285E
49887B2653BE88CF91C6239FEC6192E9DB3A0EF33095056CB4D28588028D61EF
16D171D79CC6A01C4C8983D992C72179D08666AA484F8842335B3F348373B5D3
4284A7168B38B18DBED86BB8E87569A61337D79303F889DE30E1E3EB8A9F59E7
A5FBE8AD4FA13CAE431276AA758B55DAFB8087E3B4B5BDA6F4E491E32010F7DA
1622BAA5796897149FD7A0078B9736039D38E61B3F45DFB9A59791207157B4E1
A9B7A6ED061DD169A3DBE6AEBB360102A01A4A9A939D5B1B4D88354435384C01
D90646D9FA33F52A6F51AE7BC3C20FD35400B7EB9E0DEF902DCD5C683A812E0C
317BCE806452BAF0B635924B29155908F9E398DC842325E7A805CFBBECC780E8
858C4E651DB3F21D7C2A7B0A136320959B4CE6648C443AD58D8940E892160AE4
EAC7A410773E0447C1AD979935B5FCBD2AD2A4700E60F5C7B2DC3B6F952307A2
284241E23617650AC6F7D4699032B7AE2A33429A74EEB3147CA630BBCF023F57
0760E9EAE801D873707FABFB28F845993C74AFC7DDDA61616273420E40D441F0
87E195147C084FD24F5ABC665BC8404927DE8C7FC1AD3905336D6B5C270AF89B
E30DC11A608A6CCE6BCBE3965B99462E74F4104B025134F94F9CAF6355CF48EE
36A0E6E93B01C8A47B6E25801AC20A70055EA99BE72E82781EE7762CECAB33F4
5D2D49CF6A3762310C0926D9EB6D02EFCAE6AE0F19C90F9EADEE2147665594A1
61D1F4BFB9F9F026638A63392DF68995369084E8878D0DDECFB9014051A63949
10A7E2EF46B2E13A6156C7EBC5953AF095AC1DD4D0046E4C5BD5AD4AB5551DFD
FC79F4B1CB623F49131D78C0EBFABA072734D63AD9060418DA63E769B555D7C5
503DE5766C2E8E58F18972DA3A971E059D617B6C87BE20C0D7F35C6DB48A87B9
479E2DC34D28F52E7581E1500ACE5D297FAD917497329D2C861DE6CCDE674AC6
709F1560B9A3815A137C94B3656A9530C94A8E93F785D1F3D3C6D6B572249C54
8096B03616551E37F33EEEBB6E8F51487798BB139BF82DFD0B920F30FF3CEA03
9337A75AE908C570BC7DD9BA08C06A580DC513383EE610E916988B2CE823374F
24394F119F5CE5B07E764FCBF963378288A5250EDDC7D91DF02F7D5B46F45217
F7B52D7F80F82E0C909BDA40B366D02E85D35F2C3165B5D13BFDA6C394093EB9
22AC1D7417C2D8AF50B8EF4C4331FC7C1966BE7F1F9F50847A52CCA3607BE7BF
6508E15283A54B1532BFC2F35597A006CE5427FF7C114B80BD33B58FE42C811D
6706A12A615F4B7BC1CB26E1D686ECB4FF2A962F76D5E946EA5C934650BF0816
988D09E7B49917BC4B33F68982A6D6A0C91A86CF1ADF26EC250FA56FB73813B1
79475C929EE854F49CB11190E94A9173E7C78A65ECAD54643127F8D64F84FAEA
A6E31E14C146A3A3C6DC59D0C29C4C7916E6D2B60B17650AA80EEE170ACE051B
7AD90FED27278C197B82954E63C566AB102CBDF0FA581117782F3A6ADF241ADE
7826CFEEF17961FF5C4EE4BD84C45047A300648F4EC19FDA8212292DBC54B027
901EDC9AAB0D6F5274A1A20CAF591A4B2598409676C9DD3522515458F226C946
7C05F4D88915BD2C149A025027281C92C6EBA700B57EAE12702BFA3D03F5D079
A58999697C16E18F99865FF93ABDA0EA4D01AD8C14BFE3944704AB250D9E7D58
B4E2811DA6C1C1AD351EA15A23AC406F2395F1FD1301F23AEA6CE23A8EC34BB6
032AB1C4B6F3E748FE852BE0C044E07852579E6D0A84B72CDD725ADA718AC14C
DE1FF077D87D37D7282166BE35BE1D6AC4D0C40A0C11852F3F9001BC78E2BC78
35D0B4CBE6965C515002320BDA2721D4968C1835406680A72A0B02B6D83329BD
DB81D24FFA508AA58C8A509C18D9854CB4645A7C05460297B32A2FF9AD1D2F57
4828A85DDD879B7596564425611A023FEBA4859F1080B4F4AACF4565A152697A
FFE891139F18DB6691D2C9CC4B10DF957FCCED4CDE00DB326382676C38F25E8E
759955441A70DE8F722915822357183302742447D892C56CDD3E74D007BCB5B2
27B25D0507053F4EDB0BC66289C83A47B4633FCAB7E626AD5AAD6D24BB252F52
176F6F32826442D59D2195B2A7F5DD540599229A6CC6371D4D94422E31A64047
029DA906D2BDB4B267851488C22347845B0BB402C8A97E7E5E133D8917236A1C
30806D41551582E7C728AC0FB480C255EC810266DE7B46E52A6423579CBFC06E
C8E2FF9FF00EF9FCC51FBB22DE4428E280CE1FD5241CCBF81070486A0DB9536F
B6BF451F7C706EE44D37A0D78793D24CE9049BF285C1DC9AEB61BEED88C4CDF5
D3BFFED602B26D4B3788E171579289859313C918CBF70EF8F655CD4FB73C514A
A34BCFB555B6BD835FA0B80997608E9F938257050F1673AE03E6B4C6F96045AA
A8FE116B8A9C0295D34802D22528B80EDCA6AC2C5CFCD57E12F12ECA8C0BDD0E
EF7F3B6F4EC14C3A9C68ADB70B6454CDDDCD3181DDA00BB3A9DDE3C64F162D0A
9250AAB836AF3F3C71589E1DE6B542E9D82B1266E23046AF5A57A7FD5A3EBA92
B137FA2161E97A54B5C472BD23CF56F3936DAF5C468AB88A6B587226829516C7
71BCD7CF1D3DD40CEC1A6F7895DC95C9C9BF1A571878036428A9A42E9B363EE8
64FE7D1473CF558A246F0921C3257F0EDC4EC2C1FE4E342011AA9CFA4472204C
CA1DF74F5BF01A3D0F518FBD76194711589E02F3F5290599E0F066F617B8F0DF
6C9196A71F091B8D7A8FA8A72E907EFD9821E1A023FA4583B1BFE762A07CB409
FE74B4CE4A642AE77B5FFAE5FD7D65A1C03EF6FB31264EE51BCA46A8927907F3
AD83EC5B5337F738F44E204BB64FE063A8C7738F217BA319F23FDC8A65610014
D99A05449EC21CECBEB27602F66708B1207810BB167AD4D4FA4AF54767A35B1F
B17454FD0D82F04386A595397E2246ED339259A4B70854BAF3F41500CD1FA69F
799BEB5C6FF670D4E0623B2385D545E2F46436FDFEE4F37DE68308BC86551E26
0DAA88D7A8E54B4E5FAA94B88E322EC04542C3F8C9AD3DB9954CC32DDA1A7002
8793B4532A5D6D31DA33470BB6D812891A52EAF966AA1629461C25930BFC4C8B
6B03832F4AEEA5D0B27EDA93F980E91B5493B9618F143A4CBD26B4CD8F0C3D16
5B2F27AE628D9AAFD99F4A1677557D68AA42A8832A7D44092AF20DC586290685
48BC89B6DC4734F8E13F714A54742DFDDC2C85EC30E53E39206594DB51BDCD17
5A68BD85E351CF51E86163748D3AD70555FF1D5F7B0E556E54744181F7C48BA1
C2C56129EBAADE51F7764AB181B6FBA1828107F61E8047A5CE36B58F5D6C2C17
61990478D0D44C23B1BE2BE6CCE369DDD14AC25BBAFEB3E33D5D50285E947EED
3A23B5A8698CF9F42F75A514D7B3B0EE048B2F2A4084912CA66A14D1977AC21F
7B2A332F41CB33D48E09F8F0AE912170F6019D655DE6827277CC043E001E37E0
88C7898F6ED2FDB215E4D4EF79787DB95777151B1951A2CAE8A9528D7E2BD15E
37F3BD6449856E5150075B92F10F9615F66FDDE2111A4B7BB546DAB5536B9437
2290D2405C5152996CB1D4B217FB16D6628A0FAA3DAE60943C98F4890D18E18D
3E2740F42CE9151E388827AAFDAD7CE9F12C54A932837464336B5575F0E2FA55
15DE03FD73C73060E4AB72F7BB3B2FC23D1691FD104F0330193915910A3FA534
B4EBE0B42222AF6F1F8E2657D3CE8AB1E8CEB40686CD6953C233E52C3D1534E9
A7B5EC22ED0CE565CF1B414FF50B6E3D6CFC342DE97F723B674E63CF67D8AE5D
C786A0F6BDE30587A1CCB7BB049B73559AD44CC0BF2CB3934ADF7401E5A8F327
9D701A04B88CF62B6B57FEEB8A36ADC12DCF241AA96C019969BD00317C36D0CA
2642B811E7611680AC3B4DC34B1E98426D7F85043A042B74D8711F587EF31CFE
3AC4F7FD9CC6CCCBA3522AE22809395B0B3BB1B4AB9CC1A5D1EB982E9F8C3F97
2BF975141C39AC80AB0904EAC1BE6A2C7F97A9AF3B32ED276373AE4D9FED44FF
4F1A91ACD26F957F9E50E1D4940263BEA65E273B926AA3E7DF828A43F54D9A49
7AA151A70ED55B8B5717527339C2A468608C1A5D665D0541F53B5386BF6CDE9C
E07FE982E83975D173824F2CE58A357A1EF179483CACF1C2E95563C2E60345CC
21556A26D49F40B84A4B4F00EBE05FE36CB920F65FDACB38AE6EA7734BF35029
9865BF659669E1C829199BD232A128E494B1D6FBEE9D92681BD7C0E430C6F958
2054B0587017126033B6696ACF3ECF85A90B3894AF9FC37D65A6A8853DBBB25B
1E016D3BC01EFC65C13E487DA69A7399F57D02FA6FC3EE6FFA7EEB7186D1AB77
493EB4A36D0FD86592DCB7F28617E4EAD22AB1601138628F521962C978CE0D8A
384573776F31625C13F19D35CC396DFC57DC36173DEB95F8A86C3870DB90C065
70481E6DC8F7980CD49C6A2CFDA7EC07CA76FF8DA24E7B8A6364F2B734E1E645
1829B8652B838E7C55FF037DD51C13B2A6867000D3E8C6652DAA087170804F66
3F9E437FDEBA6989464E9C03528EFA9D82D5C67B80A06892B23F6DBC7FB79988
FE00769CB542ECCDC42FA28F34EBDE4C37152A6C6419033854C7351FFD8DFC69
361909D977C3E8CE7E1AFD26FE2B8A7FE5F43058233310A63B0E11F28C516A4C
7B82A552BB84C0294DE50E6969628C96A9506B1EA590E02D199A6174C0CDDC50
B7E822C9312F3534030FD1838B843375F0B30DBD4AFBAA0D0E3A49495971AF2C
E98061E422984F585528EDC16DAA7ED05B4353424554AD2D6345D6767AC69675
2151A3A2B5C28561DBFEE99CE0C957E8BF045D790BA25949E2B9CE6F63BE452D
7786129389D5314E1A0D6EFE59139FA6583DFAD8C130C8BC8C5D4B9D77E778CF
175CFCA392C7D49331486E34C4A934969F61D00E32750170C7B70CF72983E39B
79C07A23D10937CCCEC01186C028E704BBE47ADD015EFEC387B6419F6E1CEAC5
56E182CC28172FD62A1CD65CF7CB008C637CEE19FD4EFFC27E6BE2ABCC70C5B1
C98E9E4975B21FFF757DBEF194AA8266B0D62FFADC903D525766B90D94F3ACD3
A7FC9C32DE3F22F4501B952AFA043A333C7D4F5EEFC8B8733EC891B1A8737D06
867EB30136155DD70E9843E5E240BE2A27B2A5FE49E681CE09FDF95580D6EAE3
005674C7DDB1F9CCD71599383B145B25B0E2F8D97A257CEC5CB815B87E866C4E
C5742D0259F6ABE53CEB7F99038C604C3F975E43D8549C79C26BE9D90F3B7E8C
D4BDF13BDA5FC962ABDD444491851D4C4DFAB33BA07ACFE9BD0FFBAAFE053379
E2524F7C96C62E2F32A9FF6ACCE2377ED03DEA4C75F4872E9BB2971DCE61F2D6
5E40EB4A94B72A99D95D10B1EA7380DE2D290F06E6A63F50F1C942AB62371FBA
E81128E0B72132BC5967C2AC5863B8E849A57A4A9D21635DA15150B3A5F68E6E
A64170777942B04EB0B06033F5C37CA43F00D2C513D6572370E16B8E381652B1
D4F4270B1ABA10CD543C1CA4F8B86E4A8A41B75733223D9F7632019B86EF650A
FC8290993AF5B2AB365A600B766738BEBF9E9653FF5FAA418D73D84C60056D98
06D94BF718A217725D0EB7E2983DF02FE8D17FB2D3F269A0322839D5B0252A07
EB950B64535EAD9AD6DF3A623855983B92803E98A5B15AD12BC1A74A439B9C1D
9374691E7A77F4967AFA1B84034673A932B0DC5C8401347F5126E2C91F775310
84CC81A0DCE7F2F5B6C94FB0154BB6FF0B4AF290AC3E47AD945E5D5F2E1E094F
1FA125199DE39E768166F35BEAFD4F013E46E91BD2F3A43B1313AAE36DACF9B7
3D930CD6196960C6CCF6AC5898F4A74F00C641BB654C72C8F6F4019487892314
5D7BEA38D16CB807395999F745E89C2C0AF226CB5B4A37A01228457DC91FF7BA
768300416FA88230832FC3E5DF27756173824D8C4B438974947DCDB17FE523A6
E26822458D3861C4E3D94679FC72A3E54C11E4FCA8FAE335DEA7D9F09F3EB320
1DC5E1B69CDAEDF6D01999C3B48F27428FE44CD0EBD9BD2F21D7FFB99EECA344
83DDCA627C2B934935DB8C6EA42C40194F84581FEDD784F1305B49917EE2D745
CD43006AAB08048202F11D0461B6B6917E54717A8FCC254A7FCB525167519DBC
B3A261DA71CA704743F06FBD3BFCFF50FDD815E1C31D3A07BEA05D8FEAA4371F
968D5593D20D351DEF6829F95A89B836D6F67F43C5A969A5495F8142B3527AA3
A8B0B484A7082985804922DC8704C9863C30A798854725D31716115801E440FF
37E1C000A901CCA9316C327F4C5CD651E24629A9D6DB57FF174619AB1BFADE6B
03F189C1121F12731A0BFEB2706E2E49802AECEB2C869E8F3916808FEB82893E
D9102140B95BDECE891EBFDC0877CB05D5D693595BE1744486199A80D2F299F0
1532B5B51D44A81F6630285B775CAEC4219484AB679C387736AB657D2FAB5FF4
C1F38955043568B0923EED7871A79EC0EBE857CEBFEFCDC56BB88B8DF95A5955
B1B5C6C3758EBD3961A9AA8EB80F727587D52F520D9C2F3B16D53D04373C40FF
8B43EF30AA6905E7954B30F8CAC576C961A97D017E38333401D46497F464C58A
6F6DAEA14796130F4207C9A2C915FD60987A4FADCF15B1CE028E19D84741A4CF
E92F14975B22E90408636EC2C6BEADBBE2F700D9C52DAB85A8305314D0E9EF86
7FE155A21200C540749897BBB8446DB0FD9EA6ABCF1EE1384401EDFBC56780F7
BA296BC9949FD913A6C1465F372FBE8A94ECEEB080DE004F68CA85D8E14E2FA3
C2C9F25A7AA3107560737D89D424415F4519CD32C08EE537ED3C1D868FD9E959
B7EFAC23F9A3391952F82B64900A8E823A2C151A507F13B5B8494D969668D5AD
18E616740BF5FB4FCB456948366D740DB5977F1486ECEEC222BA34275678D000
E72627EDBA485B582B3D0B8D39A84066E9EC9AEA514C99A610647E8EBD15002A
2A06B2B774369115542E5819FF5CDC8EFBB376FB8848BABC2A9FE36FE58664CE
ACC537460646EF5BE3E27AEA3EF1B448F483352A74BB076C6C70F26919DC748A
8F8C8F00D17DA9BA1A2C6B2EF2991820AFE725820547C323DC5D881A09951743
CF93DBF69B34DB77E5179489647F10AE99BE1A397C3E9F867E32A41D5E648D37
D2A23BB0BCEE888C27357C184545AEFFEEDFD381F02CDF27365C2F6081A9F130
6C093331619FCD8DAA5785ED724C65C750F68AA4F0DB9482ED5A9C7AFCF992DC
C7E835150F6FB2FA3B7ECF0EF9E2DC3FC4B662A39BB4E6647C970729D6C4AB8F
CE91E89425D5C3A7CFF43E0DE81B4010EBFD6F4B59E6974D8ED78EFAF93403EF
2546021413AECAEC33F23DD20C120A352490BCB429609877704A5283163164B8
36B1F3C515F58DB0539340A6063F88E2846698593D5518413D76184212A1DF22
DD13C9CD8251056A988A0054F340A7A69CA5B946BA01456FD45BED04A44158EB
89AC05C4E21BB4CD9D1721250A8254B62795B4F723DD561ACD73A975B84D387B
FAE002B7854DE9284C72FB4E32BD70F440083A990FCF0B35A7DFC987DF094D8E
31700EACE3BAE2DF2AF61E8675D5A55062426268A169B24CE0975982C76D36A8
BBE2559A8A48F3B022DA0E3339FEB3357B83EDDEA914391DF8F6E80EAACF0742
B31348E509D17A4C02582E854D3838AAC88AA0C0906C8505FCEAF8703970A3B4
38B0579D7AF0E0283FCBEE979A3E08AD484F0C1171E41F58AD8BA063FE85D248
60EA777285CBAC139159875E82165494DC8A35E3A67A75D8B9C8CCDE9805325E
39EA26FFF3BC9BC99BF2D2D70A5F00F410E50D759E1CA678492DE1072966BDE3
6469C249BC34CD048FA81F3241D36839491656C95313E1BBA617EDEEC4ED9703
DA7A345DE172C2760FBF66559ED167BCB696C93FF085D81987602B193E87495D
2A2A19DC6FE716765861A94108BC65FB38DB6EB504E7E351B9347B68886382DC
B872968991EAE65F67B8FC8DFF6E3E97E94AF46EC98C89D877EBE2A9793CA763
EB155FF47A65BEA3D5D23177D8CDEED3523026E9B5132F6342F1257225F087D3
BF2C1177C097AD32E23138CDDE0F651AFB6F10FD173A3B73042669C116081E80
2A4868ECBE26189E358956839C56678FCBAE2D1705A1E5928A5967596A4CB329
AA02488FB3E2EE9E52C67FE4FC7D40F2030E7072F160176BBBD66DF7B2AFB1D7
2A5AF0F3564FAF8049C4B7397D1DAD17A1DC4E2099D3D8BA176FC81EF20A0A63
C3116BFDC1F0700720DC16B6C58259582B39D00B478ECE899951E5B8084E876A
ABB69C19482D66277AF4323FAB7039AA9CD3B17539E75FD7EC8AB8474E9BD4EA
423607C7FAA068A9339ED9ED7B1C67EEE03AF3F3137CFEE8FFE71FFF275D900E
AC82CEFF1A42FF1955309E22E006B69967452AB7F01A2C3ECC090AA180CCAAED
EF42CAD566B25CEF7BB035E4C6F50264BDE376609389EBEB3EAE245555F49F1B
C67BE891C11FE7A4FAB4D9C62974F4E0655A72B36A86AFF1634B6F5E5B569BA2
3C3C5D9E133A4229C4597D4B767C3F55009E29FEF97A003D249E1DF465C73A41
6BC404CE79CDE12E861E8455E88A5C8A92E325192599261D99C319B561B54931
518EC86D45D7BB6F19CC3C66069E597E1CC055C4A3BBDAB813CE6813C6D8BA2B
DE6327582814F278D91B2BA37035F322B921A22EDF9D80DF29C0F6DD0D81C17D
7DA05D5668C25720338B7DD5D71683926279031B8F1C3A6585726F45B173E405
2ACF6F97355BC9856D0597990EA6A35DB3B1EFB83CF1009882AF73CC04FA44A3
5F4B1D9C72BE9F2441B09AF179D154D7964DD71B0F9469525D314330DD1C8BDF
0B2312D6ABF64290EC0B24BCD55294BF719A222D945ACEA9E427A42F32F5F5FE
D839F6378F381BC8194497A8A3B4F042EE1B960DAAB4148B5F1DEAD2049D1726
F28D34283E1F2A2CE61C3DA6E3D1B25F21A2617377C4C5B3B275678A158BBBF2
430A7079B4FC2873DCA92DD3B3DD4903C71E544302E76AA5B855A51FFC17C7DB
D11D7906E024E2F193A10ECD6E74CEC5B1ED8A6A494F4E79E2269AC55A26EA8F
02A6901D66FCD03C338FC6614B892D011DC089C36236AB07DC5104B8266790AB
D464B1775BDEDFB991A9015DA95A6BCE1B3E61B71BDB2C08D3C58108929F1E6A
5BCFA64BBF4E1EE1DC873492B686DA569873C0EB51DF8CFA743FCBBA2CCDE3D1
F4DFB080A258BB14081593ADA424B77DFBA348CE11E723F091AC89C0D25F6794
5D0DD2D1A78CAF3AA1DD692EE3D76C6750B1104A0D6512FF293E23CB895D3285
F9B4CFAE9F4B44129E45102104786D8EFCE9F00B15AF914D27CA7332886D68E7
F32963740C6ED8D1934EDA3A3BC3D16FD3121E76040657E4C917AE56512E46B1
B3E57AD1A83FE1EF1A640E9D1F532A30515CD527153C9A597C5257E6B1DA8018
63A379B4B36F7C0352E184A30A581CDBEDF325D9D92CF9FE2EAF2B4056ADCC46
817C75FAF27861C519C2EECA730EB6215EEAEAFF9E13E9636E356B24C1FF32E2
BDDDD4CAD0D46769E3A4CBF16C9AF3D2C739723CAB2427464A9B5FFCF7BC5318
8365C834564EA5B11F1A22CA59575D07C25C30567983467499F27352D34457F0
DCD55D488CC9E5AB42DB1AF140B73EA7FE27CD44D8E610D9012FB57EA1438F85
5DA3A2ED40810B23A6A8F814CEEB2320CE5E1A9A1BB117EC249E409A06BE8BC5
A37EA89E74B99FBD237917F62EF1CDFFC3893CB8D1BB527779417FEB0351C69A
06231B2BA6939CC21BD9414B9C1C1295D6BA5745B2F6FFA498C20964AA73DA93
F2BB60822D88A77C029C81CBC8118F1369AD883B16CEE5E59E892A027681D02A
D67B1389B10A2A0ABF8F22B6F8382F06F3CB90CFDA91AC45FFFD7AD3A192DCE6
14201D03D9C5F6331137715B6B10D0547434E4E129EFD3ED59C5B2134356F265
E2DFA95CB62EFC4B820966A9A172E5B2A134D359D777B68186704FAF7DAF575A
D201A26C6194B9FA36D41DC291A62613B5522552D2CFFA81D276009A8612212E
293FCC8A5C85EEDA263009C4FB50ACD7B65555A9174AE37B1DC8264A15225426
C43F8A6ED11198FF1BE2ACB099D3A03197696AE50238E20ABB729E5E52571C77
191CF13CCC1401723756C86B0A420A0B906EA5D42A64A44E519F55E03AFC0661
751F9A3C792E69FC2C33129196534A91F1F939092789965E9477CD9BB709ED4F
FBE00A1C99CB740844686E0376C00AD3EAEEE30EB00722D4868842EE0892E746
9659A2100DE024835D5CEE113295339BDDF6DEB2A98A0AD1BFD3B14F635D08C7
AD869861D8996F6D62C1E427117BD63D64EA42D7BA83524496C4987056CFADC9
63125C0FE0140ED103B5D6B0E1AB36A0B1D4CBF91F4169A7D9AFD33DE1797C81
9CE9D164F82D8FE0A418F6C507BC58553625BAE9DBE8BC9C32EBCE696D794999
0CF08A51E382D9D61BA9A775E65AAF66530FE0EC1AC59169B9BCB4639D7BA735
3F2EC8F2717E3FE8D5DE9FF5455B965D020917253C4D2547F2181C4D654D212F
3FC05C4228A594B7210983D1CFD275B1FC3ED531ABF2ED9C2D7DEA0A76803647
F39332BEF79D7E9BC27B37DB13A0FB28589853079C450D5CA4DF04DB318C960D
99AC8299307D088A4FE960B7A9825996C0DAE4D079B7432BE00BE3F7464A964C
5C3C3CAA002B275224F74A1D321C88B5B5A1C75E4BF4D6CFA08A5757A9170235
D6FC628111A061B5BE909D9DFA94D2C9AAF14485C29C8E989E4AC62BFACA48C6
1446A1815C66E27532A8C4739EA1B66CF6C2B1958EA6A4D5050437EC38EF0611
8029D9239ED52DD578381676619C50EA37B607B850897BD128127EEB1E3D309A
C639B8EE8EE137E869CF4A7ABD7A95C91A92843F10695BF222727E1468E3C441
8EA028EF7DB486CF36F39B3FF362C8B1EC317F3308593E9161D3344B0EA7FCC0
D2F9DE79BF85D1FD4E99C08C739F6912D31D564D6CDD5259CD1C4F8A6CD880FA
61B17D640C53D0FDA25243FE24145E591D5AE252F5FFA4D915F7D5A276F24734
C1871202059121ED1925B364F6CB73BC01ED20F15C2DE3B8A57BEC3573521A9B
983424E10A5912C522B1C3910959709D1CA6059BF5D62CD29F839E8990DB94A0
D2F2F933E6222C7B7D2AD2CFD06A7BE46A88D0AF8DAACDE46F75D49A34C4F272
AD93FB97BE8954A737C1703F7A0F838F1D0B3D5087ED11B65E48EC276C768325
A3BE5EF5D572A248068D9E620412F1B3AE3B7946A213712E31318D888CB42AFB
1747CE163ED1CA8A3EFE18FD59ADD9911A8D8106104514123440BBBA69E5CEF5
08B630C56C95328280FD4B222DF082439F36A30FA69D24901879298B98925255
7CAB87C2A1B917A1382E2A7B4253A9FA3A72A7AD0236C9D75910DB3902C6D3C5
2D81416C240740255CA5703A3EB0DBF6BBACFCA8A76EE8C5F5F00D71234556F1
5EA0C1FE6AF7D11E5AE2430405A0031F82BC23C50F689D5521205D6188FE143F
C120F809C26E1628F32CC760D4DA7A4781DC7EF8508ECF12E141F2D9AC668E8C
6E6A41E979AE5CC8488B365F78C9CB2C9B0B213AB9A57EDF56E618B189129E95
DDC72CB8A9DA836D83A01C5909BFCEBDF3C696E6DE0D1144E0BA3DA3FA20006D
C5C73BFE3DEEC1FA9504F2F09B34C269635F6FB343FFFD7BA1562539EFCFB33B
7448C2A38564FFE17B1D9CA7048901FFD113163499A42776AE0A30947AC65D75
4735A13414A2A533A0F1575CCB273C435E78398D74A731E940B750CD4F90FC9E
E03A7A20C25141BDC34A5D729647939D4D90D583CBAD8DDD432446BF28D60362
958F81E6A99F0CB2DBAE71D6C17BEF29ECD901AC4344F3BA01E631467A9938D0
A1188EBA5C2F40FD98466EBFEAF7D4BD6E7FCB269B0992FFC5BE3AA4F1FF7AE1
6A5CC0D5D4E1DD0EC2F1B9B879785048BF5791B06F628482A44159BE758D62E6
E52911494CF6F0E8D0EB25ED90D0641990FB7A39230B47580A34D29F2A900476
A515DF6568B93E22C53C98F7C36DE18EA8B4D501C16190A7C4C91EB7BF7BCB60
74FC91B34B8A6536FABA7E00E0955F5E7A8D382123C7A01D480C8CA3D67B2D74
10BD37407A3CB7F5304D5B79433FCAF67A27453A29467C231B4C96F0A5244EF8
66939723C6B14C7B8B12EABAA8B71920FD550DC8B709333C8680EB548DB9734C
B3759DB19C0AD15F16D3558570A1B2CC7EE67800C4AF664886EFD5198862559D
7294CA27D656B76DABB77A757DAA94E81AC235978E29AF
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMSL10
%!PS-AdobeFont-1.1: CMSL10 1.0
%%CreationDate: 1991 Aug 20 16:40:20
% 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 (CMSL10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -9.46 def
/isFixedPitch false def
end readonly def
/FontName /CMSL10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-62 -250 1123 750}readonly def
/UniqueID 5000798 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
9429B9D40924DC059325D9D4CC0344F3F997A99E6CC0676735EBCD685AAC9142
08DAFEC78BB41AFC2F1C219910BDF41D6279284EF600B69776CA15BC8A34347C
30783C52AFA60FBE3E353E2AE354CF87B558776A22C776C7A0B5AB5CE1F941EF
C2D9CAC37294BF407A671F10E4743BF842143F4F7DFEE643BA3BBD8BB9E3F24A
BCCF7F0ADF8BA500620C81033EAE8C4EF2C1DEF13AC575F1B3BBB66F093D3B78
5412B82B67FFA087AF57182B2230F9F2137180CA58A7D9B2C822FF04BE6CD01D
43B2CA7058C7B953F6D9B5D6E91ECBAA5CDE1159B0E59C83DBAD96D6C8C8BAB1
374EF652D10C0F3EE7104472C98DD3572AAF2D45A70BF7061447E21EE3C3BF23
DF39C2D1B35B42CD5297BEBE6BC94F7C9DC6E61EC67E4F677256FED9064BD3E4
B51A71B1D27CA4E5AA9E1D8080E6DAB5310711EEF87C40859FA935B19524AE83
63B163FA8397BDFF443227FEDF7DB27DC35D89FB1C5E435DA0619A5C88AFC73B
89A2DF5E767C5B536BC7167A840A0C32BD57A14DE69A7D0D819AC36FF32F908A
5070F32983BB007437E3500799DF5E0AD3710A4C0000F0098D5BE99F2EB9C1C2
C444FD9552D0DCA098A94B3BF176F511CEE13DB7EFFAED7C47B5ADCF8D4700F5
7B6DF50EE617C00966B9A2828882804DB7477F4A8CF5345B7F3568B4F72BCE73
2E2AA5BC4B4C70E21F3AD9AFC3B8605A00D67EF9ED1F4D13DDAA920D45B43CE0
0941BF17CF05D2B777C11D4D844AB20C0693D1DDF00B27D9E1AA2D98A4A06CC6
D342AD8F644F4787B66CA7D861E7CE13FCDA85C1B0C9F94009768EA89838EBA2
7818F40A3ADDFA3289CF11C1ABC8DA5AC3A477CC71580E3842433B383B7A6662
2C86BD7E6DBF9E45B9BB6086E0E014F50DC64B401C33C8AEDE6B2756F5341ADF
C9E390C565A64326A18ABBBCF16E34D9F65897A334D9E64077D4A27867103DB0
08C77CD64D79A5E5F9EEFB3DB4D3793C20E6B2E76AC6AB2DEB5A90CFA93E334C
257BD0068AF79C07C4866CEC5F430DF8F884A653CD1B88157B7DDE592F218979
EE3E839363A39DA10E5282390355ACAAD951D63C2FDF3D99BC77E54AF18A30EA
A47AF562D077BD7E5248D279A933CD80A3CD51CE38A991341BD96B71C0E5C264
3B7DDA225411DD0E3B744E8FC0BCDC2B6D7C48722F0CE06873C62CEDB6FEF393
7D03841FC158E2A243B635A38C018B3092B574FD93F9A62CFCEDACBF09EF0251
A1CC77E97C9613A9CD124F9AF7B9B7A0301C78055EC9E31BC58AC86913751A58
4A7D0798331B71F2991FF4CD88F3941095E8AB1558645733709A14D61580FE67
B31AFB106CCFB57F1325CF351786962AB73D6F7CBB948AADA5D3829E465247CC
087D25AD54023D15C5E1E229BB7BB422085A2C1EB62F9EB74B00F887F67B8A23
017A793AEC5A4537C494D49E61B9091C9339DB3544C73AF64D3BBE0056987DC8
E3D230DF0B82DC9D9DB5DA80647AC90C542C7A1965FD835D069CCE389D5F665F
DE21106ADCFF7AA7A93914E31A1BFE1F39633145498BDAE7A4C5FD94254594A8
06B4D5B66DC6A1560AB80EF3A26FA66A4532FB591F2AB99C98E27E035CFEB2B4
7B310B722DB67CFEE05FF09C3107110C847BA7879663AB69193885448328216F
336B65F083F3C17A641F2EEE9551C64FD7F5EE6EAADAAD908324915DF373D0AC
F567132A7034CB61EABC2816845DB93F5A05EA541680C9F49784FB8B00EBCCC6
6BEEC3B142C24B9AB6F5672763F8B051E9D2CFD7E27E2697A2665E684FB94BB7
F0907238FB54782608D8144A853C338C768705F7EFBB13FBBBDAA7CC1DFE6478
63FD9E1195504255C5A87980BBE692D75BD996DF8B3A09D43998AAB833D694AF
C7BFA95E9DF0A8676B84D1381DFF1CDA7E2F1C6F8F9D14FDF23DB01D31CC1CCA
3F5962F0568CD50D12ACB13EE81E0860C8848AE1271F6DD7772AE083212F2D48
780EABA77C42057DD1FD54E4070E3194BABB272FC86104643B80D997A467891F
630B6E3561058BC3B9A28511CD0D45F417D8FF9F4198A5C72E0C7C5E7CA54739
94045DFA1CF0D558581D78CB8205BBAFEA27CA9A4F282DFF0C29B629968913CC
CC8F782A01C606892F8B948443BFB3A4E79F777FAC8225F1DC09A8533EF65C17
CE6A783131F4B6CD6C324EEED05F573BE5A8641447EE8D8EF96D115D632C1B4E
4ACD4BAE86DD8F14B7B4C709A9A82DD0AA2A9B43BFA330AECDCED601728370E9
F8D4E668A916E27CBE843B8B5854445848C3BDDC10211E274D6A54C0C4A67A0D
19678F750D5A700FC9307A6433D1CE71897A3CC25221CCB5370FBE42872A482D
2052708A3F2516897A060C4DB178E5C4312432972861B6225570A9ED4978D287
94D9615A650D235B1127671E30A38810408C80B8DCE01286B8D3D74AE9CC8B01
D83C4E4B2BF5E6808F7753FD0DEA81B69F8C9B60821A48777B7AA7F3DC0596A7
756CFAE0C08AB5536A555A05174313B3D75368489A1F2CA8F73A7F56BC56F9D8
2400F622E16C6A1763E525DD70BE17DCFF962FD52AFDD44D9C50FFE9DF6B507C
E1A1FAF9739C011B262D8DE65801C3B1BB7D78679756B7DCB47F7DCEB9B2A2AA
D5F6F7C8296D83B1513D3C8D0B94E006E901C2CB8EE13ECD14BFDFAAC75B8A66
431AE22CE58CB869B08AF92E2B0941FA8B822ADF2CD54D65C959EFBE35BD6408
1C3CBBD68696DAEF6843C29D63633F345162299797AB724D357C061999ACB616
B7F0B6F639C32BA34A9796B2442587E74C5D90211F1793EC68D119C260565172
1B9E03C660A5FE4F12CD75D1F3A80451DCDAE137A0F972D31BCF4E7035CD9F67
113415F928705DD89EC43862D1C1DCE445D6A132AFACDA3CD01B2E1AFF5F3120
97C536C42AD9322BA34D1E8CE90D67DB144FE71B1300BD0B69F81268918C2867
83E718CC8CBF432E523CE8A240870ED708068E551BC3744FF481CCE43216003A
4434CE57B3E55A5C861C4E3D158FD88989B59D242605C1900F241018A8C8B298
935C650C038917AC8311D5D8AF4008EF5084AB624BCC93AA3534A86E22501F76
A02F76C7F610DC077E55FEF5A37AB2F46EE55C2C507BE4C5F330F449412781F8
1298597517BD3A6CF5AA604BC7EC073B1BAA19AEC6C3A626B4620D58122A97D9
1CE84A5A049C6F033EB302AAB1094B292B6254EB8DDA76742550BBC2AE8C9F4F
620C3FF47BC32D4C758B10F40D3EEDC5EF711B593F3363BC144CA9E356C2E6AF
283E0AB8600EA8A2706C860EF823A035B102829B239A61C49565DF182AD92F7A
74149C35A4A46511AE451A93E28391CBD324387F3FEF232D53EF91483E09AB19
56F39FE9C6513737940B7232F5153458CEDAB4A6E80F9001979275070B3B194F
B6A0F8CDD628AA150AB8E6729352A1E2CA1B4847AAF49A524CF8EE3B1A9761E1
22915D55303E430BB5AAF7404760AF827DF53D63857A8ED31F40DFFB7711A68F
5687D6B397AE004B8D490D1360CB062EEB45199BB8DF4DC51A2CC2EDCE65183F
B101A020ECEC5E4678A03EF4FFEADBCD2AC36CFA64D3FAD3FE8E6FEAD4CF30B6
530365AF486008E60A0392C1E5937A482AE8705565DFB0EC87422B26B2662FAC
2C79094D1AEDEE757709898EA92927C5DD183C13880CBE926184850529122B5E
F91C48D56C835D14AD2CD4E5AA2221894A68A91E2155A7A1809DD71D5BA8F5FD
D23815E05315EAE40422545CFE5F49DA9EA4642D27CFF414DE97819E3845C34F
E914776DB01CEF3667A3B547A6F8C5940529EE4C2C68AC1204F32D5DEB366D7B
C8997AFCEBAC14A9009A5174C54CDBA3F336CD3F7AC525309BAC156626F9B5E3
91F65A3A8F9C62B56C1C49C8CAD0E8857487F6728BC548B08CC4D4DFA8B3B76F
7BD1CAC3BE68D6426822548EA702FB57DD1A9E050FBF68787CE97B18E5904993
5DEBC1684E7C35AE0AEE844E9A9D1F24BE5A5950F6880D793359F58A3214E352
E4D07130C9BBFD00F3635C8507DF0985FB56E9EFBF113DA98A23574B49239064
C8D06697205C4E74E708F5AC699CCC68282D03773530B3A479B0A3FE8A6AA9DE
0AA677A925E25BCE731C0EAA652FAA03D188F32BD7541085B6123484E97FB263
FE43B844F6D34DDC8916243D3F8B126BF0DD6C8536B69ECDFD06670B80BDE750
9FA4C6128126DCD36C9894D54AC125E21B57EDFE228C8DE6774DA44461221106
3B507EAA89865E445C192146050A956443F308DF446E7CA7C19E75EFC0F62C6A
4B6A1AA33884AD4ED5B74676CC2AD323CA41223DC6EE8D621F1EF94E7A4AF0EB
AF1F40FDFCE5FD8C9CFB2E5FB4F4C0D7E42887FC7B4BAFD748EFF5EF48B0459A
C4E880E6446E2F51169A7818EA7DE6FBD936CF66586A947C3EE2A15AF479B27E
60C9949FB301D3B7218D72C5FE1B6DB91B685CE42792CAFAFCD5271F1D9084E6
DDB017D33088EBFB3C479D5357102925A710482F05417892355F9C58FB5D9937
1250AEDB15EE99524558CE9CDDEA43CFE66A97E05D3B86BFF7B5362A4A84B736
47C3DB1DBC5B150314BD7F5FC8139050B40194A5AE1F691A78AE9353F788E266
00424C0987C9B0B93F965131742202844C3383BA6CFF52995C08B406C27D2A21
B7822664081F30AA39709CD76CA9EEB1E59179A8C3332A391027DC0B21CA7F62
14CCD2AED6249DDC2B0F8A50959B61A60F342F44119BF8508D05509D65683607
2DB3F753D076ED3FCA6A2802D35390FDB79A7393F5082F62794AF00912B0CD29
495549A63B0C060A64B5AA351523200D6C1EE31A782165BCD6C5AF13A9BE91CA
44331ECD97CA95A0B9842F5069C9A73759451646312E4AD61C551805ECB3BBF6
266EC78F08132E28A6DD7318B200CAED5EC69CB7387DBAD895C26C314645258D
2503B6B2AAAD2FA9882B172B33B6FA61817108F1C3AF88A0F52550C7411D0767
9D49FC7E256AF00317E751D347A148F4A7951F5D7C2ED12070FAAB14464B004B
1ADE76BDD497590718895D1766F3B0E735C7CC421E455521AFE33705659928B0
18354E80BD38DEA4034719ACE13378B191327B185EAD5C22281CB520ECED6AF4
1242691EB0308F5E6A0B9EB2FD1D3F8F4F91219F7E8C95320915862A2CF98CDD
A035BC61B859CB4638F82D09113F1A33B9C01456DE233622885F8EE3DC5600A4
451BBBDE57F42DD995DF42DB4BFE247BC4AC6F441461A05A702E28A8A19261D1
05EEDD11D807808C9810553ED04DDFF35F79F266001FC760CB4D5F11FB54300F
2E15853F57AF0334B453AA7846BB53261B57C52184A3D427E50752800642F3AB
A1B999320EBB096DD2C295EEC8911FEFF88D2CA88A370073828641C4A3FD6D55
A822251639757FA9F0C8BA1CB9AB479401262ED37980725271F4CF15DA8C8933
1FCF465B1DDC6668CA0ECE9AC01706B0A8F0A7BFA24AE8220DEAB2595304CC05
AC1A6B5A1B0D6F11D814A59659928E7A2D0DEDC004559166BC4247AC3F874032
5659E2D272B073CF42C9039559813615C984981A981E028B0BFC312E0030A1B4
3C888FA54DB54191BBB106F4A1A0758C7E764B4D7C4ACE41D0FC0508EDCF9063
1F92C05A4125C2C161EBE22ED9E5406EE92E4616C187D20D78C3DC5119D98EA3
6A61D4C68946257C1EF72C73B963A3019C98F398975839227AAE45A9BE4C98D8
81F059372F5AE180D266C038D3BF49633CCE671AA3FF3549E86ABE6CDADBCC5B
DE5CBDCC11B6E38435C7C6D6CFAC215B87339E046A493664FBF08E5DDC255E3E
2177C6F9EB01F99C9324C636EB668BF03D2CE7F21F964DBF28C2F945E368CBAB
EC5728270B6D38D7D88F5091B942E20FACD25B4ED69A780E327F10A2A13254A5
349888371329059948E672D23CA607A6168C12EEB1CD90AC7A78DD5B43DD4F16
6F9376D4740643A52BD60FCEFC8D3E05A91ABAA74717FA0802FD4AA2C01B1354
62C7C1FDA92904E02E5CF4D37AD588B5E73FB826E06DD1A6500157D1131C6AA9
25B38CEBDDC9255BC58B92F88CECE0F6B18F019438D2BCE56CE686DD29A32258
63B624C8D492BFE52883079B7995D5F868080D90C297121CC800D6FEA1A33CFC
108FFEBC29FAF9A2CC2BCB0A22D9AA42FB825F16EF09DB92103C9D644F49BFD0
2A2CB434F4DA6E7C2BC9B4EBF5D814B2BCD8103E730DEFCA70FFCEC0BD46654C
CD6F74684B6AFDF4B3C25CD8355A787C1D72B5C85C54180C37A58E725A7EE4BB
32E73438CFF5A973F5660C452027F5A226D102047BB6E7F30A99C4EF253A31EB
CF976821A2F4B5E88E4812BE125DB3F8780220D9123485CEF8F4FE4A649B8F3F
AFB543CE79F22AF78DD5A98B0BCD358F0BF81A1087F73EF1DDA956BE09E31D48
9D378715A7400B565869F0774754CA7E4AD76D335B03EA7902874AE4B75E70D5
651D44FE1380CE4445EDD7ABC14D7B6355DE55DE3DD72330F70CAEDF95D6705F
29A9C9F578F36A9167809816BB9C0AF317A7FA6CCAC1B0CE9B1A78276DC53A9F
A75188831B0F3A23591BE06780EE4A15B5C690A1AB56F8FACC395BF408EEEE51
4D481E48B606246CD923BE9FFA8E54C878D1B311149FB2331374C3E020388118
0275346988D2A90358D944DECFE459AE69D94F9F8FD7C7B48C0DFB861111AF66
0069BEF3F1EF40840FF0764BCF8DC107996F4CACA42CAAFE7EA447132443F50D
C24B5B2CCCB9D3B829EF589AEE5ECCB0D8C1F8CB9E6A51C42BD57B4FC1CAB49F
21E28E418D0519CF2445BA410618D4E40E4C95D632C7B65A802F5AEF2786C1D4
7768196D752BB954AB5656F209E72E091150728B33AF8FFD5BE128B1A79180FA
86EB92B9E70BDC48D1C6C34E22A880F7A9760DDB9365C8B93076452B20813171
73F6DB182B495422532DE4E40034633B57A7C92E1A7B31AFEDDDCC3BF1800488
283D63A3C691420ECD269A22D905669D2C0310615AAF63E0DF63F26C2997A13C
55CCE68A45FCC8998638E4618BF57755BCCD2DE97DC0577584EBD84DD712F03F
D15203B0BB130F44E6F73B1A5970EDEB76493CA365AFBAF67396C7F75A0932F2
432FFC177E86B6D1CDDEF700720DE437C5041B76687F8E809D07B66D64D22931
A07E301230079BD03874E6A5A055028457DFD073A4FA6750B5EA2EBB40DDC2EE
4606E47BE9E10F709A158A4C65D5C10BFC3A548470835DF29E5CDD74C0B02621
100F124E90CCB954B742FFE19B90DFAEE0754A8EAD4BB4905633EEDB61B71F12
2F63040C1100F7803991C184E5827AC34469FE3E7E5095CE098117DD22CDAE8C
6C920D76767B1E686FD901164AEF47FDA9B92EB9DC76708B2F2F36240D8D11AD
E294922366D2DD0D28F55DA0FF964128A5223FF57DBA66B8C22D392E6AD1B6BD
4EC69AD619DBBBB2699B50ACFAC8744CD53E798EA08D5D396CEDC38A3EFBF870
E4B38D546B081D28A4371D1F87720BF5A36648922E92DAF68B0067BE1C093C48
94B24453680E9C4B625E77F353402CBFA35C135B5C0E95C8DEB5BD7997D0EDEF
16091E4BA39FEDB943CC272FCFD78E2A09CB616CF3EAC21BD921FFA14DC15C07
F3D601E00889F2C967C88B1A04439ACD707335EE56CE8DCD1109A10D7522FE03
D17A3AB244F8A6CC69F32D2CCC7EDF594081D6F37AFDA8711D8E89DC22588637
38F4712914B72C86D669CBE598F90FE585004AB77AFCBC3FB1FC937233D2BEC5
50BBFD682D20B2971ADFDD060AE9338F845C5665E307FB3E851F0394C1E9458B
040A4713B19BEC70C601E1BC5B4FE1198B4046EB74C8B42C6EA21652BD8FBAA5
EE30F10C032AE379B366D1D7EC26B053DC7694E7AB1DD90B9F7971F4C0560BA0
B4A90E4DA818BA24F7AF3C9A9C01FAA90C3111D86C6EF207A01DA98A1DD67219
CA750F4BBB5FA1CBA65B110722F9C62839D3E48868F41DDEDB1685DEE3FE9C00
4C4B5A894E4F89F25346FE0A1E18222D14320E7DC6FE54F37DF7266C1408105B
D4A79211F3C44A64855325F80403D59155615213081AE8B1BD4A1CA5E4364957
43406190FC152BB31F90726E6C3F594B8CA1A939A73A2DABBD5D549F4B638E29
D6DFC72D57ACE7E6A33FF9000066C52685F07134E5BC9DF4E776D749742F163A
C14A7F07898745D2CF4F55F5CC10E4F1AEEE09932171894933C3A4E079B2EC44
5D59EFDE1688D1EB57937CCE92E9D315A12AB179EE19C48EA1A0AE40615829BF
5866E4217A337084668DA912BBCEAEE455E82C271F1786BDDA03025956A81C91
C064EDF471361AF6AF86FABA4537A0E7FB3F6A6425834F3BE587CB157268E6FB
D4AC0BEDD9E8E552AE51758707D28CB03E0873BCD0A5B1F1154902544FE2E006
D297EDBE9736395C05ABD2BA27391094AC4D937DC359E5E411833DD7ADE001AF
0A1655C45B7575871522A0A5D06E3FE350A2F43034EE8C2C8F4110CF288CFD52
0E59942FEBFAE475647608A9D2F0B63AD46B36063F1A23032CB800E05411FD28
42946B2E87ABFB3D70430BDC3A3009A80FE720B15B5940191F0FB60C223C57A8
FEC36F5EB459ECBDEFCBE905B15600879325DFDDA763D9A155D59D28A5E1CB55
57816930E3826CADE29ABA5ED3A464235FC797CA8886B624924F5B5DD6F1A456
CCD960398BEA79E011AFEA3E705A0282A70EB79EE0A7F4D4675A43DF7C70D38D
79145E7A07D37029188341B1D63FDE4A5C5CC36A1892578B5B54CD8091C3172C
6E0A0B19159A7628512A525199BA7CDB6D992C1A9A5FDDAA99FFB4A37E4B6E72
21FDDD98960F9167AA5825000B4BA73566F2F2CC2B9708D17DB5257B28CE36E9
DC11711E3614F99AEC6CA60D2251C4A5611A3B3D103751A823DFDC9644B80E77
D9C0C47DA707CE0C350F3C46CDCC16170BFE28280D6172BA5E5767D256E6D45C
AD0E773F896C99FD3234DFECD792E2F8AD09BC3526EB34B78B86E28E1CF09331
0D1B99ECFFE17653F95AE29E8C3677FDCF913198D630AE5C063C900DE3A2D23A
406208F9B9F55AE84CB034FA2CE266D75EB77E9CB946050FA7D73D4FB943DF58
E59AABC7A3D77E765B1971D19D487A679F0649E9581E6A73DDDA9A2A43F102BA
45547C603C5AAB447481309E58E4DC32F5C2809EBBB03356093B2C7C0A74578E
7284C24847F5E866DF58F83B471A8E9F4BE01A4F64B862E4D29569326618186D
A7B976BAF1AC858F39B7E78E0EE321A498E6AFD21D999F7DA70FEECFB8685222
8CC65AF2D54D9A48A4C8C3814FED8D2077430CB904EB3E1F9B93C26798A9C4D1
C3FF4D8BCF5DEF1BB075A81CC73E6C0745D64A423FDF6565A3A88C7F40FA58BB
7CE92F26D2EC92DCF98479DA7483C92FA26D4685DC678F1B3C4A4A7382A6F932
AA0579C468939AE28B2F0AF5E7B24084C3F2377771A4FA99C004DD363D0D5ECE
2E1E6276843D91E01451FD565EE1923D801A957A4FBCBF4ED69718B97A589207
9BB69EC43BD1213E8DD30DA0D612560C072BB1DA7030FD895914431FB8E0FBFE
EEADC7D78186E4C7AB07AC47B4999755449050EBE24C26C44A6A2D416A3900ED
5555A8DA510EB6E320F0206C1BF6C735B1C8B86118450BBE44B9F7B5C618783A
2935CE222D28794C2B84D4316243DDD98CBB876EE54113ABAC115EA040E1FEBD
D1818680857C97640BFD4F92AE77A57FC4545F7E69E3B07E22DE3CDE7CBF6564
2B2B1BF587148149CA6A626FA21AE060A42B7BEF98D889450F8F95F402DB20C6
514ADC3DE2668C3EB909E4424D6FC58561D702DEF6468213097B2DD1E9DE5A3A
A052503DFF3F3E37DB8D4A16A7F2FBD97AEEAAA7E3A1FC528EB13E492CCD5B33
5CB787AFC490B1823557D6549683229E8E8949FBE6352C361354BAC54EDA985E
B11CFFC7A12409C0D04686430738B4FC277218B59361F2903D58B145554C4EF6
C257C7861330D4B7C987D597F9B9EA54D241DAA822DD28D9AF6056AB2306BC0C
7EB0D27347EC94159764B11B2625CB1D57C5A0A83DB4940FC7F8E00BD4DEFBFD
81766464EBBE6CF70A97193269B6BD8C30484F758224A2D5
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMSY10
%!PS-AdobeFont-1.1: CMSY10 1.0
%%CreationDate: 1991 Aug 15 07:20:57
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.0) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMSY10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle -14.035 def
/isFixedPitch false def
end readonly def
/FontName /CMSY10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-29 -960 1116 775}readonly def
/UniqueID 5000820 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964
7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4
A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85
E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A
221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A
27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF
5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09
0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730
DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A
71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09
4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C
515DB70A8D4F6146FE068DC1E5DE8BC57036431151EC603C8BCFE359BBD953AD
5F3D998D8365AF76D4CF6A06FB66E1CBCFDB3A67D8880377CD677B9705EE853A
D849F88A828E244FA5816B7D081D4D1975A56D771790C21AE05809BEE6613452
953F26C39CE61F0E134BC35404FE2F0B7D244D9A6F66E4D817D1C65024013AD3
5F242EDE94633B8E20EA42B07F83BA649F12B784B2AAFA542BC597C6C2C9AE9C
39D60FBA6CD16AADB5DFDABF22F37E244DF3987FBFA55031CFCD46ADF03650CE
D6CDFFD87BF7407FFB63F3FE4C29FE753896101B2CEAB9007B66E29D6A5B85D3
FF91F888E445677157A5996FC7A3BD19BAF3A3BCF33F0719B992A0F013B1F0A1
82E42DF6F651071FB407F448DFF37653E2A0569BDD8EABC3280B3582745DB98B
644E5B341F531B0D81ED85F815B993C2B8B34CDDC6AE97606F6B3B1C5427F174
362FAB82B935087B568E6F526347058C406E878F1CC2DD05C26D35565347C5A5
7575891BB4
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
%%BeginFont: CMR10
%!PS-AdobeFont-1.1: CMR10 1.00B
%%CreationDate: 1992 Feb 19 19:54:52
% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
11 dict begin
/FontInfo 7 dict dup begin
/version (1.00B) readonly def
/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
/FullName (CMR10) readonly def
/FamilyName (Computer Modern) readonly def
/Weight (Medium) readonly def
/ItalicAngle 0 def
/isFixedPitch false def
end readonly def
/FontName /CMR10 def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 0 /.notdef put
readonly def
/FontBBox{-251 -250 1009 969}readonly def
/UniqueID 5000793 def
currentdict end
currentfile eexec
D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BEFD8D9C400015B65
0F2F536D035626B1FF0A69D732C7A1836D635C30C06BED4327737029E5BA5830
B9E88A4024C3326AD2F34F47B54739B48825AD6699F7D117EA4C4AEC4440BF6D
AA0099DEFD326235965C63647921828BF269ECC87A2B1C8CAD6C78B6E561B007
97BE2BC7CA32B4534075F6491BE959D1F635463E71679E527F4F456F774B2AF8
FEF3D8C63B2F8B99FE0F73BA44B3CF15A613471EA3C7A1CD783D3EB41F4ACEE5
20759B6A4C4466E2D80EF7C7866BAD06E5DF0434D2C607FC82C9EBD4D8902EE4
0A7617C3AEACCB7CCE00319D0677AA6DB7E0250B51908F966977BD8C8D07FDBD
F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20
3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122
A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379
5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA77428025D4059BA
2988AC2E3D7246BAAAFB89745F0E38580546045527C8779A254DB08DCC6FB9B9
0E172209FBE3857AF495A7F2B34BC893D942C145C2204CFCD6A5C69FEFC25B60
E412CB2BEAE7F7FAD03AF46344F6A7D483BBB1E896BF16B0F4C363799DF23CE2
E8127996DE841B6F9D8A9E56BD799B6A938582988AF87151BB8D3AEA85C49857
DD862B5E10D9F33D57795D656FB616BC9B8397B3612131A2B0F472656700958F
739A548F7C3A348698AF9F6F9821D7A9FD4131781ACBF7EAB885A3AC254DBF94
02FA697941A0F97F048861788BEACC20DE829764413CA58F9D045A6B38BCD6E6
E4827247EDF1171F64E3B041A69B244308DC07F66643FCD7D5FD37F36EC4CB5F
957D4ADAF91850A3B1A765E0E580EDC77556593D1B2E1C22685268469298688A
45C474C9D0472D019CE1E83F25182D084AD85A49C502E8D679C227DA8E32045F
8055D1622C478F8FDA342685F858DE3F53F1CEA0D70BF3FE09037D981E9E7FFB
BC3F896535D0DCF53F4C85A1DA5D0B632484D1F25460E3EB38E251D2AA17817E
F3B25A2A49C0AEDE0B89E277F52CBF744EF0243C409FD71FB0C574640CF11599
117A4F42F27D8D282D34485AD116F7E753A8DEBFDF7C552A1179C02B7A37782B
743D0DF85C15A333BE9EE82C13DBC9CB007DEB5900954AD9309902E08B3D5BB4
E8414211B971CE8B9F05A61C15F400D9297745F606C6419E8A8A9ADCBDC39243
617EFABFDCF9F836D14411BD72EE19D0BDE89234BF7D52E7A68ECC952FB74FE3
33E1A87DA39AEEE9E90406E2B1CF3799C63E9BA858D54F38918B814C0DF0B696
839C820C26FB473ACC5C08E2056457A74123A398806EECDB427BB183F5458105
2B66D7E1FC3529025D3243A045625E9DD9417FA089B3C7C394D2B65C0367FF73
79F17ADEC6B5D27A5D3D3E244A0839E38267ACF07B2D994C2B4E7F30A416EEE2
D1688F167D1641A72A795B1F4DA3350F75AD6D546AA118B5F8A5085F5794E6E5
28256CD31D250D8328C9620B8ACAB03E4A33DB4595E959F4D0FB1C8CE85A710E
22F1940067C036A7DCED7EA48F1EB81AC4735FB26A249A32AC2E3E7636B32D31
7D76FBEBA106D6C67C94A3BD4256B786B71C6EF8D191CA90CAD8D2EEAD42C6DD
8BB4BEA7DAD4ECB6E002F3B71C2955A5A401E34D55F755BED68178C270109BAB
FA0AD848347EB977325530B27180661A59447D7DB55A62D65309DE24B6638986
1D3A539BD37E74C2C00DFED3336B5C6B28D915AB7188FFBCE3ADB3CB903944DF
1BA5923A1C053D4682BB8616F44E81E18DB2B58298F4B1A6289CA993DF3E7C73
B00DEA3A9B747FEEBC4A11E5B9B8B05CA2709B8AA935A42159D3DE399544F5AF
AC1CC00F6CB94AB69856078C9A2EB2046BB9055CDD6A0622112F7D3710143F1C
20CD8DAB4109CD47BC00EBCB88314081C1D6C43132412F261CE0262FA28DB7A3
C7D8534BCBE1A60488EA230DC558B73C72AE87539A9D7E28C2BE05FC05F58DDD
87117EE8FAF3A04EF44C9A4020B1725993A09C560AFF330080A53AC25D5FD7CE
7EF47AC32DA4032E3B69032505A2E7FEB961C16EC693C931AF988BC1F88299FE
8A83805D021F2E3BD6C0F422441E48786BFB7C7B9369FAAC61EF94113FB5A09F
5B635ED1B7AB82441FA6D37D43788209B0F0CB48675E8F4EED3B4E40B131EFE2
7A62A5E7A4829FDB51F9D2FDDD9235864795FB6A7E35B00CF593EE5B10DC32F1
3E4E56F4441D4E21EB964D0802FC2A5CC4D579723D751FB07F49B263178A7F55
7F5732646257C2D8E07DFE7303BF3E564EF08A25BF42A1E973D5266EB4DCD07E
DEA171F3A020A5A5EF98887A048523603FA6AED2C4D78615852461EBC8626B2A
3592FD561370E74C76C37BCD1286D56D5B02D2FC6D3DA35E693DB67002953F26
A917F29B0CC194A84F435BD0474F94CB7DFE5D62DA09EBCA1BCF344FBCBC0E5E
DAF4A7638F50EED5F97A42B4F49F6AC709727BAD621D383DE360A9B8A93E842D
4B91F8097BDC51D0E571CF4EE5C252BE1EB5EF7EB38094E58F183BCA9C827EC2
F30745A0E0D1CA2FDF07395E9E1AB24A685E6A37565DE435C2D320C9D656E024
FDFEAE3FDA071E31DB8FB403A7B1F9DCDD6EAF6C2DD70832FF3B0123DD20E5FA
9150583463CC1C96A61E63FEEABB39C988C152208C348296FF6949DBE5FB84C5
A15B8F758CCA07DBA756FA4A071F5F83513E928D0D08A075DC2497BFCDF4AF24
2B02C7C3693C0F303F848482A3DF422733E8BC738197124745A03DD519B827EE
84E900762D6365FFD2CB41EA45BF0C57AE703AE4DEAD4C477D86037DB937F8A6
D599D13CCAFE8DEA8FE920AEC09F669F3C7990252DC434FC36F0C6C077C3BBF0
D70F2686B59227F2CA6244C1E40740C19AD2B3F6B60F933AFC53C4AC65B9F181
4D8FE23F5C518BC193E4EA50F6731E91BD18B3F3CDD23606B181482F23A9E291
11E0B29E943262873E137C902EBB3D52E2C4CFE7982CE0F493B891006812CE34
AF792849A25359E3D795507257DA3B143CE7F036F4730AEFACDC3B09B1436727
722BC7D257750FF5DC77229F9FB15D25C6DC92667ABAAFFED5EA14096E3DCD6C
C3C26E0876B548B52B217E1C39BE74C0735B95F84FA239D87545D62169361ED0
369DA20E240804AF7288BFF7618C6431DB42E5C41F3256E47FA2436E82908F24
D2D9EEDB7E9D3A81C1BDA0598B4F5DBCF0141D97F1AA82FB08948F78860E2343
501700E457E03219F1E33998531B5F27EDBBAE52483ED79DE6C294211D835A0D
A30FC94ADCC7854E8FF9A241E14CA4A3713EFBB932B305494191E93BD969AC7D
9D129BF7DD661A970B03D17543B64F3D690FBE809611A8FEBD6D5B64C7072D10
2C5B0575C32383558B0A6F5F5C75603DBC19D672D50F8E0A1A61053D58722291
0C6CAF79A40C6CA8186ED01F37686DAC94FE80C1FDE34CF9A1E864B5A541AEC7
4619BBD36317C204EE3098884A992D7FFD05DFDC5422B6067B760690FE082070
3950D0A1FC6AAC937BF37A964548E748F5E69643F9C91FFC46ED86A1CE613570
445B9067458CD4F82F0DF1A37E640225086D640A97A9A100E336AAB021F39CA5
2F8550A707070C8AA5EFCF0157DB7823627AD01A9AD2B9851E39ACE6B24CB787
17AAA254B349B5C2B1D6478AAFF1E8F450D0A6DFC19B381FF94A67CD15A22CFD
CFEE409F71E0B9AF34BBB4D5AC0AB98A69797D1F43D9F013A56C627D3D90504A
0F17DBCB03BDF740E3810AE9AC288B9511A952F4B47C182F3B4D86EEAE488200
88CCEC9CE4C2113E0C3A75B2EE73577048530474613C27D9D04119CE44D1E016
77606065D96E89271D107C3281036010944BBEF0810EC016C7D841081D99C11C
1D83B982E3AF62A32F5A3D56DD6B59339C80D7D461B94FFD9207B46EE809E886
368CE4589308F55BD78987657E65AC269A8FFC39363F5BD475D8A1A680B93E10
217F84204A39E12CFCA85A472C528269F04215C411461389AF5E9F2DD8227DFC
CF1AEEF9342018CF38838D67639E625F0FAA434F6DAD0AB03E4EC2E932CD30CE
A3BC4B7E67177EB7CB99A5AF5C4EC17BE29EE2B07263EB932F9795E3332B9487
BB02A1EB222FBD292C5E86F0653B09A194DADC4C24C73E223017B2E70680F327
075BBA88496F0905578CFF71C07CE3F46D018352116CEAD7F219B1FFBAF09893
028DD06F5AF04275B3C1A5140CE055CC84FE8CF1019927885B8D173D5A7580F0
B07ADE2180DB44670BA4E6F994B671C6369E510B135EE3BE61ED047199CF0725
65B0BA4DC6F03EDC42E332B89D9EE8C9E7D884CBB9A99290B455C8079295F807
767A6CAE1F5577C6FBF05AA24667A66E460ED23509FEF861C13968ECAC508A3D
B66840F35A153C78ED23EB1D874CEE172DB4D0CE00622A3B28A6C10813C998B7
04A38C1120E04AFAF09D8EF9EA6C3750B318707BD4DE09622680D07AB8D10DFC
D26740AD8EA8E1F7A93A1AE975D0B159869BB452A62959A07D89F339CAF543EE
ADDF81D8CB868482879025840DB8E3DB9512CB8DACB3546F52C861B1F840AA46
8A766A437A47574BABAE4EAE70BC4271AC12ABC28651EE7BD063468201ED055A
B5D8403E72C0B504895E80839D11E54E200D9FA6866D43FB95240262D9892259
7ECF5039C110343985E3DD0B5AA309B6ABE57F5599F0FCB46D292703BF969219
18461B585740D4609AB58960F6DB114B5573F890C0A3816876BBF06DFA1E98A2
8C2A601A76D3A8216842DE2341CBDC750AF85B4DEECA987B5BA66A6F6DE4F797
07B387CF02F0969D9E154E4204E8A0C0892A814EEF54FFCEC6E351596321E650
736160981008221EB805C1E49D9B6F2DD183CB41129EF228FCFEEB637CDAB86E
33015FE68944ECA716C07628B8030CE87956CD0E8DE0205FFDA01BDB84B20FA2
317EFD862406924353045B0D4241A85124083346F4C00E872CE4610F14BD0988
1A5F9ED7481F947ECCF2126120E420B4F0CB727FC3133CCBA4305BE0EABEBB1D
73CB539B7EA9F92588C098000C5C488EA9508DDA2986FAA24309D553F8F557C2
4D2473903552EB821353DF4534623C6AE5EF79D982D05BFF67E97F2C6EACDBE6
EF0467FB82F54C00EB9572B1A13A3CFCD058FB1FD7FE954E800D3A892C2F61A2
094EFB8F89585F933E56A54D0AADD20ADDB9E937E138D53C8AAC13E0904D0B40
055B2AF95712B488414BC1089BD29C1160034B1A1A38C95D5936D0802E11305A
C8090D7EFBA3624704AF26B0C05A6133E27DAE7356CCB5C21A33B07728F1E83E
B0488734103EA8DB4192741D536F7C97350BA9A006D60603B95ABA09A6C71BA6
6C5EEDC7B7DC48CC6467FB8A27ADEE17E7A96DF0899B87E47F16D615B1B91A26
B050C27EABDD028A92979050039D1CAEDF2907B061798BE79E62A4EC5CEEA6D6
12EEBB05FBB716A3A60F6D3CDD6CBBFC4CF4029BA7B1180B76C85A598E05E083
EAC829660C76529CC5E6603DACD5D1A47667D713F8DEFAC3F2E203E4344BC38A
8B9D8916EAD5E48816F31E0DA810AE5C21B09C184EFAFB3F17324CFBD2B696E7
4AFB2D060E9A01A7EF4D0B08A562B499737E3FFA3CB0960420807455CD330703
A9B2BC874F7A2414695AD4D87B9134E8A53D65EF82DDD707B9D398C3EFDDFBA3
C69E1B3A5BA5FDEBD4783A0C70E289252CAB144C00222018BF2CD8F2773B5BC2
E06B8B17A3C669A43409541C5D4AD0DD5FDF21E57BD420EE40808B7535706BB4
67B11AF5440E43DCEE2EE4F420D08AA51DA170B08C5470EFB6C731EBD7649975
62F58090389120202D7CA8ED4FB9AF564985C1BC9C00CA804D295CBA672C16A6
EFA3F767E1BB38D6D364E21430E70E3B4AA4ED3D6FABEF4DE09048EED656E400
89CF3F5864C75C3600587AA94EAA012201602DB62C528CC05DE3AF08F196A861
57FBE68BBEC5DEACB74B9CDEFDF54530EB5EFFC56882E167F0610FCC7C461F30
A3171557B94E7BD0D659B7CC2CD0B8BFF57D7286AF2A7378858A4445ACDCCE48
C7A5C50412895DA2265D32F195E09A07805642EFED5C54199080FE10E2941FF3
2078EF7EEA1CD37C35D2B4E708DBB45C328BC16DB5D6F3DD77612977617E74FB
34088498D0D14A7C8A25D2A8B31B1FC242F76C63984205B4242975B00C9D53BB
BA04452FA68F4854E3A96B27D8FEFD2C3D772795FAE2CA868B485F0622D8EAEE
12BE413B18668455B3C3879C080C478C99EE6F4713C1B417721812E021B27970
C4E616793ABAF63D206266E92813FD580B75B5436618003B7ACF906D97AFCD4E
E1497402BF45DB772D011B7C756AA89B9D4F516E82E9ED0670D4A7684C8A3763
615EAAFCD3C7D022534AEF4D43F494D0EE2EA4D0D87FBED55F43AF3B42FA8F5C
3B7789141C8EAA23EDB6B988E492F22287623B61F130FBB6D1131FA0AA6D8DF4
70F5D8A3D9163B96F1594124BE4452E9C5864814E698717E49AE7A39D07F42B1
EB27EEE6E0B53D718115725B2EAA2546FCB741D1516673D4BD2E88EE33DEDD30
868E4C61E12ADC25192A724695BDE0C72A54E1C97555BE73022C3C931A708D72
DF11C1A1E371C235AFE73CA254A6366643222BCC641979EAE2DD8A29A186B78C
B1DF1BB02200441D1FD73195158BB32A03C314AB974C7B641C5C28B4B4628D0D
C0C5559B575727E0CAEFCEAA978D1D1EADE592A2E7B9BA7DD0D00A3AE759718A
A4904F6A7EEE30EFF4AAF9F3529D1C79F654DDF6DAB70142A17516B8ABD439DA
53F6DE513E8CB1FD7AC03239F7DE76041AA11D3BC19CCFED635CC9835DA458DA
A25C394B6679DAB4ACF76692C9CBA52DB56C2D6467C14ED50668D7678DBE81DF
FF0BFF55C614FA2609DD902C14FA3A379664E449A0DCEE81693B10F60AA540CF
81540D43290BE0AFEBED295461B649A9779DBCC1A3BD9F1A5FF1E6F887CFB636
8C02DF95BE1B47B29337E5C15784409074BB88996F2F753C5B0A0A3640D5A81D
3C1C6CD879A8E2B3186A1F030B00D023E9E903407BB8DD148A7BA65BF9A95FB6
3980046A774FDD9E7EA5FDA1F8810FC74CDC707658D2C0260BEAD0AA587B34AC
36AC3FC6D5F105A8FFDA7E736687050D5AA3E21E240634F443F764F5232C6A13
C9FD4A61C926A14D3FF8437AAFBC201553B745CEA1811D1E2D028F4DEDB4A8DC
2344EAB65DD7B543E1CBA556523A9C696B1C7160797E85598CD5CBE336FFED1A
8CB41FF8218C40EADDBEE89285648A7DEBFC1700CAA09BEBBD163B90A6A2342C
DF9DAF31D393E1265285C83DC5289CC1C4C128B820044983995D36E77608C40A
4F167048C14E5135ABFBA5E40484AFE8CE2251156DCC2E8C847EE2D8F7E29B48
50B6EA48C53AF6D9ECD988ED30D316CF6FFD07946EE3ED32ED87D4579F14635C
850D3F625EC16A287FE70467F8BD85BC72AD0C5FAA1D70DB9A78BC573DBB0BD8
5C89B19DC37C715180F86BBF737021C01DC41BA14A370ECBC8185D5060348879
B1FB58AFABE8AD55083CCFDB8A5BF3618B2AB44FFD556AC5050D708315095C37
2164A48F1A67BF2E40B5F15BA0173C0A247504ED1342A8968E8527A0C44A95BA
0F3DF0A60BFA33F4085615BD6BB6B6F34CEAB9AB0142ADB2ABAA08B028F1E096
9F38449495A706785CB1C46B5E5731D77F28C2A73C2AE1BEA8FFC5F7224CEDDF
E66A0B0C35DB740A3D2398705842D49C6161D88F7CD754A289F7B3C4940A3806
FE2908D54168F19C1C98FDE7822FF31375CFA6D359B6762844DE78CD51075604
589E3229EB6E3D1972E66947B4999FB4E2AACFB7A965FF3260543F289DEDFA11
C8833E7EB2972F7C7CCE00B6ABB95F5740C9E2C9997F0DF39BA7E43BA6B5ECA4
C587009D37CEB257865A1CDB9A0654254C225E11056E90A4682E4BA7C68AA056
7C54A81437276F071B067C5E79711CF6147D8ED3C410BE2C874D4BA26268B190
F9AC54BCB45B23207426A122A6D28319C2EC5A6D2D968CF1216DBD74BD9D6430
625DFCEFC3A680EB2324F1E2ACFD387CCE51788A401B92BC3B86AF185F8EA881
AE9FF6A6A9471A6A5701CE2B987CD4DA06634785112E326450263FF6193C304B
80ECF6EC773CE8DF1D248A6BC027D3547D1C1CCD7518F311A1C06BDFF8B78C26
27DEDB432D0AEDF36EDB3FA156B81D0773B17998CDC8D5B9C4837AFF61000B10
89C233A58051604DD0ED874B9EF34FB16AFF0186D795508E04AFF1B7537C727C
AF79F73B023B67BE4574F931C48CFDAD8FF4C08A89DD85022AD6412F40A3D95E
9F1040B2FC92B8D19DF79AC537AB96DE652D5BB9F6A957BB06F9DD4BB4E18628
2F3689C160F8435677E0FB6847144C18D9C650CBBF7D97AAAE4F9266E846C63C
F45577DBEA7F5203DF521812003AAF9699918D090B06D32378AB96DAAA1BF45E
C9FA449E7F67561E745063950DA722C50BAADC3ADF03CE66060C85F31BCA0643
D419D74D352A065271F01F6A273650ACE31F43723BA351E3CC279A3D8FAB0DB8
4D587F126BDA34D7AD10C76E17003621566F8E19B71A4C434CD4F1D7AE686A0B
A07172AB285ACE6F1EF89F16E35B63EF5C458491A5A0A10D49C3CBB7FA7FF04D
F6347FF5331A1EF9CD90F66AA875B1E5E4CC1D11031CFA6075C43B4D0BE9F5AA
D2C9B0848EA42591BCD48F552DC71077B5E0458226716B266D8ACED04703F644
43F136C0ADDABAD16380FF9DC9D6F8761C1EE0F3E067B4EADDCD8074A9F4BED8
28EB1D93F2F69060E63D3B7A75DB2BB7EBC84733B38C302B359BF0CBF8CD4F06
868DCC36E5F5078A87602C77C00CB36A1BB749F3B66AB3B259B015B839DF0E33
AD6C9C7220C3B3ACEAAF37F2BDE073D33A51DD60EA827B94BE0739722567D1A3
8E8183AAF92A41C13BBFA53BED31946F74DD91211452FB2111B4114D4BF69349
B47BF8BD85663C615DB8AD7E5814F9E9D674AF69EB52802498EA7A520EEA6A82
6E0799FD975ED07F59D64A139EB98256CB39868A60F5C95B76F1B32CFC4A610A
16A41249F52A0B484C89A8CDFB8816B65093E629390B6F716820DCA409EE3B9F
E749AB230DC69552E32FC755C726DDB02AC2099E7ED6B153F4FE112EED6F4216
0068B75329B7D0C52B748866630341391CC8FB1C69161188F56765E1BEFBCDDC
802BE5EC785BD1564DDF133015B45B481E6E57A4FFA79D49F792361A970652B4
B9FADA8242DDEB704DB34D4E84F9E7A7E48AB957DD04F91E96B15A8F742B64B3
EA928009F07EA6B727F734E60EFDAAADA39F2909222A5848D581ED647105575A
78AF6704B14A9BC89616E21C42995F0F10536E8B66A391DAABBDB7E077807CA8
A1CA57B2C2551D3A5574BFA56CD930DEDB666B14D9E5460DE2F6FDE12A101908
69912C5AC85D24E14F14535403754901B1170A5DE349FF1E9AA6DF86ED9DD992
0A403B4411D73E3FB2E0F8C02C42572790F0224A7ACC93E1CB0FD8009F8229EA
A6BE77D644B44361C340C2F04585550C9325D5D89EA69EA8E9C77BEB254D9D06
074E9594878BF49C8BE1DA57EA01730B40290A87862A46515E840EF7EF95D5C2
F7CB0438C94F7196D0150A2606088203E72F73889C6B351D3B7AEA89FA8ED68E
BC22C235C8B94D91DEC7ABF4F67827C123EBB2E0114CA9B430F8C3A4C52D9F91
5FBF1E5B7EE99EE1F32FAD68E51C9EF5857935D90CD6787F5A7D26CA2DAE398C
B0E03FFB6686769682F45187CA9ADC29528AFD6C0626B569D1E1CF81ECBE911C
7272D78A7E9C2892E0A9864D82DD7A06EEE8C79DE87AA7CDEF73A81F62174E28
A3DE77D00BD02174B4E4EE5A960CF73F742D0402470B87C1255AA3FE9F9C0798
7C691462AAD55FFF9115731B36F827B8197FCB50C20AC134427E3AF225F3852E
C320C4F6564D19E9D90DAAA6C6989440EECEFBC7E0515F6C903ACDF55EBB2745
7FD1866136E1E34CF014CBF6AF08BF8637046532A649D2A703C1D163AA125FC3
B5A1A7A54787690A355A386198B496440EC3DB11C0477B0FC6A1BFD9C68DCEB8
D05FF860951090B268B62347999024F0B029619A1329A7CDC9B22E221F29482F
7880831094A44EEDB2BDD19581A52453E1A5CC6C5D357DCBE28C087E64F3BF42
A34081BBE7BD7CBB456033B6B743EC91E8F31652F99FF2F888157BB68605E782
A08186A4CD2D3185B96C4DBF360530FC93B1EA53F295B47EB37B7FA1DD44C5F4
416E4F17CC18ADF918BECF8A33D638DBB55567FB9BB3B416D4384D709466BDE5
3E19F1A83F5A635B879BF0BC9BEA61310213702A61A9B64A551FBDFF61D7A484
E7B92AD5E0CE331F4D747750E4B1D05083370437C57F4175F5D632BDD017A398
12D14D8A8540103F3C8836C108063D8A354B61B5843E7CB98B68421F7EF3BE66
DAB94C5FE72A193A6A85701535576837E16173B173C4D458BFAFCF235DB013BA
3ED696A230834BB66260CD8B6FEEAB419B16C8D09EF7AF735263E9DEFD4491F2
8ADEADFF0477E817EB061C2FD5501FA5B11EFBC8F2A251165E832D7498C346D4
0C5038BA7DCD69117065EEEB44A4D2F1B00F7812008578D1F08473950F91602D
CB26FD9A426BA5FBCBC3A67E43CEFEF418D4DFEE378B51EE79914E438CCD8512
5A3FDFC5AC5CBA66884350FB1817FB8D81512E4421CDD7B55FCF6C5DC5AE410A
FBD21F40836104D515BDD985FC5D7FFAE58DBD62099554740986A908E655BA82
5879165458C9CB5CB893A1300F850C70C9880979EEDDF306C1B2CDEEAC6F08A7
B8A286E2816D538207988E80C8B8ABB3B584901C310A2C37E2DF00AEDC429F9F
51FA60DCA40CFD89457C0DEC2329114407910E6945826A15AD634A34026524AB
D7EB01765E0A01735F527D084D99D70AC10FE0AF7358D2958734BD3B251B686F
75370D45DE3B02CCEB64BC773DC9AE49C5EEB9CA4E1F6025F37760DF03EB384A
9AB69AF3695772239C5C210144E7793801260D4F712E2375C7BED1475CF0EC98
7D3396A1FDD01ADA41E26B6FB486E7A65379CA697E94453E12C7E1EBACFF713C
7686104C1E8A97F5CA43D90720A9DF8158BA122B30E76780D2D7D14B28A8E2CD
487EA9ACD7F41FF520C828F96B01113AF6326E709FB33E4C0C40630ECDBACDE4
2B00CF4DA171C5FB56EC13D2314AAC34B7E6CD522EF577849F16FBD63CA74115
B1020955853DFDD69504896C78DDAEBA13CE1503CE6298857E95AD30F9AE3D13
EA679C0755CD9D347E62C2C6BB02B3B70BB5ABE5D42E933095995E82F2B468E8
1E67BD75E31F3FC998AB527CEAF6D22C3A9D3A9D37F49792B0613BC26E966D10
ACFCB08924B5DBBB5F34C1532918F5EC819D58D58F22F5B4C34091B6D5D5AE4A
2DAA6A4153DA1E980C1A877F92F3E62CADEE753F835E1D4041726AB4DD8FB54A
663731BF848A92548D7FF200CDCEB755AAC2D4538D609CFC32AC7A64BA4C19A1
A60FCC95E65834A8477AD1851D4F42313C7D45BD41A7C128FB3F1EB3B8A9C9DC
EB87ECB0E62437F660D7B7B1A2BD1A83D0A858B48DB4FC346A5019BE1453FFFD
365DB2B79BA982FF3074C61A7EF728068C3276A7454B934249CB0FF347B72375
2B98FD0D5407161B65BFFE96F974730D5700AC5426D102933BC8CEE26A3D7CE4
E91439C6AC286879CB513453533CE793440B6465A43FC931A95934B0F389FD9D
F2C414562251BA1015F2877F28E0A113876AF203836E03AA29BD327204A55C35
A8595C42D4C65F6F7EAA5E7C82F8B764B311428074BE70A8A730D323C96EBCB0
3E0DEA328220E2DD2967423BC227D2EEE3B92D520F08AA0C6670F8D3634F9964
80B6CF0C575A43AAE6701022678EB581216F94D96E120319F8B4C669DB4F8563
1EEE57B64FD370EACC725A8C3365A9DA815CCA27ED6B225AAEC2B63231D9EDD1
251B2FB4E2E428427005B886A09CC42A37323DB8C0FC0B236BFA6608BF3BF90F
F9331DE8D013BE9246A5F7E11BF56A82480A7E3A789D2148EDF9D4C31E9D1621
BCD28FD7E3129FB191484009367760D442109F4289F0C1F793B1B54A245FA790
FA945075EA220FE8BAC943E1D68DE00BE2401819AE2F0854AC5C85EAFB40F5F8
CEF3513B826DB403A4C94CACB3CBCAD5DDB843C4864840AD4086C00C8354B4DB
6F7A67A9238155ED872AF356E27BAE5121450C534F1D64C5814E9FAA11FC6BD4
FBB0EB1A762EA9D591C97B938349323B9FE6B541A13DB805D6DD18719C3C7BE8
EFB5471E10BACB574AE708504E9BCB71861246CDABCDEB07164173C949FE332C
4D9EBA9DC8DCB71D914B4AEEDD0F91C891450BD84D7CD827516E33BE15F1AD6B
30396AF928DFB1F8078F439C335261C98BB7CD4DF1532C0F04DABB1B58AF4874
6D889884716E069AFDA1D41DD9773B024FDC110E565DABD6FE092E062F394EA2
4B23A3F5647E41143558F695F1648CAEC64AE83F13B900FE6D3F3D1CC94137D5
DDC2D608F6D09E46AE5300FD23D9873580B6AC180B5CAE378FC14189B8823E96
CDA6234404F1D472FE468FB4F8BB2DE023BDAF6F43156720B75B175F94CACCAD
68D901CCC375B24AD5AD32965B59D528B555DEA3585B610BFA6F4528FA5BB645
525F2D4DFFF85703A9E3B82F43B5863FC5EBE8D0B9D96C6E8DABBC2D84DEA858
5B6A1D35CE535251B09B2E4CE62C43DBAD3E86FC2E0EF06EA1FA62A4B6EEA756
6EAF9D5AEAC1337CB9D791D54CC67CDDC03FEE7A4BF9D9D967AAC6882EA113C9
3008B00C93E10C9B5FC8C763EA8EA0C3ACB25D29DE119D42A09019E539D0D99E
69DC8A812E12D5FEA6E95EF4BB6F142AACB08C5C4B0440DA7202830C929B2E75
9A7294BD9E4F4F891BBFC0CE1029B85FEFE7AB2B4C7731DB532A79A365A58258
76F20C921730965662DDF829970BAD45BD66D6928DCFE7399A2FDB0BEEA5F75A
8488E764D3D29CEC29558F06370948DD2FE4F7985DAADA9FFBDDAFC956AAC926
9F924773215CE94B0D3632CFEDF4CFE7AACF7940FEDF598434E4F82E9F6C9C22
2DADA01E508C43FDBF0E41454A57682007F12B979E6C21BAF4380993B54413B0
50A8F42E4D5D8C11BEF44E49F4543890822697654567E8BE9EC4487A00C1678C
D25849E8B3CF962D0EB05A3C1BB5DC3AD0964DA95CA31DC31D84FD0757725F02
D1A9906969EBD96F5B5FF34614F7030CD4E7C39A6324A2E3B3D70002CA3FC904
A56B650D65061B3FD52D6D0ADF4C9230949F0C89058F623AE1126ABB094517E4
CF8529C15C7EAFFB689F749694BCA6BEB6208D9AF34CBD4B2F50EC03979E59D4
DCCA4DA1CE446CC07A923D80D9574B5C4A9311B4E2E83B88F378998D5CCE9EDA
1778C87383FF7363A374FA6E5272120EC8032FA66EBDDC75567BD586FFC49DDF
861A0A3A3D382C07E1E2CFB2200EF1F8D6E47EA35FC0909F6D4E3EFA71C68327
374F80D5AF728F4C7EB3BC8D470D67FEFC190F86FB837788E058223E2A0E3D74
2DAC9DC921F7CEBC61454AB8D82964F636EE2E235F38801032F451039CFD5DB5
D7AC5F17DBFD037123021F2D661A966F70CF41782FA372D86669DB84557C6EF2
EAA4E0B2CA8340D21DF6F0273E286B13FA6BB4505BA75AE8A25FEB68A14967CB
2F32AC4283212B8C7767DE86CE7ED5DF41BC4B4A26F0E3E1CE53D40C64A2FFE2
0882EED4A6663DDA91BAE6386AD46CFB4745F48CA93F7E89962067DD2808F3C1
BC082814D72465ACEE843CF6A2B2C9821BE729E04B8F8C12FA56EF1B1E04F005
6167690B0DCDBC4DC8FB782B0DEE1B00D586DDD499EA9D4A2394DE1339A8DAB3
A71E0F8CC3D3DF4AEF3B65BF73E2C6EF888CFEAA804659B6AD76708F54E36F88
7B3D9A39C8A9FF93205FD30C87E9EACE8AFE46CDCB5520DA38A5228C5B5D3DC5
89888E0D559F379D40DB5625B2394805D7BD7052A33EC03C399B3413C44ABED6
111BAF898686E9CE54093969AF7B6F2FD9E27633BB681B8218882EF7BD9877B4
3F649F01FBF7E8C5F523E66DAB6485FFD34FE0CA373EB4CF8BD7C84CD22A6502
F43F50EC14A412454156777C8935E5C7B61B9E4BF51132D97EF8DF945068B33A
3C122D4C34CDFD5085C6437F20CEC3B29E6AAA2065AD05A19E7BB92969EEA246
87BEAAAEB0F01F53844AC095F629AD8D0BEF5AD402D1C874CE9DE233326BA82F
BE7C30A81A98802A01A3D5113285B0EBC89337265DA78A32512397426637D5FD
58F646D86B111E53FF600FDEEC02DD2DA52DA9AE875F43585C69733B7F5D8515
41E1EAD1B961A6920B9728604930397AA497739C3E8B2470BACB685ABAB79214
5EF5E1DC2D6FCF072A01C43D5B0BE96D9D4475474F5B683D01A03AF6D2979FD2
58F34D54ABAC17D9B7B4A9DBEC9DF5D179C402F4B1FE8F74B47DF5C628A22762
5853D4128C42D4D11C8DEC7E99C01F4AB06C57A92D84C55D82238AA1ADC5CC85
1A7D3D2DD4CD962FD2EC8B3251B360A9A55C3C22DDCAFCD06DE5F9F2D859260C
1A14F2650D7E83ADB95231FA22718B8F7A2CE6A39E44AA844EE6CB6C1865BD4C
2425E517598BB8DA4ABCB8F7B41AD8AE2C364B85A7439598F1F9A9696E9FA50F
1BEC16680627D3346DF648576CA30DA11B04F2C5C5AFC18EBD9EF3A04D4EE2F2
3E326A34339A26924C2059A50C5284B4EF69140C6D99A5376F79C39B006C2D8A
840D064DB477C70EB9B0BDB4581C493BCFAD557A01BDCD96A24B6013780C0DDE
65C1CEDF6EDA691BAED459EE21A54CB814E2C6C05DE4D8D3EAB7010F12747EEC
EB73CD6846C12B4F2FD8F3ECEFF292C255B29AB938F2C3DC50BC46ED04888F9F
5A60430EE5871FA0488422819C81849BAB5D3FABF176CF71168A7694156DD65C
1837A0916DAFFDC44D36B66AA28B3BA1C6178DD86C6A096C6C36794935BCE017
DF02EADECA82A05166D2C100A56C2C4038E3A3694401CD53D514F787F8361279
2EC1C2853D50DA2B2C481B2CAC90726914DE60E7D3F99C0AEF696B242204A174
CB4EC72F5B142190E913937F422994B5D082D412509C67810C6D6F6B3A6E7E4E
E5938B3FAC8E8124E026460DD215C4F3E01E399B3C25EC98E7F7256E0BF02250
BDDDD75E918B04532C2E4EF6984C5A546ABEEF79233893FE95E7AD29B22DA6D1
B3A722417C714688444C7DA3E545407B8E95D50F75F4E0AB7CAE2EA9AD82C43C
2C2ECD095EAAE32158ECCA60A5B92D96E760CD2474454C9025930850705DC591
FE9B8A9B83F0A59D7919BE14A4E57E164C114FD4461506D5D32001F73C70D21D
013F753C716A60FFA0FC1E8D5726141FB24EC31E97FBFC9C11909706FE8646CC
983B0DEC377A9009D3EFDBE831518DEF429EDF15D4D0B81D932F18ED82E80D1E
DD7752CF86609B6801D34AE6733317369CB04AE78C5AB83E9E72C55F0FFBDEFC
521C1AE7733880A49B109DC2E6E11950A22A094DBC4B74DB9326E7AA2732A2D2
D4DBBEED9B069829444316B586CCC5F95FFA1807D31EEFAD24AAA205F2ECBB37
927D69F778371A8765FBDF9E47D908E54030996576783DD21A4B57DC28CEE8B5
46E88FB974A48A15437630C300F527644A83C286420E843F8980D507DBE88D07
08CB5DE0992A1608D994853082567887C6E5C62B2751F78E87EE808A01C7E11D
6401C4226C0B9615E778C63DB94A6180862183C350020ACBA3DFDA4C41E028FB
4C6286B287EFDE41D4963FF5BD4D849729067A9C99D6BB9D90345E630DDA41F9
A6F9C0D3DE55A58EEF3B01ED8830E785015F3BD0AEDA7C79207A249F46CFCCA6
FD26130A755B058DEE5032BF842F1D65F1573A2E53B8AD566EFC9211421646C1
83F1951BAD29A5AF7FD01A9E267BA2B91420EB7CB0CF3A9D61BFDDB23FA70390
2553247EB8A1D940BD6A8EC2D5E6AA90E7FB1E23EF6C68F65003CEA43F34F59A
807CC4D834EF3845D9C192F9B83D44138DA9ABC8B05C8EC383596FA63642D774
26CADF5AD03D5F86830D61556E212B49B0C73CBD761E1EB254CE971C4E854EC7
35DE8CD55B036D00C2407E6884F4B0BACC0A7D8CA9D64F32E78E97A6DE0CC2AF
C86AFC0EFB124CC153B3528451A064465A68A4898AA720A0932B019A81F1DF6D
AEBD44901714879141C2153121583B695C1F54855671FC0703DB52CCF8306636
B49196BDB6FF50FAAE3C9C100F5E8AE60B112144C72552ABAAA0F1C2560C72E6
0DCB995D07686152CAC803A73351E3914DB513B7C8D268FDB1F8965B06D95ED7
DF552B25C4B3465173F37D839159980598C3DECD6B8555758D88330E3E17FFCB
D29B2091A2D9D86C15FAAF029A718ACCDAE07C7E70342E1C2A47627A54A162BA
9FF7D5E72485BB785C09FB709BAD704B8E7C3CEF9066EF387E7D9803AEDCA0FC
A786E44EA4371613BB4AC89A71016E3857450A95A332DDE5E348D96D04838428
C9EF68881B174397FFB02E9557CCA0978F098E6613015ADE1994A66B47B430F1
5FA7C42208D301FFEB0C35C8C1944987A025F0F00B2A5D4E71A4053F60AA18DA
08B991358C00879C8DEFBBC37AEFFFFA76D701518CCD0F773EFBC32E400073A4
F91B3BBFDECB3B697D23AF2D526D4636E740DDE5BFEE12CB605D705C69D98B21
E62BC152A81A7ADDA0CE3A2CCA277302647A40B3F94F884579AC6DD4670CB768
B11E9C08E6FB9B6461C21C9090ABDE38ABF5F2FB7C6A163784215401581C0FA0
5EA26685A6AB6351F8967C3A652C61E467ADDD5DA9CE1E60999F95EA03DCADBA
636EE42A60183BE03A25550D37BAAC6A177361F106FD1EF77946E7E21FF6F17E
0B09D91B215CA56AA2799948B07213571E2C462A273E3E1C582E991207603D64
C348DBE840D52086441A52896A2EF4305AC3F5048D9AAB82E4A256AC5BD25DCC
14DECEAFDFD4E46098B5DEFCF699852EDCCF7EE6DF2AE8A1BA43F77BFAE0B16F
08C783F559A763514CA8C3D114E79D47592A52C1E4FD7AE46E13817E658D509E
2B16B1AC6EA63DF28961F6D35D584C29AF35E6021A8B1D0C5AACE373B5ADFDA2
CC7C25BF3F6397DE4B97D012DDF18A066D93382B4E3E1EE2948F4632984DD1DC
4795465CE32DF616F42463605831229F6F3FDB8C66420045F0409EC28E5E45D7
5A5979B40534A35343C6CDC35515031721D9A41480E61BBE5F41D0173561F717
251E614ADA39D9CAFC8017D2BBD6B8A7D9ACE4567B3481B0386C247041D8535E
2059DC62BE192C837AAC57ECE8BB1256A687B9E73DC708FDD26E2A07A0FCCB85
5C0600DB53B27C1BBEF0730AF506520443AB98903180D5F6B68273A6A81DB392
890B2D8B56555758EBD98F49A60BB468812928C80AADBE5E0F8AE8B17277799D
ADD186DE3F8735C86CE4DC9122FADE97507F52B1A5DCD766880326F5D07ED228
C68D6F1256E08F598B9C405D32011C07E3EF24B33ADC2BEEE55F2CA3C9BEFEB0
4F9BC5339835342D1B1D1E2E7864C924E00C009BA28029DA8AD356C82D4B987A
DC6E6405542A7048A952657A0A94D0AAD64A28EEB99982C9C77E298B019709C5
67922CD18D730CC44A6E9C9C03CC22647CCE27B5662EE14BFFEA77A58D99E657
0D21CCBB6464E161D3B4C3DC0CBD41EB8B67CE18111FEDDEE11CFA14809418B4
1DCDFDADC8F204ED30F457E21EB21492E66094D37B04EC331B34BFB08DA5BD5F
BE5ABE603E5E26D003DEDC0151BA1DB0BAA9EF1293DE5BDDAE043D1F58177418
97175B27708F82EC3BC739F3B3CC50A2C7DF59D2EDA2A3A701217C0B4F3425EC
150F2F53EC9C7F823A35C1B13DA22F6E1688DB0D18F4B0E7320EA04EA52D1D23
9C117231F36047CC26C7B15AA6FAADA74E07F4DC00F14B621A33D7232B37614D
2014859AE78E007C8C57F2B0800817848623EE7E7DA0335A7D98088C1BE24B23
9584830E0AE0B406A03270B81D1B3D1CC8F838C72EFB71BC4E56F423C256E550
E34E89EBF764B578D2576F8171E6EFB9BD269F2C96C3335BBB610D8589DE3DA1
AEDCDEC233B6F7CAFD98E5EB6A14566E43952F8AB3EFFFA2DF5BA57E9FF04ADC
79A8E2A1971D9E5802794190B5FB7131A47C8790C1AF9D74134735BAB737648F
5ECF5D2E7B124B75922C67463FC6AFCB67B4B050E0D8F7094966E8D8C42EDAFB
FCB5A34AB0EFDF76ED504FAC574C7667917B6DC812A2C062FC744BCB4CBB8009
0201AC104B89711D037A28493C7D40BBAA55A26668428384E5EDC782A896D2D5
B67E7E5D3E1CBBEA10C3DA445AF8B51B387EF2FA5A12FBE6F8F5FF04FFF0AA8C
0A934A2259067CF3A287149E79F65339A1661D71E31E77A84D8BE1C030B4E849
E995B605C68C2F2D662DB7BFFB205F4A2C620115F61D472405D0745D36337C56
053AB2EE55ED8E3B46FF9D634AF9C2807B3E8A919BF7ACC98BCAAD21CEBEFA70
F9263F6438BB0F791F35FCA852028B2BB08E5B57F25E3E3367BF7C7EFDEEAEEF
64654A2C610F133228CD4159A997B8C81C4ACC1EAE871F26275D1C46F2A71228
3AD44F71E23E7B9D8CB24098F82793417D1D6B547900F304F0BD915D70388940
6BC6BB4F99A25171A19A3A49A4682BC2C4819445A6383A0CEC2FBBCC975064C3
A8B783644C5A9A7B45C51BD257936652E470FF4876ACD7D567468964E1D17E4F
5DE87E683451CCC4777D684E8B75FE7879670EBFE59972F3B4F85E20A056F5FC
9A73B433D6798F8132828E29E30FDDA1C6592A846B14F92D2BB812D3AEB8780B
36F2A057F3C8FF33790598EC213C88D21A75E380652B0D4308E4856ED490F5BD
A33A67149FE25942BEFDCFCBC1243659CD06477B1424840CBA441885AAB15C70
1F05F620B2EE3F5E171C57AE618560872D76E985649E8C8178769BD863EADE0D
DE389553B5D4EE8ABF2FA369CDBDD68BC74C1C627949D90ADABE106AC61BDC34
AF63527A7C44AB04726F6D2216BFCC49578C10D9AA5A83BF402ADEA76503752A
44A1E728C720ADCE158F5555C4919CBE7510AB284FCDA60C44473291851043EA
E27EB7392BC9C02F65B218065ACF4A2A12E7E6C191140C7D16890EA4739D122D
0D1910388185988AB09430CC172034413A0097E8E4EEEC00A514FBFD8CA689C9
FB1A59A36A678B81CEAB955DBD690722D33C28828CBA0911A51E5CD170620018
2D88E8374B77DD966ADBE2F693685B43EB7FC26E5C107ACD8E1CD3AB0401DA30
E75D5378A2E95E4E068AC2CC8DBBC377F964787119122E8674C39BC01464D9D4
6AFD9D742ACD9C8730C26F3A29D754F292F21B50E9819B75D7878D1449569DD7
CE9619F575219243BE5C48B6C29E5D93DB338C64544ACD8BA3C60B8DB63086CD
4E7C342CE820938C59B90336C494DF404FCBB970580C89CF3E430E4B5C648F1C
5AAC545AA7895598C44728EB40597009CEB21F94432843FD41CBE45EC38491BF
F1A492213D9B002D64B26E1EF68C939D7402AE4C3B5268DCEC1F55E1D3CFED5C
21F43524F211F2646FAF3F4A73B1707CDD2E302CE0297BE68BFEED4D98D60EC0
C331FA1FA8E94F8840E822B01B45A7F1FD0E34C95A4B414D2DC72A765C3A12B6
2E61819B8B8F6E549C3AD47F4A005933545C7F4537960466DEAD6DC011C691B1
230B986605436BB3F87716BAEDF2A009CA6CE0B3AC37A14E9E3D50F9393FD7E7
CD9C9B4E91C4C0B8D6A9F093538991E08657EA0D37561EC0357A85F2F1D9994A
73728736C1D15161CEDA7335EAEAC671A519647BA805E095ABC7ABE4796D6649
634167E28BA49AF423D23AAC9151012CA7CA16271C844A02655293A9589AA236
5408AE35CBE9FF075EF4EC925F8D82DFF3CE17EADEDC820C2BC7DD1671D8D546
B333FFAA0B13255B8608062ACFAFC4BAE24DB9DBADFADA09D939E39A69BE279C
160F8AAA24B939A48AF73A17CE378DA9A8B2F9FB6843033CCAC112CF9D4492D3
B0B8B51997F3077A185C240B8CD73DCD8BBACF71762963D6BF35985179AFEF4B
F3720D8A17CB7CFBFF4A9824518BC2311677C6900B37F6338547EA7274D01CC5
FAF067C615AFBAF3B625FB7354368E58A6C8CFB9974E6FE9F72AD2C801108A48
7C5C4C57BFAC2718DEBCFC39573842037B1E806C96BB76E310994014CC777A7B
7072BB178DDB5A2E78D9441C4008D9E72B21C20D44620648BC51B8A0AF3C5B21
7B7DE4EC1F908DA6248A818308C6021EFC68AAA131DA1233CE09066FB2D022F6
7C00417A6120E014276DD53BF924FD8FC8D62DBF94AE802273F32DE34AD2BB79
90BAF4BBCE936757788F785D315D36B5A8E7891A0ADDB26B847DB4FC969A7AA3
22B535DFD9BD86B3CFECF0D9AD58A4D30BCEC2FA55A2DD3159C47CF0D0F6ED13
E584D3FA9D83105746EA536AF600FB81772184A0679A14AEFEF3A3F15DC20DD3
D450FDA175002E11E4EA83F19A7EBD343FB951CF0B33693A5BC7C5B4DA252B4B
D9D752CE580B129019FE89FC62EE05E08A68283CD59DA8F1B072A046B3690978
496A7B4E4A39ABD78EFB7D42BAD9884536F8AA9CE3A397411CE310FA9A108FDC
6DB7779D805786104892881576FBDBD87FB608524A2B171AEF771A2070539087
6D82E338FD43A9C72F7714B8ECB03E3FC5229844C9A132436F3AE54F1CC9D069
41EAEB395B9D960DB455E7D71B26F04442E6F66BB044FCFB98AB5D0115D59D77
6346B0A8F5D6BFE8CB240E20FE02728D769CC024EDFF580C77F607C22046F362
81A4BB6083DE452A01872F5AB7A045FEF26926AB10C914BEA406BC396A8CB3A2
6AF03BCE3356885EA2181D91D3381152F8FB94F9E6C3BC8159B2A95486E78AC9
4890BC76DF88DD6D80A5E8529048F864513F09534299232FA33D4797F174AB4C
88951B4043D2B724EBFAC18A0A1B60CCBC732DF60E2DFC613CE316C63B9B8430
23AEA901FB72B0322483374E0430A29193CCFDCB327338736BC8CD82799ECB38
51FC9003F04B7C46158CC3C0C8703BDC2FD260F7A88040E423EF89DE955AB912
CA3DB5BC0C2CF534F74D86AB4BF8BCAFAC5ABE1E1E61DE252D241DDA0EEFF7C9
FEFBD77818325F307B9BB9245E9FEDB0F525CE15E5CE1C72437136BC12F8B102
C77F2C0315BA67D7A9EF59C21145EFAFDD57479BB4C89198CFFCDD2488C61BC0
62373DF3E6B62F53EA0ABF2151C590ACD370721AE1D831AFC1B28E87597356F5
6923A192FEBC63B357B2BF3323891D8CEA75C37B8FEF56A4083A4523F8F83738
26B1E6099D34CFEC32A10B2FFCBCC0F324876EDD1110AB3540D641BA415F44E6
9BBC0473FB420CEB68575A6664E99CF248B0511749F0B11EE124A87086EA7E9F
B73F3A8AE1D5585CA6FB3A72456E06C3BF32AA6C130B1209D9B969AC4A13C8A4
F14AE884A8779D9C3759C2BCCCBCDE519673CA73CC606EEC30E9D2BBAA2EE540
2E8683D8E61EB78FABDD8E7C111D7F5A772E9319692BCA9D462FA4E064FA9C3C
62BAE54D0AB9C0B183F9F45699E52301A20D409FD6F95823392FCCBA892D7BFD
4590D2FCB9F75B90CB94609467794E6F0AE74F37E9999014CBBE9BFA1BE5F64E
B9E57A6F904E89576042A9BFBD00DBF255BC5B26089049AE818EFA4973F9A776
0E9517ED7470822328DCA1A7DDA0E0821F59EE4A7F4E3407ABDB0D0F4703A1D4
A389A53DFFE0E49964F60DED12E1F9A2F703FB29E4593CE8C070D7261651E8FF
7C2EC6E37E497195BBCDA16056F8E192B28067010CD5F001F4F861DC7D83B3F9
94B2B59F6EFF26EFF0E50C43FB20723041DC07F63FEACCBBA360BCC8FEEE0799
911159C30E4090004DB4B12A6B26B0532A8EAE44AEC0A912F0D7D1FD51A62A32
141F8CA382B6E41CEC4D70F73B81597A56AD2795B3C835D5ED894847D49DAAF4
B771485F39ECDD20D29EA4133DCCDF90C9CA0F1F2385317B2053B1A53FF8F4C4
0BB4DECE37AB4D36CA7CC8E339ACBB356296EA6C459C740074DA8B2B6DBA2ED2
5F1CCEE6432198244CDA15DEECB51A2CD7CD5D16AB8425
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
cleartomark
%%EndFont 
TeXDict begin 39158280 55380996 1000 600 600 (./gperf.dvi)
@start /Fa 209[43 46[{ TeX74afc74cEncoding ReEncodeFont }1
119.552 /CMBXTI10 rf /Fb 209[24 46[{ TeX74afc74cEncoding ReEncodeFont }
1 74.7198 /CMTI9 rf /Fc 130[39 1[39 39 39 39 39 1[39
39 39 39 1[39 39 39 39 39 39 1[39 39 39 39 39 39 39 39
39 1[39 39[39 9[39 7[39 37[{ TeX09fbbfacEncoding ReEncodeFont }29
74.7198 /CMTT9 rf /Fd 133[34 41 1[55 41 43 30 30 30 1[43
38 43 64 21 2[21 43 38 23 34 43 34 43 38 21 10[58 1[43
4[58 70 48 60 39 28 2[50 1[59 55 54 58 7[38 38 38 1[38
38 38 38 38 38 3[21 4[21 39[{ TeXf7b6d320Encoding ReEncodeFont }47
74.7198 /CMR9 rf /Fe 147[25 10[44 97[{
 TeXf7b6d320Encoding ReEncodeFont }2 90.9091 /CMB10 rf
/Ff 214[35 35 40[{ TeXf7b6d320Encoding ReEncodeFont }2
90.9091 /CMSS10 rf /Fg 136[83 2[45 45 47 2[57 64 4[32
64 2[53 64 2[56 97[{ TeXf7b6d320Encoding ReEncodeFont }11
99.6264 /CMBX10 rf /Fh 138[52 52 52 4[52 4[52 1[52 1[52
52 100[{ TeX09fbbfacEncoding ReEncodeFont }8 99.6264
/CMTT10 rf /Fi 138[56 56 56 56 3[56 4[56 3[56 56 56 99[{
 TeX09fbbfacEncoding ReEncodeFont }9 109.091 /CMTT12
rf /Fj 134[65 1[89 65 68 48 48 50 1[68 61 68 102 34 2[34
68 61 37 56 68 55 1[60 9[127 1[94 6[96 2[96 1[46 1[96
77 81 94 89 1[93 12[61 61 61 61 2[34 41 45[{
 TeXf7b6d320Encoding ReEncodeFont }37 109.091 /CMBX12
rf /Fk 141[62 1[62 8[62 62 62 101[{ TeX09fbbfacEncoding ReEncodeFont }5
119.552 /CMTT12 rf /Fl 133[37 44 42 1[42 49 30 37 38
1[46 46 51 74 23 42 1[28 46 42 28 42 46 42 42 46 4[47
4[91 1[68 65 51 66 1[62 70 68 82 57 3[68 70 59 62 1[65
1[68 6[28 11[28 33 5[28 4[47 34[{ TeX74afc74cEncoding ReEncodeFont }45
90.9091 /CMTI10 rf /Fm 141[74 1[74 8[74 74 74 101[{
 TeX09fbbfacEncoding ReEncodeFont }5 143.462 /CMTT12
rf /Fn 129[48 48 1[48 48 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 48 48 2[48
1[48 48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
48 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 48 48 48 48 48 48 48 48 48 48
48 48 48 34[{ TeX09fbbfacEncoding ReEncodeFont }86 90.9091
/CMTT10 rf /Fo 133[40 48 1[66 48 51 35 36 36 1[51 45
51 76 25 48 28 25 51 45 28 40 51 40 51 45 9[93 2[66 51
8[47 3[59 2[66 17[45 2[25 30 5[25 26[51 12[{
 TeXf7b6d320Encoding ReEncodeFont }35 90.9091 /CMSL10
rf /Fp 134[85 85 117 85 90 63 64 66 1[90 81 90 134 45
85 1[45 90 81 49 74 90 72 90 78 11[124 112 90 120 1[110
1[126 1[97 126 1[60 126 127 1[106 124 117 115 122 9[81
81 81 81 81 81 81 3[54 45[{ TeXf7b6d320Encoding ReEncodeFont }47
143.462 /CMBX12 rf /Fq 240[45 1[91 13[{
 TeXbbad153fEncoding ReEncodeFont }2 90.9091 /CMSY10
rf /Fr 134[71 71 97 71 75 52 53 55 1[75 67 75 112 37
71 1[37 75 67 41 61 75 60 75 65 7[102 1[139 1[103 94
75 100 1[92 101 105 128 81 105 69 50 105 106 85 88 103
97 96 102 7[67 67 67 67 67 67 67 67 67 67 1[37 45 37
6[112 24[75 78 11[{ TeXf7b6d320Encoding ReEncodeFont }61
119.552 /CMBX12 rf /Fs 131[91 1[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 1[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 3[71 1[25 25 45
45 45 45 45 45 45 45 45 45 45 25 30 25 1[45 35 35 25
71 1[45 76 45 19[76 51 51 53 11[{ TeXf7b6d320Encoding ReEncodeFont }85
90.9091 /CMR10 rf /Ft 141[89 1[89 8[89 89 89 101[{
 TeX09fbbfacEncoding ReEncodeFont }5 172.154 /CMTT12
rf /Fu 138[108 75 76 79 2[97 5[54 3[88 108 14[149 13[152
19[97 2[97 1[54 6[54 39[{ TeXf7b6d320Encoding ReEncodeFont }14
172.154 /CMBX12 rf end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 600dpi
TeXDict begin
%%BeginPaperSize: a4
a4
%%EndPaperSize
 end
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fu(User's)65 b(Guide)g(to)f
Ft(gperf)f Fu(3.0.3)p 150 1423 3600 34 v 2005 1519 a
Fs(The)30 b(GNU)h(P)m(erfect)h(Hash)e(F)-8 b(unction)31
b(Generator)2597 1627 y(Edition)f(3.0.3,)j(31)e(Marc)m(h)g(2007)150
4958 y Fr(Douglas)46 b(C.)f(Sc)l(hmidt)150 5091 y(Bruno)f(Haible)p
150 5141 3600 17 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 150 4152 a Fs(Cop)m(yrigh)m(t)602
4149 y(c)577 4152 y Fq(\015)30 b Fs(1989-2007)k(F)-8
b(ree)32 b(Soft)m(w)m(are)f(F)-8 b(oundation,)32 b(Inc.)150
4286 y(P)m(ermission)g(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d
(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m
(vided)f(the)150 4396 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s
(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g(copies.)150
4530 y(P)m(ermission)38 b(is)h(gran)m(ted)f(to)h(cop)m(y)g(and)f
(distribute)g(mo)s(di\014ed)f(v)m(ersions)h(of)h(this)f(man)m(ual)g
(under)f(the)150 4640 y(conditions)44 b(for)f(v)m(erbatim)h(cop)m
(ying,)k(pro)m(vided)43 b(also)h(that)h(the)e(section)i(en)m(titled)g
(\\GNU)f(General)150 4749 y(Public)27 b(License")g(is)g(included)f
(exactly)j(as)e(in)f(the)h(original,)i(and)d(pro)m(vided)h(that)g(the)g
(en)m(tire)h(resulting)150 4859 y(deriv)m(ed)i(w)m(ork)h(is)f
(distributed)g(under)f(the)h(terms)g(of)h(a)g(p)s(ermission)e(notice)j
(iden)m(tical)g(to)f(this)f(one.)150 4994 y(P)m(ermission)j(is)h(gran)m
(ted)f(to)h(cop)m(y)g(and)f(distribute)f(translations)i(of)g(this)f
(man)m(ual)g(in)m(to)h(another)f(lan-)150 5103 y(guage,)41
b(under)35 b(the)j(ab)s(o)m(v)m(e)g(conditions)g(for)f(mo)s(di\014ed)g
(v)m(ersions,)i(except)g(that)e(the)h(section)g(en)m(titled)150
5213 y(\\GNU)e(General)h(Public)e(License")h(ma)m(y)g(b)s(e)e(included)
h(in)g(a)h(translation)g(appro)m(v)m(ed)f(b)m(y)h(the)f(author)150
5322 y(instead)c(of)f(in)g(the)h(original)g(English.)p
eop end
%%Page: 1 3
TeXDict begin 1 2 bop 150 -116 a Fs(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(1)150 299 y Fp(GNU)54 b(GENERAL)g(PUBLIC)f(LICENSE)1537
564 y Fs(V)-8 b(ersion)31 b(2,)g(June)f(1991)390 720
y(Cop)m(yrigh)m(t)842 717 y(c)817 720 y Fq(\015)g Fs(1989,)j(1991)f(F)
-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.,)390
824 y(59)g(T)-8 b(emple)31 b(Place,)h(Suite)e(330,)i(Boston,)g(MA)e
(02111-1307,)35 b(USA.)390 1032 y(Ev)m(ery)m(one)c(is)g(p)s(ermitted)f
(to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390
1135 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f
(is)f(not)h(allo)m(w)m(ed.)150 1462 y Fr(Pream)l(ble)275
1683 y Fs(The)39 b(licenses)j(for)e(most)h(soft)m(w)m(are)g(are)g
(designed)f(to)h(tak)m(e)h(a)m(w)m(a)m(y)h(y)m(our)d(freedom)g(to)h
(share)g(and)150 1793 y(c)m(hange)g(it.)71 b(By)40 b(con)m(trast,)k
(the)c(GNU)h(General)g(Public)f(License)h(is)f(in)m(tended)g(to)g
(guaran)m(tee)i(y)m(our)150 1902 y(freedom)24 b(to)h(share)f(and)f(c)m
(hange)i(free)f(soft)m(w)m(are|to)j(mak)m(e)e(sure)e(the)h(soft)m(w)m
(are)i(is)e(free)g(for)g(all)h(its)g(users.)150 2012
y(This)39 b(General)i(Public)e(License)i(applies)f(to)g(most)g(of)g
(the)g(F)-8 b(ree)41 b(Soft)m(w)m(are)g(F)-8 b(oundation's)40
b(soft)m(w)m(are)150 2121 y(and)35 b(to)h(an)m(y)g(other)g(program)f
(whose)h(authors)f(commit)h(to)h(using)e(it.)56 b(\(Some)36
b(other)g(F)-8 b(ree)37 b(Soft)m(w)m(are)150 2231 y(F)-8
b(oundation)32 b(soft)m(w)m(are)h(is)e(co)m(v)m(ered)i(b)m(y)e(the)g
(GNU)h(Library)f(General)h(Public)f(License)g(instead.\))44
b(Y)-8 b(ou)150 2340 y(can)31 b(apply)f(it)h(to)g(y)m(our)f(programs,)g
(to)s(o.)275 2503 y(When)37 b(w)m(e)g(sp)s(eak)g(of)g(free)h(soft)m(w)m
(are,)i(w)m(e)e(are)g(referring)e(to)i(freedom,)h(not)f(price.)61
b(Our)36 b(General)150 2612 y(Public)e(Licenses)g(are)h(designed)f(to)h
(mak)m(e)g(sure)f(that)g(y)m(ou)h(ha)m(v)m(e)g(the)g(freedom)f(to)g
(distribute)g(copies)150 2722 y(of)i(free)h(soft)m(w)m(are)g(\(and)f(c)
m(harge)i(for)e(this)g(service)h(if)f(y)m(ou)h(wish\),)h(that)e(y)m(ou)
h(receiv)m(e)h(source)e(co)s(de)h(or)150 2832 y(can)e(get)h(it)f(if)f
(y)m(ou)h(w)m(an)m(t)h(it,)g(that)f(y)m(ou)g(can)g(c)m(hange)h(the)e
(soft)m(w)m(are)i(or)f(use)f(pieces)i(of)e(it)h(in)g(new)f(free)150
2941 y(programs;)c(and)g(that)h(y)m(ou)g(kno)m(w)f(y)m(ou)h(can)f(do)h
(these)g(things.)275 3104 y(T)-8 b(o)40 b(protect)h(y)m(our)f(righ)m
(ts,)j(w)m(e)d(need)g(to)h(mak)m(e)g(restrictions)f(that)h(forbid)e(an)
m(y)m(one)i(to)g(den)m(y)f(y)m(ou)150 3213 y(these)d(righ)m(ts)g(or)f
(to)h(ask)g(y)m(ou)f(to)h(surrender)e(the)h(righ)m(ts.)59
b(These)36 b(restrictions)h(translate)h(to)f(certain)150
3323 y(resp)s(onsibilities)30 b(for)h(y)m(ou)f(if)h(y)m(ou)f
(distribute)g(copies)h(of)g(the)f(soft)m(w)m(are,)j(or)d(if)g(y)m(ou)h
(mo)s(dify)f(it.)275 3485 y(F)-8 b(or)30 b(example,)g(if)g(y)m(ou)f
(distribute)g(copies)i(of)e(suc)m(h)g(a)h(program,)g(whether)e(gratis)j
(or)e(for)g(a)h(fee,)h(y)m(ou)150 3595 y(m)m(ust)i(giv)m(e)i(the)f
(recipien)m(ts)g(all)h(the)e(righ)m(ts)h(that)g(y)m(ou)g(ha)m(v)m(e.)51
b(Y)-8 b(ou)34 b(m)m(ust)g(mak)m(e)g(sure)f(that)h(they)-8
b(,)35 b(to)s(o,)150 3704 y(receiv)m(e)k(or)f(can)g(get)g(the)g(source)
g(co)s(de.)62 b(And)37 b(y)m(ou)h(m)m(ust)f(sho)m(w)h(them)f(these)h
(terms)f(so)h(they)g(kno)m(w)150 3814 y(their)30 b(righ)m(ts.)275
3976 y(W)-8 b(e)29 b(protect)g(y)m(our)f(righ)m(ts)g(with)g(t)m(w)m(o)h
(steps:)40 b(\(1\))29 b(cop)m(yrigh)m(t)g(the)f(soft)m(w)m(are,)j(and)c
(\(2\))i(o\013er)g(y)m(ou)f(this)150 4086 y(license)j(whic)m(h)f(giv)m
(es)i(y)m(ou)f(legal)h(p)s(ermission)d(to)i(cop)m(y)-8
b(,)32 b(distribute)e(and/or)g(mo)s(dify)g(the)h(soft)m(w)m(are.)275
4248 y(Also,)46 b(for)c(eac)m(h)i(author's)f(protection)g(and)f(ours,)j
(w)m(e)e(w)m(an)m(t)h(to)f(mak)m(e)h(certain)f(that)g(ev)m(ery)m(one)
150 4358 y(understands)29 b(that)j(there)f(is)g(no)g(w)m(arran)m(t)m(y)
h(for)f(this)g(free)g(soft)m(w)m(are.)44 b(If)30 b(the)i(soft)m(w)m
(are)g(is)f(mo)s(di\014ed)f(b)m(y)150 4467 y(someone)h(else)f(and)f
(passed)h(on,)g(w)m(e)g(w)m(an)m(t)h(its)f(recipien)m(ts)h(to)f(kno)m
(w)g(that)g(what)g(they)g(ha)m(v)m(e)h(is)f(not)g(the)150
4577 y(original,)h(so)e(that)g(an)m(y)h(problems)e(in)m(tro)s(duced)g
(b)m(y)h(others)g(will)g(not)g(re\015ect)h(on)f(the)g(original)h
(authors')150 4686 y(reputations.)275 4849 y(Finally)-8
b(,)27 b(an)m(y)e(free)f(program)g(is)h(threatened)f(constan)m(tly)i(b)
m(y)f(soft)m(w)m(are)h(paten)m(ts.)39 b(W)-8 b(e)26 b(wish)d(to)i(a)m
(v)m(oid)150 4958 y(the)30 b(danger)g(that)h(redistributors)e(of)i(a)f
(free)h(program)f(will)g(individually)g(obtain)h(paten)m(t)g(licenses,)
g(in)150 5068 y(e\013ect)39 b(making)f(the)g(program)f(proprietary)-8
b(.)63 b(T)-8 b(o)38 b(prev)m(en)m(t)g(this,)i(w)m(e)e(ha)m(v)m(e)h
(made)f(it)g(clear)g(that)h(an)m(y)150 5178 y(paten)m(t)31
b(m)m(ust)g(b)s(e)e(licensed)i(for)f(ev)m(ery)m(one's)i(free)f(use)f
(or)g(not)h(licensed)g(at)g(all.)275 5340 y(The)e(precise)i(terms)f
(and)g(conditions)h(for)f(cop)m(ying,)i(distribution)d(and)h(mo)s
(di\014cation)h(follo)m(w.)p eop end
%%Page: 2 4
TeXDict begin 2 3 bop 150 -116 a Fs(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(2)150 166 y Fr(TERMS)44 b(AND)h(CONDITIONS)g(F)l(OR)g
(COPYING,)150 299 y(DISTRIBUTION)f(AND)h(MODIFICA)-11
b(TION)199 515 y Fs(0.)61 b(This)42 b(License)h(applies)f(to)i(an)m(y)f
(program)f(or)g(other)h(w)m(ork)g(whic)m(h)f(con)m(tains)i(a)f(notice)g
(placed)330 625 y(b)m(y)33 b(the)h(cop)m(yrigh)m(t)h(holder)e(sa)m
(ying)i(it)f(ma)m(y)g(b)s(e)f(distributed)g(under)f(the)h(terms)h(of)g
(this)f(General)330 735 y(Public)39 b(License.)68 b(The)39
b(\\Program",)j(b)s(elo)m(w,)g(refers)d(to)h(an)m(y)g(suc)m(h)f
(program)g(or)g(w)m(ork,)j(and)d(a)330 844 y(\\w)m(ork)29
b(based)f(on)h(the)g(Program")g(means)f(either)i(the)e(Program)h(or)g
(an)m(y)g(deriv)-5 b(ativ)m(e)30 b(w)m(ork)e(under)330
954 y(cop)m(yrigh)m(t)33 b(la)m(w:)43 b(that)32 b(is)f(to)i(sa)m(y)-8
b(,)33 b(a)e(w)m(ork)h(con)m(taining)h(the)e(Program)h(or)f(a)h(p)s
(ortion)f(of)g(it,)h(either)330 1063 y(v)m(erbatim)e(or)f(with)f(mo)s
(di\014cations)h(and/or)g(translated)h(in)m(to)g(another)f(language.)41
b(\(Hereinafter,)330 1173 y(translation)28 b(is)f(included)g(without)g
(limitation)i(in)e(the)g(term)g(\\mo)s(di\014cation".\))42
b(Eac)m(h)27 b(licensee)i(is)330 1282 y(addressed)g(as)i(\\y)m(ou".)330
1429 y(Activities)41 b(other)e(than)f(cop)m(ying,)43
b(distribution)38 b(and)g(mo)s(di\014cation)h(are)g(not)g(co)m(v)m
(ered)h(b)m(y)f(this)330 1538 y(License;)34 b(they)f(are)f(outside)h
(its)f(scop)s(e.)47 b(The)32 b(act)h(of)g(running)d(the)j(Program)f(is)
g(not)h(restricted,)330 1648 y(and)24 b(the)g(output)g(from)g(the)h
(Program)f(is)h(co)m(v)m(ered)h(only)e(if)g(its)h(con)m(ten)m(ts)h
(constitute)g(a)f(w)m(ork)f(based)330 1758 y(on)h(the)h(Program)f
(\(indep)s(enden)m(t)g(of)h(ha)m(ving)g(b)s(een)e(made)i(b)m(y)f
(running)f(the)h(Program\).)40 b(Whether)330 1867 y(that)31
b(is)f(true)h(dep)s(ends)d(on)i(what)h(the)f(Program)h(do)s(es.)199
2014 y(1.)61 b(Y)-8 b(ou)42 b(ma)m(y)g(cop)m(y)g(and)e(distribute)h(v)m
(erbatim)h(copies)g(of)g(the)f(Program's)h(source)f(co)s(de)h(as)g(y)m
(ou)330 2123 y(receiv)m(e)33 b(it,)f(in)f(an)m(y)g(medium,)g(pro)m
(vided)g(that)g(y)m(ou)h(conspicuously)f(and)f(appropriately)i(publish)
330 2233 y(on)h(eac)m(h)h(cop)m(y)g(an)f(appropriate)g(cop)m(yrigh)m(t)
i(notice)f(and)f(disclaimer)g(of)h(w)m(arran)m(t)m(y;)h(k)m(eep)f(in)m
(tact)330 2342 y(all)f(the)e(notices)i(that)g(refer)e(to)h(this)g
(License)g(and)f(to)i(the)f(absence)g(of)g(an)m(y)g(w)m(arran)m(t)m(y;)
h(and)e(giv)m(e)330 2452 y(an)m(y)g(other)f(recipien)m(ts)i(of)e(the)h
(Program)f(a)h(cop)m(y)g(of)g(this)f(License)h(along)g(with)f(the)h
(Program.)330 2598 y(Y)-8 b(ou)31 b(ma)m(y)g(c)m(harge)h(a)f(fee)g(for)
f(the)h(ph)m(ysical)g(act)h(of)f(transferring)f(a)h(cop)m(y)-8
b(,)32 b(and)e(y)m(ou)h(ma)m(y)g(at)g(y)m(our)330 2708
y(option)g(o\013er)g(w)m(arran)m(t)m(y)g(protection)h(in)e(exc)m(hange)
i(for)e(a)g(fee.)199 2854 y(2.)61 b(Y)-8 b(ou)24 b(ma)m(y)h(mo)s(dify)e
(y)m(our)h(cop)m(y)g(or)g(copies)h(of)f(the)g(Program)g(or)g(an)m(y)g
(p)s(ortion)f(of)h(it,)i(th)m(us)e(forming)g(a)330 2964
y(w)m(ork)j(based)g(on)f(the)h(Program,)h(and)f(cop)m(y)g(and)g
(distribute)f(suc)m(h)h(mo)s(di\014cations)g(or)f(w)m(ork)h(under)330
3074 y(the)k(terms)f(of)g(Section)i(1)e(ab)s(o)m(v)m(e,)i(pro)m(vided)e
(that)h(y)m(ou)g(also)g(meet)g(all)h(of)e(these)h(conditions:)379
3220 y(a.)61 b(Y)-8 b(ou)43 b(m)m(ust)f(cause)i(the)e(mo)s(di\014ed)g
(\014les)g(to)h(carry)g(prominen)m(t)f(notices)i(stating)f(that)h(y)m
(ou)510 3330 y(c)m(hanged)31 b(the)g(\014les)f(and)g(the)g(date)h(of)g
(an)m(y)g(c)m(hange.)374 3476 y(b.)60 b(Y)-8 b(ou)31
b(m)m(ust)g(cause)g(an)m(y)h(w)m(ork)f(that)g(y)m(ou)g(distribute)f(or)
h(publish,)f(that)h(in)g(whole)g(or)g(in)f(part)510 3586
y(con)m(tains)36 b(or)g(is)f(deriv)m(ed)g(from)g(the)g(Program)g(or)g
(an)m(y)h(part)f(thereof,)i(to)f(b)s(e)e(licensed)i(as)g(a)510
3695 y(whole)31 b(at)g(no)f(c)m(harge)i(to)f(all)g(third)e(parties)i
(under)e(the)i(terms)f(of)g(this)h(License.)384 3842
y(c.)61 b(If)39 b(the)h(mo)s(di\014ed)f(program)g(normally)h(reads)g
(commands)f(in)m(teractiv)m(ely)k(when)c(run,)i(y)m(ou)510
3951 y(m)m(ust)30 b(cause)h(it,)g(when)f(started)h(running)d(for)j(suc)
m(h)f(in)m(teractiv)m(e)j(use)d(in)g(the)h(most)g(ordinary)510
4061 y(w)m(a)m(y)-8 b(,)25 b(to)d(prin)m(t)f(or)g(displa)m(y)h(an)f
(announcemen)m(t)g(including)g(an)h(appropriate)f(cop)m(yrigh)m(t)i
(notice)510 4170 y(and)h(a)g(notice)i(that)e(there)h(is)f(no)g(w)m
(arran)m(t)m(y)h(\(or)g(else,)h(sa)m(ying)f(that)g(y)m(ou)g(pro)m(vide)
f(a)h(w)m(arran)m(t)m(y\))510 4280 y(and)35 b(that)g(users)g(ma)m(y)g
(redistribute)g(the)h(program)f(under)e(these)j(conditions,)h(and)e
(telling)510 4390 y(the)f(user)f(ho)m(w)h(to)g(view)g(a)h(cop)m(y)f(of)
g(this)g(License.)51 b(\(Exception:)e(if)33 b(the)h(Program)g(itself)h
(is)510 4499 y(in)m(teractiv)m(e)i(but)c(do)s(es)h(not)g(normally)g
(prin)m(t)g(suc)m(h)f(an)h(announcemen)m(t,)h(y)m(our)f(w)m(ork)g
(based)510 4609 y(on)c(the)h(Program)f(is)h(not)f(required)g(to)h(prin)
m(t)f(an)g(announcemen)m(t.\))330 4792 y(These)41 b(requiremen)m(ts)h
(apply)f(to)h(the)g(mo)s(di\014ed)f(w)m(ork)g(as)h(a)g(whole.)74
b(If)42 b(iden)m(ti\014able)g(sections)330 4902 y(of)g(that)h(w)m(ork)g
(are)f(not)h(deriv)m(ed)f(from)g(the)h(Program,)i(and)d(can)h(b)s(e)e
(reasonably)i(considered)330 5011 y(indep)s(enden)m(t)25
b(and)i(separate)g(w)m(orks)g(in)f(themselv)m(es,)j(then)d(this)h
(License,)h(and)e(its)i(terms,)f(do)g(not)330 5121 y(apply)37
b(to)h(those)f(sections)h(when)f(y)m(ou)g(distribute)g(them)g(as)g
(separate)h(w)m(orks.)61 b(But)37 b(when)g(y)m(ou)330
5230 y(distribute)29 b(the)g(same)g(sections)i(as)e(part)g(of)g(a)h
(whole)f(whic)m(h)g(is)g(a)g(w)m(ork)h(based)e(on)h(the)h(Program,)330
5340 y(the)h(distribution)g(of)g(the)h(whole)f(m)m(ust)g(b)s(e)g(on)g
(the)g(terms)g(of)h(this)f(License,)h(whose)f(p)s(ermissions)p
eop end
%%Page: 3 5
TeXDict begin 3 4 bop 150 -116 a Fs(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(3)330 299 y(for)22 b(other)h(licensees)g(extend)g(to)g
(the)f(en)m(tire)h(whole,)i(and)c(th)m(us)h(to)h(eac)m(h)h(and)d(ev)m
(ery)i(part)g(regardless)330 408 y(of)31 b(who)e(wrote)i(it.)330
538 y(Th)m(us,)48 b(it)e(is)f(not)h(the)f(in)m(ten)m(t)h(of)g(this)f
(section)h(to)g(claim)h(righ)m(ts)e(or)g(con)m(test)i(y)m(our)f(righ)m
(ts)f(to)330 648 y(w)m(ork)34 b(written)f(en)m(tirely)i(b)m(y)f(y)m
(ou;)h(rather,)g(the)f(in)m(ten)m(t)h(is)e(to)i(exercise)f(the)g(righ)m
(t)g(to)h(con)m(trol)g(the)330 757 y(distribution)30
b(of)g(deriv)-5 b(ativ)m(e)32 b(or)f(collectiv)m(e)i(w)m(orks)e(based)f
(on)g(the)h(Program.)330 887 y(In)41 b(addition,)j(mere)d(aggregation)j
(of)e(another)f(w)m(ork)g(not)h(based)f(on)g(the)g(Program)h(with)f
(the)330 996 y(Program)22 b(\(or)g(with)f(a)h(w)m(ork)g(based)f(on)h
(the)g(Program\))g(on)f(a)h(v)m(olume)h(of)f(a)g(storage)h(or)f
(distribution)330 1106 y(medium)29 b(do)s(es)i(not)f(bring)g(the)g
(other)h(w)m(ork)f(under)f(the)i(scop)s(e)f(of)h(this)f(License.)199
1235 y(3.)61 b(Y)-8 b(ou)38 b(ma)m(y)f(cop)m(y)h(and)f(distribute)f
(the)i(Program)f(\(or)g(a)h(w)m(ork)f(based)g(on)g(it,)j(under)35
b(Section)j(2\))330 1345 y(in)30 b(ob)5 b(ject)31 b(co)s(de)g(or)g
(executable)h(form)e(under)e(the)j(terms)f(of)h(Sections)g(1)g(and)f(2)
h(ab)s(o)m(v)m(e)g(pro)m(vided)330 1455 y(that)g(y)m(ou)g(also)g(do)f
(one)h(of)f(the)h(follo)m(wing:)379 1584 y(a.)61 b(Accompan)m(y)47
b(it)f(with)f(the)h(complete)h(corresp)s(onding)e(mac)m(hine-readable)i
(source)e(co)s(de,)510 1694 y(whic)m(h)26 b(m)m(ust)g(b)s(e)f
(distributed)g(under)f(the)j(terms)e(of)i(Sections)f(1)h(and)e(2)h(ab)s
(o)m(v)m(e)i(on)d(a)i(medium)510 1803 y(customarily)k(used)f(for)g
(soft)m(w)m(are)i(in)m(terc)m(hange;)g(or,)374 1933 y(b.)60
b(Accompan)m(y)30 b(it)g(with)f(a)h(written)f(o\013er,)i(v)-5
b(alid)29 b(for)g(at)i(least)f(three)g(y)m(ears,)g(to)g(giv)m(e)h(an)m
(y)f(third)510 2042 y(part)m(y)-8 b(,)32 b(for)f(a)h(c)m(harge)g(no)f
(more)h(than)f(y)m(our)g(cost)h(of)f(ph)m(ysically)i(p)s(erforming)d
(source)h(distri-)510 2152 y(bution,)d(a)g(complete)i(mac)m
(hine-readable)f(cop)m(y)f(of)g(the)g(corresp)s(onding)f(source)h(co)s
(de,)h(to)g(b)s(e)510 2262 y(distributed)k(under)g(the)h(terms)g(of)h
(Sections)g(1)f(and)g(2)h(ab)s(o)m(v)m(e)g(on)f(a)h(medium)e
(customarily)510 2371 y(used)d(for)g(soft)m(w)m(are)i(in)m(terc)m
(hange;)g(or,)384 2501 y(c.)61 b(Accompan)m(y)33 b(it)f(with)g(the)g
(information)g(y)m(ou)g(receiv)m(ed)h(as)f(to)g(the)g(o\013er)g(to)h
(distribute)e(cor-)510 2610 y(resp)s(onding)h(source)h(co)s(de.)50
b(\(This)32 b(alternativ)m(e)k(is)d(allo)m(w)m(ed)i(only)f(for)f
(noncommercial)h(dis-)510 2720 y(tribution)e(and)f(only)h(if)g(y)m(ou)h
(receiv)m(ed)g(the)f(program)g(in)g(ob)5 b(ject)33 b(co)s(de)f(or)g
(executable)h(form)510 2829 y(with)d(suc)m(h)g(an)g(o\013er,)h(in)f
(accord)i(with)e(Subsection)g(b)g(ab)s(o)m(v)m(e.\))330
2979 y(The)j(source)h(co)s(de)g(for)f(a)h(w)m(ork)g(means)f(the)h
(preferred)e(form)h(of)h(the)g(w)m(ork)f(for)h(making)g(mo)s(di\014-)
330 3088 y(cations)e(to)f(it.)41 b(F)-8 b(or)31 b(an)f(executable)i(w)m
(ork,)f(complete)g(source)g(co)s(de)f(means)h(all)g(the)f(source)h(co)s
(de)330 3198 y(for)25 b(all)i(mo)s(dules)e(it)h(con)m(tains,)i(plus)c
(an)m(y)i(asso)s(ciated)h(in)m(terface)h(de\014nition)d(\014les,)i
(plus)d(the)i(scripts)330 3308 y(used)41 b(to)i(con)m(trol)h
(compilation)f(and)f(installation)i(of)e(the)h(executable.)77
b(Ho)m(w)m(ev)m(er,)48 b(as)42 b(a)g(sp)s(e-)330 3417
y(cial)32 b(exception,)h(the)e(source)g(co)s(de)g(distributed)f(need)g
(not)h(include)g(an)m(ything)g(that)h(is)f(normally)330
3527 y(distributed)39 b(\(in)g(either)h(source)g(or)f(binary)g(form\))h
(with)f(the)h(ma)5 b(jor)39 b(comp)s(onen)m(ts)h(\(compiler,)330
3636 y(k)m(ernel,)c(and)e(so)g(on\))g(of)h(the)f(op)s(erating)h(system)
f(on)g(whic)m(h)g(the)g(executable)i(runs,)e(unless)f(that)330
3746 y(comp)s(onen)m(t)e(itself)g(accompanies)h(the)e(executable.)330
3875 y(If)39 b(distribution)f(of)i(executable)h(or)e(ob)5
b(ject)40 b(co)s(de)f(is)h(made)f(b)m(y)g(o\013ering)h(access)g(to)g
(cop)m(y)g(from)330 3985 y(a)e(designated)g(place,)i(then)e(o\013ering)
g(equiv)-5 b(alen)m(t)39 b(access)f(to)h(cop)m(y)f(the)f(source)h(co)s
(de)g(from)f(the)330 4095 y(same)29 b(place)g(coun)m(ts)f(as)h
(distribution)e(of)h(the)h(source)f(co)s(de,)h(ev)m(en)g(though)e
(third)h(parties)g(are)h(not)330 4204 y(comp)s(elled)i(to)g(cop)m(y)g
(the)g(source)f(along)i(with)e(the)g(ob)5 b(ject)31 b(co)s(de.)199
4334 y(4.)61 b(Y)-8 b(ou)35 b(ma)m(y)h(not)f(cop)m(y)-8
b(,)37 b(mo)s(dify)-8 b(,)36 b(sublicense,)g(or)e(distribute)h(the)g
(Program)f(except)i(as)f(expressly)330 4443 y(pro)m(vided)40
b(under)f(this)i(License.)71 b(An)m(y)41 b(attempt)h(otherwise)f(to)g
(cop)m(y)-8 b(,)45 b(mo)s(dify)-8 b(,)43 b(sublicense)d(or)330
4553 y(distribute)26 b(the)h(Program)g(is)f(v)m(oid,)i(and)e(will)h
(automatically)j(terminate)d(y)m(our)g(righ)m(ts)g(under)e(this)330
4663 y(License.)71 b(Ho)m(w)m(ev)m(er,)45 b(parties)c(who)f(ha)m(v)m(e)
h(receiv)m(ed)h(copies,)i(or)c(righ)m(ts,)k(from)c(y)m(ou)g(under)f
(this)330 4772 y(License)e(will)g(not)g(ha)m(v)m(e)h(their)f(licenses)g
(terminated)h(so)f(long)g(as)g(suc)m(h)f(parties)h(remain)g(in)f(full)
330 4882 y(compliance.)199 5011 y(5.)61 b(Y)-8 b(ou)38
b(are)g(not)g(required)e(to)i(accept)h(this)f(License,)i(since)e(y)m
(ou)f(ha)m(v)m(e)i(not)f(signed)f(it.)63 b(Ho)m(w)m(ev)m(er,)330
5121 y(nothing)24 b(else)g(gran)m(ts)h(y)m(ou)f(p)s(ermission)e(to)j
(mo)s(dify)e(or)g(distribute)h(the)g(Program)g(or)f(its)h(deriv)-5
b(ativ)m(e)330 5230 y(w)m(orks.)38 b(These)23 b(actions)h(are)g
(prohibited)e(b)m(y)h(la)m(w)h(if)f(y)m(ou)g(do)g(not)h(accept)g(this)f
(License.)39 b(Therefore,)330 5340 y(b)m(y)d(mo)s(difying)f(or)h
(distributing)f(the)h(Program)g(\(or)h(an)m(y)f(w)m(ork)g(based)g(on)f
(the)i(Program\),)h(y)m(ou)p eop end
%%Page: 4 6
TeXDict begin 4 5 bop 150 -116 a Fs(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(4)330 299 y(indicate)33 b(y)m(our)g(acceptance)h(of)f
(this)f(License)h(to)h(do)e(so,)h(and)f(all)h(its)g(terms)f(and)g
(conditions)h(for)330 408 y(cop)m(ying,)f(distributing)d(or)i(mo)s
(difying)e(the)i(Program)f(or)h(w)m(orks)f(based)g(on)g(it.)199
545 y(6.)61 b(Eac)m(h)43 b(time)f(y)m(ou)g(redistribute)g(the)g
(Program)g(\(or)g(an)m(y)h(w)m(ork)f(based)f(on)h(the)g(Program\),)k
(the)330 655 y(recipien)m(t)33 b(automatically)j(receiv)m(es)e(a)f
(license)g(from)f(the)g(original)i(licensor)f(to)g(cop)m(y)-8
b(,)34 b(distribute)330 765 y(or)i(mo)s(dify)g(the)g(Program)h(sub)5
b(ject)36 b(to)h(these)g(terms)f(and)g(conditions.)59
b(Y)-8 b(ou)37 b(ma)m(y)g(not)f(imp)s(ose)330 874 y(an)m(y)27
b(further)f(restrictions)h(on)g(the)g(recipien)m(ts')h(exercise)g(of)f
(the)g(righ)m(ts)g(gran)m(ted)g(herein.)39 b(Y)-8 b(ou)28
b(are)330 984 y(not)j(resp)s(onsible)e(for)h(enforcing)h(compliance)h
(b)m(y)e(third)f(parties)i(to)g(this)f(License.)199 1121
y(7.)61 b(If,)27 b(as)g(a)g(consequence)h(of)f(a)g(court)g(judgmen)m(t)
f(or)h(allegation)i(of)e(paten)m(t)h(infringemen)m(t)e(or)h(for)g(an)m
(y)330 1230 y(other)h(reason)f(\(not)h(limited)g(to)g(paten)m(t)h
(issues\),)f(conditions)g(are)f(imp)s(osed)g(on)g(y)m(ou)h(\(whether)f
(b)m(y)330 1340 y(court)c(order,)h(agreemen)m(t)g(or)f(otherwise\))g
(that)g(con)m(tradict)i(the)d(conditions)h(of)g(this)g(License,)i(they)
330 1450 y(do)34 b(not)g(excuse)h(y)m(ou)f(from)g(the)g(conditions)h
(of)f(this)g(License.)53 b(If)33 b(y)m(ou)i(cannot)g(distribute)e(so)i
(as)330 1559 y(to)f(satisfy)g(sim)m(ultaneously)h(y)m(our)e
(obligations)j(under)c(this)h(License)h(and)f(an)m(y)h(other)g(p)s
(ertinen)m(t)330 1669 y(obligations,)44 b(then)c(as)g(a)g(consequence)h
(y)m(ou)f(ma)m(y)g(not)g(distribute)g(the)g(Program)g(at)g(all.)70
b(F)-8 b(or)330 1778 y(example,)26 b(if)e(a)h(paten)m(t)g(license)g(w)m
(ould)f(not)g(p)s(ermit)g(ro)m(y)m(alt)m(y-free)j(redistribution)c(of)h
(the)h(Program)330 1888 y(b)m(y)35 b(all)h(those)f(who)f(receiv)m(e)j
(copies)f(directly)f(or)g(indirectly)h(through)e(y)m(ou,)i(then)f(the)g
(only)g(w)m(a)m(y)330 1998 y(y)m(ou)27 b(could)f(satisfy)h(b)s(oth)e
(it)i(and)f(this)g(License)h(w)m(ould)f(b)s(e)g(to)h(refrain)e(en)m
(tirely)j(from)e(distribution)330 2107 y(of)31 b(the)f(Program.)330
2244 y(If)43 b(an)m(y)g(p)s(ortion)g(of)g(this)h(section)g(is)f(held)g
(in)m(v)-5 b(alid)44 b(or)f(unenforceable)g(under)f(an)m(y)i
(particular)330 2354 y(circumstance,)j(the)d(balance)g(of)f(the)h
(section)g(is)f(in)m(tended)g(to)h(apply)f(and)f(the)i(section)g(as)g
(a)330 2463 y(whole)31 b(is)f(in)m(tended)g(to)h(apply)f(in)g(other)h
(circumstances.)330 2600 y(It)41 b(is)f(not)h(the)f(purp)s(ose)f(of)i
(this)f(section)i(to)f(induce)f(y)m(ou)h(to)g(infringe)f(an)m(y)h
(paten)m(ts)g(or)g(other)330 2710 y(prop)s(ert)m(y)e(righ)m(t)i(claims)
f(or)g(to)h(con)m(test)h(v)-5 b(alidit)m(y)41 b(of)f(an)m(y)g(suc)m(h)g
(claims;)45 b(this)40 b(section)h(has)f(the)330 2819
y(sole)31 b(purp)s(ose)d(of)j(protecting)g(the)f(in)m(tegrit)m(y)i(of)e
(the)h(free)f(soft)m(w)m(are)h(distribution)f(system,)g(whic)m(h)330
2929 y(is)35 b(implemen)m(ted)h(b)m(y)f(public)f(license)i(practices.)
56 b(Man)m(y)36 b(p)s(eople)f(ha)m(v)m(e)h(made)f(generous)h(con)m
(tri-)330 3039 y(butions)f(to)h(the)f(wide)h(range)f(of)h(soft)m(w)m
(are)h(distributed)d(through)h(that)h(system)f(in)g(reliance)i(on)330
3148 y(consisten)m(t)g(application)g(of)e(that)h(system;)i(it)e(is)g
(up)e(to)i(the)g(author/donor)f(to)h(decide)g(if)g(he)f(or)330
3258 y(she)i(is)h(willing)g(to)g(distribute)f(soft)m(w)m(are)i(through)
e(an)m(y)g(other)h(system)g(and)f(a)g(licensee)i(cannot)330
3367 y(imp)s(ose)30 b(that)h(c)m(hoice.)330 3504 y(This)26
b(section)j(is)e(in)m(tended)g(to)h(mak)m(e)g(thoroughly)f(clear)h
(what)f(is)g(b)s(eliev)m(ed)h(to)g(b)s(e)f(a)g(consequence)330
3614 y(of)k(the)f(rest)h(of)f(this)g(License.)199 3751
y(8.)61 b(If)35 b(the)g(distribution)f(and/or)h(use)g(of)g(the)g
(Program)g(is)g(restricted)h(in)f(certain)h(coun)m(tries)f(either)330
3861 y(b)m(y)g(paten)m(ts)h(or)g(b)m(y)f(cop)m(yrigh)m(ted)i(in)m
(terfaces,)h(the)d(original)i(cop)m(yrigh)m(t)g(holder)e(who)g(places)h
(the)330 3970 y(Program)g(under)f(this)h(License)h(ma)m(y)g(add)e(an)i
(explicit)g(geographical)i(distribution)c(limitation)330
4080 y(excluding)29 b(those)g(coun)m(tries,)h(so)f(that)g(distribution)
f(is)g(p)s(ermitted)h(only)f(in)g(or)h(among)g(coun)m(tries)330
4189 y(not)k(th)m(us)f(excluded.)48 b(In)32 b(suc)m(h)g(case,)j(this)d
(License)i(incorp)s(orates)f(the)g(limitation)h(as)f(if)g(written)330
4299 y(in)d(the)h(b)s(o)s(dy)d(of)j(this)f(License.)199
4436 y(9.)61 b(The)26 b(F)-8 b(ree)28 b(Soft)m(w)m(are)g(F)-8
b(oundation)27 b(ma)m(y)h(publish)d(revised)h(and/or)h(new)f(v)m
(ersions)h(of)g(the)g(General)330 4545 y(Public)37 b(License)g(from)g
(time)h(to)f(time.)62 b(Suc)m(h)36 b(new)h(v)m(ersions)g(will)h(b)s(e)e
(similar)h(in)g(spirit)g(to)h(the)330 4655 y(presen)m(t)30
b(v)m(ersion,)i(but)d(ma)m(y)i(di\013er)f(in)g(detail)i(to)f(address)e
(new)h(problems)g(or)g(concerns.)330 4792 y(Eac)m(h)46
b(v)m(ersion)f(is)g(giv)m(en)h(a)f(distinguishing)f(v)m(ersion)i(n)m
(um)m(b)s(er.)83 b(If)44 b(the)h(Program)g(sp)s(eci\014es)g(a)330
4902 y(v)m(ersion)36 b(n)m(um)m(b)s(er)f(of)h(this)f(License)i(whic)m
(h)e(applies)h(to)h(it)f(and)f(\\an)m(y)i(later)f(v)m(ersion",)j(y)m
(ou)d(ha)m(v)m(e)330 5011 y(the)d(option)g(of)g(follo)m(wing)h(the)f
(terms)g(and)f(conditions)h(either)h(of)f(that)g(v)m(ersion)g(or)g(of)g
(an)m(y)g(later)330 5121 y(v)m(ersion)e(published)d(b)m(y)i(the)g(F)-8
b(ree)31 b(Soft)m(w)m(are)g(F)-8 b(oundation.)42 b(If)29
b(the)i(Program)f(do)s(es)g(not)g(sp)s(ecify)g(a)330
5230 y(v)m(ersion)e(n)m(um)m(b)s(er)f(of)h(this)f(License,)i(y)m(ou)f
(ma)m(y)h(c)m(ho)s(ose)f(an)m(y)h(v)m(ersion)f(ev)m(er)g(published)e(b)
m(y)i(the)g(F)-8 b(ree)330 5340 y(Soft)m(w)m(are)31 b(F)-8
b(oundation.)p eop end
%%Page: 5 7
TeXDict begin 5 6 bop 150 -116 a Fs(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(5)154 299 y(10.)61 b(If)29 b(y)m(ou)g(wish)g(to)h
(incorp)s(orate)g(parts)f(of)g(the)g(Program)h(in)m(to)g(other)g(free)f
(programs)g(whose)g(distri-)330 408 y(bution)f(conditions)h(are)h
(di\013eren)m(t,)f(write)g(to)h(the)f(author)f(to)i(ask)e(for)h(p)s
(ermission.)39 b(F)-8 b(or)29 b(soft)m(w)m(are)330 518
y(whic)m(h)24 b(is)g(cop)m(yrigh)m(ted)h(b)m(y)f(the)g(F)-8
b(ree)25 b(Soft)m(w)m(are)g(F)-8 b(oundation,)26 b(write)e(to)h(the)f
(F)-8 b(ree)25 b(Soft)m(w)m(are)g(F)-8 b(oun-)330 628
y(dation;)29 b(w)m(e)f(sometimes)h(mak)m(e)f(exceptions)h(for)e(this.)
40 b(Our)26 b(decision)i(will)g(b)s(e)e(guided)i(b)m(y)f(the)h(t)m(w)m
(o)330 737 y(goals)c(of)f(preserving)f(the)g(free)h(status)g(of)f(all)i
(deriv)-5 b(ativ)m(es)24 b(of)e(our)g(free)h(soft)m(w)m(are)h(and)e(of)
h(promoting)330 847 y(the)31 b(sharing)f(and)f(reuse)h(of)h(soft)m(w)m
(are)h(generally)-8 b(.)330 995 y Fr(NO)45 b(W)-15 b(ARRANTY)154
1187 y Fs(11.)61 b(BECA)m(USE)40 b(THE)f(PR)m(OGRAM)i(IS)e(LICENSED)g
(FREE)g(OF)h(CHAR)m(GE,)h(THERE)e(IS)g(NO)330 1297 y(W)-10
b(ARRANTY)26 b(F)m(OR)f(THE)g(PR)m(OGRAM,)h(TO)e(THE)h(EXTENT)f
(PERMITTED)h(BY)g(APPLI-)330 1406 y(CABLE)i(LA)-10 b(W.)27
b(EX)m(CEPT)g(WHEN)h(OTHER)-10 b(WISE)25 b(ST)-8 b(A)g(TED)28
b(IN)e(WRITING)i(THE)e(COPY-)330 1516 y(RIGHT)35 b(HOLDERS)g(AND/OR)h
(OTHER)f(P)-8 b(AR)g(TIES)35 b(PR)m(O)m(VIDE)h(THE)f(PR)m(OGRAM)h(\\AS)
330 1626 y(IS")22 b(WITHOUT)f(W)-10 b(ARRANTY)23 b(OF)f(ANY)g(KIND,)h
(EITHER)e(EXPRESSED)g(OR)h(IMPLIED,)330 1735 y(INCLUDING,)33
b(BUT)g(NOT)g(LIMITED)f(TO,)g(THE)h(IMPLIED)g(W)-10 b(ARRANTIES)32
b(OF)h(MER-)330 1845 y(CHANT)-8 b(ABILITY)28 b(AND)g(FITNESS)e(F)m(OR)i
(A)g(P)-8 b(AR)g(TICULAR)27 b(PURPOSE.)g(THE)g(ENTIRE)330
1954 y(RISK)19 b(AS)h(TO)g(THE)g(QUALITY)g(AND)h(PERF)m(ORMANCE)g(OF)f
(THE)g(PR)m(OGRAM)h(IS)f(WITH)330 2064 y(YOU.)h(SHOULD)g(THE)f(PR)m
(OGRAM)i(PR)m(O)m(VE)f(DEFECTIVE,)g(YOU)g(ASSUME)f(THE)g(COST)330
2174 y(OF)30 b(ALL)g(NECESSAR)-8 b(Y)30 b(SER)-10 b(VICING,)30
b(REP)-8 b(AIR)30 b(OR)g(CORRECTION.)154 2308 y(12.)61
b(IN)26 b(NO)g(EVENT)g(UNLESS)f(REQUIRED)h(BY)h(APPLICABLE)f(LA)-10
b(W)26 b(OR)g(A)m(GREED)h(TO)f(IN)330 2418 y(WRITING)37
b(WILL)f(ANY)i(COPYRIGHT)e(HOLDER,)h(OR)f(ANY)h(OTHER)f(P)-8
b(AR)g(TY)38 b(WHO)330 2527 y(MA)-8 b(Y)52 b(MODIFY)g(AND/OR)g
(REDISTRIBUTE)e(THE)h(PR)m(OGRAM)h(AS)f(PERMITTED)330
2637 y(ABO)m(VE,)40 b(BE)f(LIABLE)f(TO)g(YOU)h(F)m(OR)g(D)m(AMA)m(GES,)
h(INCLUDING)f(ANY)h(GENERAL,)330 2746 y(SPECIAL,)e(INCIDENT)-8
b(AL)40 b(OR)e(CONSEQUENTIAL)g(D)m(AMA)m(GES)j(ARISING)e(OUT)g(OF)330
2856 y(THE)44 b(USE)g(OR)g(INABILITY)h(TO)f(USE)g(THE)g(PR)m(OGRAM)h
(\(INCLUDING)h(BUT)e(NOT)330 2966 y(LIMITED)29 b(TO)g(LOSS)f(OF)h(D)m
(A)-8 b(T)g(A)31 b(OR)e(D)m(A)-8 b(T)g(A)31 b(BEING)f(RENDERED)g(INA)m
(CCURA)-8 b(TE)29 b(OR)330 3075 y(LOSSES)38 b(SUST)-8
b(AINED)40 b(BY)h(YOU)f(OR)g(THIRD)g(P)-8 b(AR)g(TIES)40
b(OR)g(A)h(F)-10 b(AILURE)40 b(OF)g(THE)330 3185 y(PR)m(OGRAM)f(TO)f
(OPERA)-8 b(TE)38 b(WITH)h(ANY)g(OTHER)f(PR)m(OGRAMS\),)h(EVEN)g(IF)f
(SUCH)330 3294 y(HOLDER)33 b(OR)h(OTHER)f(P)-8 b(AR)g(TY)34
b(HAS)f(BEEN)h(AD)m(VISED)g(OF)g(THE)f(POSSIBILITY)f(OF)330
3404 y(SUCH)e(D)m(AMA)m(GES.)150 3661 y Fr(END)45 b(OF)g(TERMS)f(AND)h
(CONDITIONS)p eop end
%%Page: 6 8
TeXDict begin 6 7 bop 150 -116 a Fs(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(6)150 299 y Fr(Ho)l(w)46 b(to)f(Apply)f(These)h(T)-11
b(erms)45 b(to)g(Y)-11 b(our)44 b(New)i(Programs)275
503 y Fs(If)38 b(y)m(ou)i(dev)m(elop)g(a)f(new)g(program,)j(and)c(y)m
(ou)i(w)m(an)m(t)g(it)f(to)h(b)s(e)f(of)g(the)h(greatest)h(p)s(ossible)
d(use)h(to)150 612 y(the)i(public,)i(the)f(b)s(est)e(w)m(a)m(y)i(to)g
(ac)m(hiev)m(e)h(this)e(is)g(to)h(mak)m(e)g(it)g(free)f(soft)m(w)m(are)
h(whic)m(h)f(ev)m(ery)m(one)i(can)150 722 y(redistribute)30
b(and)g(c)m(hange)h(under)e(these)i(terms.)275 868 y(T)-8
b(o)29 b(do)h(so,)g(attac)m(h)h(the)f(follo)m(wing)h(notices)f(to)h
(the)e(program.)40 b(It)30 b(is)g(safest)g(to)g(attac)m(h)h(them)f(to)g
(the)150 978 y(start)j(of)g(eac)m(h)h(source)e(\014le)h(to)g(most)g
(e\013ectiv)m(ely)j(con)m(v)m(ey)e(the)e(exclusion)i(of)e(w)m(arran)m
(t)m(y;)j(and)d(eac)m(h)i(\014le)150 1087 y(should)29
b(ha)m(v)m(e)j(at)f(least)h(the)e(\\cop)m(yrigh)m(t")j(line)e(and)e(a)i
(p)s(oin)m(ter)g(to)g(where)f(the)g(full)g(notice)i(is)e(found.)390
1227 y Fo(one)h(line)f(to)h(giv)m(e)h(the)f(program's)f(name)h(and)e
(an)i(idea)g(of)f(what)g(it)h(do)s(es.)390 1331 y Fn(Copyright)45
b(\(C\))i Fo(y)m(ear)103 b(name)30 b(of)h(author)390
1539 y Fn(This)47 b(program)e(is)j(free)e(software;)g(you)g(can)h
(redistribute)e(it)i(and/or)390 1642 y(modify)f(it)h(under)g(the)g
(terms)f(of)h(the)g(GNU)g(General)f(Public)g(License)390
1746 y(as)h(published)e(by)j(the)f(Free)f(Software)g(Foundation;)e
(either)j(version)e(2)390 1850 y(of)i(the)g(License,)f(or)h(\(at)g
(your)f(option\))g(any)h(later)f(version.)390 2057 y(This)h(program)e
(is)j(distributed)c(in)k(the)e(hope)h(that)g(it)g(will)g(be)g(useful,)
390 2161 y(but)g(WITHOUT)f(ANY)h(WARRANTY;)e(without)h(even)g(the)h
(implied)f(warranty)g(of)390 2265 y(MERCHANTABILITY)e(or)j(FITNESS)f
(FOR)h(A)g(PARTICULAR)e(PURPOSE.)93 b(See)47 b(the)390
2369 y(GNU)g(General)f(Public)g(License)g(for)h(more)f(details.)390
2576 y(You)h(should)f(have)h(received)e(a)j(copy)e(of)h(the)g(GNU)g
(General)f(Public)g(License)390 2680 y(along)g(with)h(this)g(program;)e
(if)i(not,)g(write)f(to)i(the)e(Free)h(Software)390 2784
y(Foundation,)e(Inc.,)h(59)h(Temple)f(Place,)g(Suite)h(330,)f(Boston,)g
(MA)h(02111-1307,)e(USA.)275 2930 y Fs(Also)31 b(add)e(information)i
(on)f(ho)m(w)h(to)g(con)m(tact)i(y)m(ou)d(b)m(y)g(electronic)j(and)d
(pap)s(er)f(mail.)275 3076 y(If)f(the)g(program)h(is)f(in)m(teractiv)m
(e,)k(mak)m(e)e(it)f(output)f(a)h(short)f(notice)i(lik)m(e)g(this)e
(when)g(it)h(starts)g(in)f(an)150 3185 y(in)m(teractiv)m(e)33
b(mo)s(de:)390 3325 y Fn(Gnomovision)45 b(version)h(69,)g(Copyright)g
(\(C\))h Fo(y)m(ear)103 b(name)30 b(of)g(author)390 3429
y Fn(Gnomovision)45 b(comes)h(with)h(ABSOLUTELY)e(NO)i(WARRANTY;)e(for)
i(details)390 3533 y(type)g(`show)f(w'.)95 b(This)46
b(is)h(free)g(software,)e(and)i(you)g(are)g(welcome)390
3637 y(to)g(redistribute)e(it)i(under)f(certain)g(conditions;)f(type)h
(`show)h(c')390 3740 y(for)g(details.)275 3886 y Fs(The)27
b(h)m(yp)s(othetical)i(commands)f(`)p Fn(show)h(w)p Fs(')f(and)f(`)p
Fn(show)j(c)p Fs(')d(should)g(sho)m(w)h(the)g(appropriate)g(parts)g(of)
150 3996 y(the)38 b(General)h(Public)e(License.)64 b(Of)37
b(course,)j(the)f(commands)e(y)m(ou)h(use)g(ma)m(y)g(b)s(e)f(called)i
(something)150 4106 y(other)25 b(than)f(`)p Fn(show)29
b(w)p Fs(')c(and)f(`)p Fn(show)29 b(c)p Fs(';)e(they)d(could)h(ev)m(en)
g(b)s(e)f(mouse-clic)m(ks)i(or)f(men)m(u)f(items|whatev)m(er)150
4215 y(suits)30 b(y)m(our)g(program.)275 4361 y(Y)-8
b(ou)28 b(should)f(also)i(get)g(y)m(our)f(emplo)m(y)m(er)h(\(if)f(y)m
(ou)g(w)m(ork)g(as)h(a)f(programmer\))g(or)g(y)m(our)f(sc)m(ho)s(ol,)j
(if)e(an)m(y)-8 b(,)150 4471 y(to)34 b(sign)g(a)f(\\cop)m(yrigh)m(t)j
(disclaimer")e(for)g(the)f(program,)h(if)g(necessary)-8
b(.)51 b(Here)34 b(is)f(a)h(sample;)h(alter)g(the)150
4580 y(names:)390 4720 y Fn(Yoyodyne,)45 b(Inc.,)i(hereby)f(disclaims)f
(all)i(copyright)390 4824 y(interest)f(in)h(the)g(program)e
(`Gnomovision')390 4928 y(\(which)h(makes)g(passes)h(at)g(compilers\))e
(written)390 5032 y(by)i(James)g(Hacker.)390 5239 y Fo(signature)31
b(of)f(T)m(y)h(Co)s(on)p Fn(,)47 b(1)g(April)g(1989)390
5343 y(Ty)g(Coon,)g(President)e(of)i(Vice)p eop end
%%Page: 7 9
TeXDict begin 7 8 bop 150 -116 a Fs(GNU)31 b(GENERAL)f(PUBLIC)h
(LICENSE)2052 b(7)275 299 y(This)20 b(General)h(Public)g(License)g(do)s
(es)g(not)g(p)s(ermit)f(incorp)s(orating)h(y)m(our)g(program)f(in)m(to)
i(proprietary)150 408 y(programs.)38 b(If)22 b(y)m(our)h(program)f(is)h
(a)g(subroutine)f(library)-8 b(,)25 b(y)m(ou)e(ma)m(y)g(consider)g(it)g
(more)g(useful)f(to)i(p)s(ermit)150 518 y(linking)36
b(proprietary)g(applications)i(with)e(the)g(library)-8
b(.)59 b(If)35 b(this)i(is)f(what)g(y)m(ou)h(w)m(an)m(t)g(to)g(do,)h
(use)e(the)150 628 y(GNU)31 b(Library)f(General)h(Public)f(License)h
(instead)f(of)h(this)f(License.)p eop end
%%Page: 8 10
TeXDict begin 8 9 bop 150 -116 a Fs(Con)m(tributors)30
b(to)h(GNU)g Fn(gperf)e Fs(Utilit)m(y)2140 b(8)150 299
y Fp(Con)l(tributors)50 b(to)j(GNU)h Fm(gperf)f Fp(Utilit)l(y)225
533 y Fq(\017)60 b Fs(The)45 b(GNU)h Fn(gperf)d Fs(p)s(erfect)j(hash)e
(function)h(generator)i(utilit)m(y)f(w)m(as)g(written)f(in)g(GNU)h(C)p
Fn(++)330 643 y Fs(b)m(y)e(Douglas)i(C.)f(Sc)m(hmidt.)83
b(The)44 b(general)i(idea)f(for)f(the)h(p)s(erfect)g(hash)e(function)i
(generator)330 752 y(w)m(as)34 b(inspired)e(b)m(y)h(Keith)g(Bostic's)j
(algorithm)e(written)f(in)g(C,)g(and)g(distributed)f(to)i(net.sources)
330 862 y(around)42 b(1984.)79 b(The)42 b(curren)m(t)g(program)h(is)g
(a)g(hea)m(vily)h(mo)s(di\014ed,)g(enhanced,)i(and)c(extended)330
971 y(implemen)m(tation)d(of)e(Keith's)g(basic)h(idea,)h(created)f(at)g
(the)f(Univ)m(ersit)m(y)h(of)g(California,)h(Irvine.)330
1081 y(Bugs,)31 b(patc)m(hes,)g(and)f(suggestions)h(should)f(b)s(e)f
(rep)s(orted)h(to)h Fn(<bug-gnu-gperf@gnu.org>)p Fs(.)225
1215 y Fq(\017)60 b Fs(Sp)s(ecial)33 b(thanks)g(is)g(extended)g(to)h
(Mic)m(hael)h(Tiemann)e(and)g(Doug)h(Lea,)g(for)f(pro)m(viding)g(a)h
(useful)330 1325 y(compiler,)d(and)f(for)g(giving)h(me)g(a)g(forum)e
(to)i(exhibit)g(m)m(y)f(creation.)330 1460 y(In)22 b(addition,)i(Adam)f
(de)f(Bo)s(or)h(and)f(Nels)i(Olson)e(pro)m(vided)g(man)m(y)h(tips)f
(and)g(insigh)m(ts)h(that)g(greatly)330 1569 y(help)s(ed)29
b(impro)m(v)m(e)j(the)e(qualit)m(y)i(and)e(functionalit)m(y)h(of)g
Fn(gperf)p Fs(.)225 1704 y Fq(\017)60 b Fs(Bruno)26 b(Haible)i
(enhanced)f(and)f(optimized)i(the)f(searc)m(h)h(algorithm.)41
b(He)27 b(also)h(rewrote)g(the)f(input)330 1813 y(routines)j(and)g(the)
h(output)f(routines)g(for)g(b)s(etter)g(reliabilit)m(y)-8
b(,)33 b(and)d(added)g(a)h(testsuite.)p eop end
%%Page: 9 11
TeXDict begin 9 10 bop 150 -116 a Fs(Chapter)30 b(1:)41
b(In)m(tro)s(duction)2592 b(9)150 299 y Fp(1)80 b(In)l(tro)t(duction)
275 533 y Fn(gperf)31 b Fs(is)j(a)f(p)s(erfect)h(hash)e(function)h
(generator)i(written)e(in)g(C)p Fn(++)p Fs(.)49 b(It)33
b(transforms)g(an)g Fo(n)f Fs(elemen)m(t)150 643 y(user-sp)s(eci\014ed)
k(k)m(eyw)m(ord)i(set)g Fo(W)49 b Fs(in)m(to)39 b(a)e(p)s(erfect)h
(hash)e(function)h Fo(F)p Fs(.)h Fo(F)44 b Fs(uniquely)37
b(maps)g(k)m(eyw)m(ords)150 752 y(in)e Fo(W)47 b Fs(on)m(to)36
b(the)f(range)g(0..)p Fo(k)p Fs(,)j(where)c Fo(k)40 b
Fn(>)p Fs(=)35 b Fo(n-1)p Fs(.)54 b(If)35 b Fo(k)40 b
Fs(=)35 b Fo(n-1)42 b Fs(then)35 b Fo(F)42 b Fs(is)35
b(a)g Fl(minimal)46 b Fs(p)s(erfect)35 b(hash)150 862
y(function.)68 b Fn(gperf)39 b Fs(generates)i(a)f(0..)p
Fo(k)46 b Fs(elemen)m(t)41 b(static)g(lo)s(okup)f(table)g(and)f(a)i
(pair)e(of)h(C)f(functions.)150 971 y(These)34 b(functions)g(determine)
h(whether)e(a)i(giv)m(en)g(c)m(haracter)h(string)f Fo(s)j
Fs(o)s(ccurs)c(in)g Fo(W)p Fs(,)h(using)e(at)j(most)150
1081 y(one)31 b(prob)s(e)e(in)m(to)i(the)g(lo)s(okup)f(table.)275
1215 y Fn(gperf)22 b Fs(curren)m(tly)h(generates)j(the)d(reserv)m(ed)h
(k)m(eyw)m(ord)g(recognizer)i(for)d(lexical)j(analyzers)e(in)g(sev)m
(eral)150 1325 y(pro)s(duction)30 b(and)g(researc)m(h)h(compilers)g
(and)g(language)h(pro)s(cessing)e(to)s(ols,)i(including)e(GNU)i(C,)e
(GNU)150 1435 y(C)p Fn(++)p Fs(,)24 b(GNU)f(Ja)m(v)-5
b(a,)26 b(GNU)d(P)m(ascal,)j(GNU)e(Mo)s(dula)f(3,)i(and)d(GNU)h(inden)m
(t.)38 b(Complete)24 b(C)p Fn(++)e Fs(source)h(co)s(de)150
1544 y(for)42 b Fn(gperf)f Fs(is)h(a)m(v)-5 b(ailable)44
b(from)e Fn(http://ftp.gnu.org/pub/g)o(nu/g)o(perf)o(/)p
Fs(.)70 b(A)42 b(pap)s(er)f(describing)150 1654 y Fn(gperf)p
Fs('s)d(design)i(and)f(implemen)m(tation)j(in)d(greater)i(detail)g(is)f
(a)m(v)-5 b(ailable)42 b(in)e(the)g(Second)f(USENIX)150
1763 y(C)p Fn(++)29 b Fs(Conference)g(pro)s(ceedings)h(or)g(from)f
Fn(http://www.cs.wustl.edu)o(/~sc)o(hmid)o(t/r)o(esum)o(e.ht)o(ml)p
Fs(.)p eop end
%%Page: 10 12
TeXDict begin 10 11 bop 150 -116 a Fs(Chapter)30 b(2:)41
b(Static)32 b(searc)m(h)f(structures)e(and)h(GNU)h Fn(gperf)1425
b Fs(10)150 299 y Fp(2)80 b(Static)53 b(searc)l(h)g(structures)e(and)j
(GNU)f Fm(gperf)275 533 y Fs(A)24 b Fo(static)i(searc)m(h)f(structure)k
Fs(is)c(an)f(Abstract)h(Data)i(T)m(yp)s(e)c(with)i(certain)g(fundamen)m
(tal)f(op)s(erations,)150 643 y(e.g.,)32 b Fl(initialize)p
Fs(,)g Fl(insert)p Fs(,)f(and)f Fl(r)-5 b(etrieve)p Fs(.)42
b(Conceptually)-8 b(,)32 b(all)g(insertions)f(o)s(ccur)f(b)s(efore)h
(an)m(y)g(retriev)-5 b(als.)150 752 y(In)20 b(practice,)25
b Fn(gperf)19 b Fs(generates)k(a)e Fl(static)27 b Fs(arra)m(y)22
b(con)m(taining)g(searc)m(h)g(set)f(k)m(eyw)m(ords)h(and)e(an)m(y)h
(asso)s(ciated)150 862 y(attributes)37 b(sp)s(eci\014ed)f(b)m(y)h(the)f
(user.)59 b(Th)m(us,)37 b(there)g(is)g(essen)m(tially)h(no)f
(execution-time)i(cost)e(for)g(the)150 971 y(insertions.)j(It)27
b(is)g(a)g(useful)g(data)g(structure)g(for)g(represen)m(ting)g
Fl(static)j(se)-5 b(ar)g(ch)32 b(sets)p Fs(.)40 b(Static)28
b(searc)m(h)g(sets)150 1081 y(o)s(ccur)c(frequen)m(tly)h(in)f(soft)m(w)
m(are)i(system)e(applications.)40 b(T)m(ypical)25 b(static)h(searc)m(h)
f(sets)g(include)f(compiler)150 1191 y(reserv)m(ed)42
b(w)m(ords,)j(assem)m(bler)e(instruction)f(op)s(co)s(des,)j(and)c
(built-in)h(shell)h(in)m(terpreter)f(commands.)150 1300
y(Searc)m(h)g(set)g(mem)m(b)s(ers,)h(called)g Fo(k)m(eyw)m(ords)p
Fs(,)i(are)c(inserted)h(in)m(to)g(the)g(structure)f(only)g(once,)k
(usually)150 1410 y(during)29 b(program)h(initialization,)k(and)c(are)g
(not)h(generally)h(mo)s(di\014ed)d(at)i(run-time.)275
1544 y(Numerous)c(static)i(searc)m(h)g(structure)e(implemen)m(tations)i
(exist,)h(e.g.,)f(arra)m(ys,)g(link)m(ed)g(lists,)g(binary)150
1654 y(searc)m(h)45 b(trees,)j(digital)d(searc)m(h)g(tries,)j(and)43
b(hash)g(tables.)83 b(Di\013eren)m(t)45 b(approac)m(hes)g(o\013er)f
(trade-o\013s)150 1763 y(b)s(et)m(w)m(een)e(space)h(utilization)g(and)f
(searc)m(h)g(time)g(e\016ciency)-8 b(.)77 b(F)-8 b(or)42
b(example,)k(an)41 b Fo(n)h Fs(elemen)m(t)h(sorted)150
1873 y(arra)m(y)d(is)g(space)h(e\016cien)m(t,)i(though)d(the)g(a)m(v)m
(erage-case)k(time)c(complexit)m(y)i(for)e(retriev)-5
b(al)41 b(op)s(erations)150 1983 y(using)31 b(binary)f(searc)m(h)i(is)f
(prop)s(ortional)g(to)g(log)i Fo(n)p Fs(.)42 b(Con)m(v)m(ersely)-8
b(,)33 b(hash)d(table)i(implemen)m(tations)h(often)150
2092 y(lo)s(cate)27 b(a)f(table)g(en)m(try)g(in)f(constan)m(t)i(time,)g
(but)e(t)m(ypically)i(imp)s(ose)e(additional)i(memory)e(o)m(v)m(erhead)
i(and)150 2202 y(exhibit)k(p)s(o)s(or)e(w)m(orst)i(case)g(p)s
(erformance.)275 2336 y Fl(Minimal)26 b(p)-5 b(erfe)g(ct)28
b(hash)f(functions)32 b Fs(pro)m(vide)24 b(an)f(optimal)i(solution)f
(for)f(a)h(particular)g(class)h(of)e(static)150 2446
y(searc)m(h)31 b(sets.)41 b(A)31 b(minimal)f(p)s(erfect)g(hash)g
(function)g(is)h(de\014ned)e(b)m(y)h(t)m(w)m(o)i(prop)s(erties:)225
2580 y Fq(\017)60 b Fs(It)34 b(allo)m(ws)i(k)m(eyw)m(ord)f(recognition)
h(in)e(a)h(static)h(searc)m(h)f(set)g(using)f(at)h(most)g
Fl(one)41 b Fs(prob)s(e)33 b(in)m(to)j(the)330 2690 y(hash)30
b(table.)41 b(This)30 b(represen)m(ts)g(the)h(\\p)s(erfect")g(prop)s
(ert)m(y)-8 b(.)225 2824 y Fq(\017)60 b Fs(The)35 b(actual)j(memory)e
(allo)s(cated)i(to)e(store)h(the)f(k)m(eyw)m(ords)h(is)f(precisely)g
(large)h(enough)f(for)g(the)330 2934 y(k)m(eyw)m(ord)31
b(set,)g(and)f Fl(no)j(lar)-5 b(ger)p Fs(.)42 b(This)29
b(is)i(the)f(\\minimal")i(prop)s(ert)m(y)-8 b(.)275 3093
y(F)g(or)38 b(most)g(applications)h(it)f(is)g(far)f(easier)i(to)f
(generate)h Fl(p)-5 b(erfe)g(ct)47 b Fs(hash)37 b(functions)g(than)h
Fl(minimal)150 3203 y(p)-5 b(erfe)g(ct)47 b Fs(hash)36
b(functions.)60 b(Moreo)m(v)m(er,)41 b(non-minimal)c(p)s(erfect)g(hash)
f(functions)g(frequen)m(tly)i(execute)150 3313 y(faster)44
b(than)g(minimal)g(ones)g(in)f(practice.)83 b(This)43
b(phenomena)g(o)s(ccurs)g(since)h(searc)m(hing)h(a)f(sparse)150
3422 y(k)m(eyw)m(ord)34 b(table)g(increases)g(the)g(probabilit)m(y)f
(of)h(lo)s(cating)h(a)e(\\n)m(ull")i(en)m(try)-8 b(,)35
b(thereb)m(y)e(reducing)g(string)150 3532 y(comparisons.)56
b Fn(gperf)p Fs('s)34 b(default)h(b)s(eha)m(vior)g(generates)i
Fl(ne)-5 b(ar-minimal)47 b Fs(p)s(erfect)35 b(hash)f(functions)h(for)
150 3641 y(k)m(eyw)m(ord)40 b(sets.)68 b(Ho)m(w)m(ev)m(er,)44
b Fn(gperf)39 b Fs(pro)m(vides)g(man)m(y)h(options)f(that)h(p)s(ermit)f
(user)g(con)m(trol)i(o)m(v)m(er)g(the)150 3751 y(degree)31
b(of)g(minimalit)m(y)g(and)f(p)s(erfection.)275 3885
y(Static)37 b(searc)m(h)f(sets)g(often)g(exhibit)g(relativ)m(e)i
(stabilit)m(y)f(o)m(v)m(er)g(time.)58 b(F)-8 b(or)36
b(example,)i(Ada's)e(63)h(re-)150 3995 y(serv)m(ed)31
b(w)m(ords)f(ha)m(v)m(e)i(remained)e(constan)m(t)i(for)f(nearly)g(a)g
(decade.)42 b(It)31 b(is)g(therefore)g(frequen)m(tly)g(w)m(orth-)150
4105 y(while)22 b(to)h(exp)s(end)e(concerted)i(e\013ort)g(building)e
(an)h(optimal)i(searc)m(h)e(structure)g Fl(onc)-5 b(e)p
Fs(,)25 b(if)d(it)g(subsequen)m(tly)150 4214 y(receiv)m(es)j(hea)m(vy)f
(use)e(m)m(ultiple)i(times.)39 b Fn(gperf)22 b Fs(remo)m(v)m(es)i(the)f
(drudgery)f(asso)s(ciated)j(with)d(constructing)150 4324
y(time-)38 b(and)f(space-e\016cien)m(t)j(searc)m(h)d(structures)g(b)m
(y)g(hand.)61 b(It)37 b(has)g(pro)m(v)m(en)h(a)f(useful)g(and)f
(practical)150 4433 y(to)s(ol)29 b(for)f(serious)g(programming)g(pro)5
b(jects.)40 b(Output)27 b(from)h Fn(gperf)e Fs(is)i(curren)m(tly)h
(used)e(in)h(sev)m(eral)h(pro-)150 4543 y(duction)d(and)e(researc)m(h)j
(compilers,)g(including)e(GNU)h(C,)g(GNU)g(C)p Fn(++)p
Fs(,)g(GNU)g(Ja)m(v)-5 b(a,)28 b(GNU)e(P)m(ascal,)j(and)150
4653 y(GNU)38 b(Mo)s(dula)f(3.)63 b(The)36 b(latter)j(t)m(w)m(o)g
(compilers)f(are)f(not)h(y)m(et)h(part)e(of)g(the)h(o\016cial)h(GNU)f
(distribu-)150 4762 y(tion.)51 b(Eac)m(h)34 b(compiler)g(utilizes)h
Fn(gperf)d Fs(to)i(automatically)i(generate)f(static)g(searc)m(h)f
(structures)f(that)150 4872 y(e\016cien)m(tly)f(iden)m(tify)f(their)f
(resp)s(ectiv)m(e)i(reserv)m(ed)e(k)m(eyw)m(ords.)p eop
end
%%Page: 11 13
TeXDict begin 11 12 bop 150 -116 a Fs(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fn(gperf)1520
b Fs(11)150 299 y Fp(3)80 b(High-Lev)l(el)52 b(Description)f(of)j(GNU)g
Fm(gperf)275 539 y Fs(The)29 b(p)s(erfect)h(hash)g(function)g
(generator)h Fn(gperf)e Fs(reads)h(a)h(set)g(of)f(\\k)m(eyw)m(ords")i
(from)d(an)i(input)e(\014le)150 648 y(\(or)34 b(from)g(the)g(standard)f
(input)g(b)m(y)h(default\).)52 b(It)34 b(attempts)h(to)f(deriv)m(e)h(a)
f(p)s(erfect)g(hashing)f(function)150 758 y(that)k(recognizes)i(a)e
(mem)m(b)s(er)f(of)h(the)g Fo(static)h(k)m(eyw)m(ord)f(set)j
Fs(with)c(at)i(most)f(a)g(single)g(prob)s(e)f(in)m(to)i(the)150
867 y(lo)s(okup)26 b(table.)41 b(If)26 b Fn(gperf)f Fs(succeeds)i(in)g
(generating)h(suc)m(h)e(a)h(function)f(it)i(pro)s(duces)d(a)i(pair)g
(of)f(C)h(source)150 977 y(co)s(de)39 b(routines)g(that)h(p)s(erform)d
(hashing)i(and)f(table)i(lo)s(okup)e(recognition.)69
b(All)39 b(generated)h(C)f(co)s(de)150 1086 y(is)f(directed)g(to)g(the)
g(standard)f(output.)62 b(Command-line)38 b(options)g(describ)s(ed)e(b)
s(elo)m(w)i(allo)m(w)h(y)m(ou)f(to)150 1196 y(mo)s(dify)30
b(the)g(input)g(and)f(output)h(format)h(to)g Fn(gperf)p
Fs(.)275 1332 y(By)23 b(default,)i Fn(gperf)d Fs(attempts)i(to)g(pro)s
(duce)e(time-e\016cien)m(t)k(co)s(de,)f(with)e(less)h(emphasis)e(on)h
(e\016cien)m(t)150 1442 y(space)31 b(utilization.)43
b(Ho)m(w)m(ev)m(er,)33 b(sev)m(eral)e(options)g(exist)g(that)g(p)s
(ermit)f(trading-o\013)h(execution)h(time)f(for)150 1552
y(storage)i(space)f(and)g(vice)g(v)m(ersa.)46 b(In)31
b(particular,)h(expanding)f(the)h(generated)h(table)g(size)f(pro)s
(duces)f(a)150 1661 y(sparse)26 b(searc)m(h)g(structure,)h(generally)g
(yielding)f(faster)h(searc)m(hes.)40 b(Con)m(v)m(ersely)-8
b(,)28 b(y)m(ou)f(can)f(direct)g Fn(gperf)150 1771 y
Fs(to)21 b(utilize)h(a)f(C)f Fn(switch)f Fs(statemen)m(t)k(sc)m(heme)e
(that)g(minimizes)g(data)g(space)g(storage)h(size.)39
b(F)-8 b(urthermore,)150 1880 y(using)40 b(a)g(C)g Fn(switch)e
Fs(ma)m(y)i(actually)i(sp)s(eed)d(up)g(the)h(k)m(eyw)m(ord)h(retriev)-5
b(al)41 b(time)g(somewhat.)70 b(Actual)150 1990 y(results)30
b(dep)s(end)f(on)h(y)m(our)g(C)g(compiler,)i(of)e(course.)275
2126 y(In)44 b(general,)50 b Fn(gperf)44 b Fs(assigns)h(v)-5
b(alues)46 b(to)g(the)f(b)m(ytes)h(it)g(is)f(using)g(for)g(hashing)f
(un)m(til)i(some)f(set)150 2236 y(of)d(v)-5 b(alues)43
b(giv)m(es)g(eac)m(h)h(k)m(eyw)m(ord)e(a)h(unique)e(v)-5
b(alue.)77 b(A)42 b(helpful)f(heuristic)i(is)f(that)h(the)f(larger)h
(the)150 2345 y(hash)36 b(v)-5 b(alue)37 b(range,)i(the)e(easier)h(it)f
(is)g(for)f Fn(gperf)f Fs(to)j(\014nd)d(and)h(generate)i(a)f(p)s
(erfect)g(hash)f(function.)150 2455 y(Exp)s(erimen)m(tation)31
b(is)f(the)h(k)m(ey)g(to)g(getting)h(the)f(most)g(from)e
Fn(gperf)p Fs(.)150 2717 y Fr(3.1)68 b(Input)44 b(F)-11
b(ormat)46 b(to)f Fk(gperf)275 2911 y Fs(Y)-8 b(ou)38
b(can)g(con)m(trol)i(the)e(input)f(\014le)h(format)g(b)m(y)g(v)-5
b(arying)38 b(certain)g(command-line)h(argumen)m(ts,)h(in)150
3021 y(particular)f(the)g(`)p Fn(-t)p Fs(')g(option.)66
b(The)38 b(input's)g(app)s(earance)h(is)g(similar)g(to)g(GNU)h
(utilities)g Fn(flex)e Fs(and)150 3131 y Fn(bison)29
b Fs(\(or)i(UNIX)f(utilities)i Fn(lex)e Fs(and)f Fn(yacc)p
Fs(\).)40 b(Here's)31 b(an)g(outline)g(of)f(the)h(general)g(format:)390
3261 y Fn(declarations)390 3365 y(\045\045)390 3469 y(keywords)390
3572 y(\045\045)390 3676 y(functions)275 3806 y Fl(Unlike)41
b Fn(flex)35 b Fs(or)g Fn(bison)p Fs(,)h(the)g(declarations)g(section)h
(and)e(the)h(functions)f(section)i(are)f(optional.)150
3915 y(The)30 b(follo)m(wing)i(sections)f(describ)s(e)f(the)g(input)g
(format)h(for)f(eac)m(h)h(section.)275 4051 y(It)h(is)g(p)s(ossible)g
(to)h(omit)g(the)g(declaration)h(section)f(en)m(tirely)-8
b(,)35 b(if)d(the)h(`)p Fn(-t)p Fs(')f(option)h(is)f(not)h(giv)m(en.)48
b(In)150 4161 y(this)30 b(case)i(the)e(input)g(\014le)g(b)s(egins)g
(directly)h(with)f(the)h(\014rst)e(k)m(eyw)m(ord)i(line,)g(e.g.:)390
4292 y Fn(january)390 4395 y(february)390 4499 y(march)390
4603 y(april)390 4707 y(...)150 4926 y Fj(3.1.1)63 b(Declarations)275
5121 y Fs(The)33 b(k)m(eyw)m(ord)i(input)f(\014le)g(optionally)i(con)m
(tains)g(a)f(section)g(for)f(including)g(arbitrary)h(C)f(declara-)150
5230 y(tions)d(and)e(de\014nitions,)h Fn(gperf)f Fs(declarations)j
(that)f(act)g(lik)m(e)h(command-line)f(options,)g(as)f(w)m(ell)i(as)e
(for)150 5340 y(pro)m(viding)g(a)h(user-supplied)e Fn(struct)p
Fs(.)p eop end
%%Page: 12 14
TeXDict begin 12 13 bop 150 -116 a Fs(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fn(gperf)1520
b Fs(12)150 299 y Fj(3.1.1.1)63 b(User-supplied)43 b
Fi(struct)275 500 y Fs(If)24 b(the)h(`)p Fn(-t)p Fs(')f(option)h(\(or,)
i(equiv)-5 b(alen)m(tly)d(,)28 b(the)d(`)p Fn(\045struct-type)p
Fs(')d(declaration\))k Fl(is)32 b Fs(enabled,)26 b(y)m(ou)f
Fl(must)150 609 y Fs(pro)m(vide)37 b(a)f(C)h Fn(struct)d
Fs(as)j(the)g(last)g(comp)s(onen)m(t)g(in)f(the)h(declaration)h
(section)f(from)f(the)h(input)f(\014le.)150 719 y(The)26
b(\014rst)f(\014eld)h(in)g(this)g(struct)g(m)m(ust)g(b)s(e)g(of)g(t)m
(yp)s(e)g Fn(char)j(*)d Fs(or)g Fn(const)j(char)h(*)25
b Fs(if)h(the)h(`)p Fn(-P)p Fs(')f(option)g(is)h(not)150
829 y(giv)m(en,)k(or)g(of)f(t)m(yp)s(e)g Fn(int)g Fs(if)g(the)g(option)
h(`)p Fn(-P)p Fs(')f(\(or,)h(equiv)-5 b(alen)m(tly)d(,)32
b(the)f(`)p Fn(\045pic)p Fs(')e(declaration\))j(is)f(enabled.)150
938 y(This)k(\014rst)f(\014eld)h(m)m(ust)h(b)s(e)e(called)j(`)p
Fn(name)p Fs(',)f(although)g(it)g(is)g(p)s(ossible)f(to)h(mo)s(dify)e
(its)i(name)g(with)f(the)150 1048 y(`)p Fn(-K)p Fs(')30
b(option)h(\(or,)g(equiv)-5 b(alen)m(tly)d(,)33 b(the)d(`)p
Fn(\045define)f(slot-name)p Fs(')f(declaration\))k(describ)s(ed)e(b)s
(elo)m(w.)275 1191 y(Here)g(is)h(a)g(simple)f(example,)h(using)f(mon)m
(ths)g(of)h(the)f(y)m(ear)i(and)d(their)i(attributes)g(as)f(input:)390
1328 y Fn(struct)46 b(month)g({)i(char)f(*name;)f(int)h(number;)e(int)i
(days;)g(int)g(leap_days;)e(};)390 1432 y(\045\045)390
1535 y(january,)141 b(1,)47 b(31,)g(31)390 1639 y(february,)93
b(2,)47 b(28,)g(29)390 1743 y(march,)237 b(3,)47 b(31,)g(31)390
1847 y(april,)237 b(4,)47 b(30,)g(30)390 1950 y(may,)333
b(5,)47 b(31,)g(31)390 2054 y(june,)285 b(6,)47 b(30,)g(30)390
2158 y(july,)285 b(7,)47 b(31,)g(31)390 2262 y(august,)189
b(8,)47 b(31,)g(31)390 2366 y(september,)e(9,)i(30,)g(30)390
2469 y(october,)93 b(10,)47 b(31,)g(31)390 2573 y(november,)e(11,)i
(30,)g(30)390 2677 y(december,)e(12,)i(31,)g(31)275 2813
y Fs(Separating)25 b(the)g Fn(struct)f Fs(declaration)i(from)f(the)g
(list)h(of)f(k)m(eyw)m(ords)h(and)e(other)h(\014elds)g(are)g(a)h(pair)f
(of)150 2922 y(consecutiv)m(e)33 b(p)s(ercen)m(t)f(signs,)f(`)p
Fn(\045\045)p Fs(',)h(app)s(earing)f(left)h(justi\014ed)e(in)h(the)h
(\014rst)e(column,)i(as)f(in)g(the)h(UNIX)150 3032 y(utilit)m(y)g
Fn(lex)p Fs(.)275 3175 y(If)k(the)i Fn(struct)d Fs(has)i(already)h(b)s
(een)f(declared)h(in)f(an)g(include)g(\014le,)i(it)f(can)g(b)s(e)e(men)
m(tioned)i(in)f(an)150 3284 y(abbreviated)31 b(form,)f(lik)m(e)i(this:)
390 3421 y Fn(struct)46 b(month;)390 3525 y(\045\045)390
3629 y(january,)141 b(1,)47 b(31,)g(31)390 3733 y(...)150
3966 y Fj(3.1.1.2)63 b(Gp)s(erf)43 b(Declarations)275
4167 y Fs(The)31 b(declaration)j(section)g(can)e(con)m(tain)i
Fn(gperf)c Fs(declarations.)48 b(They)32 b(in\015uence)g(the)g(w)m(a)m
(y)h Fn(gperf)150 4276 y Fs(w)m(orks,)43 b(lik)m(e)f(command)f(line)g
(options)g(do.)72 b(In)40 b(fact,)k(ev)m(ery)e(suc)m(h)e(declaration)i
(is)f(equiv)-5 b(alen)m(t)42 b(to)g(a)150 4386 y(command)30
b(line)h(option.)41 b(There)30 b(are)h(three)f(forms)g(of)h
(declarations:)199 4529 y(1.)61 b(Declarations)33 b(without)d(argumen)m
(t,)h(lik)m(e)h(`)p Fn(\045compare-lengths)p Fs('.)199
4667 y(2.)61 b(Declarations)33 b(with)d(an)g(argumen)m(t,)h(lik)m(e)h
(`)p Fn(\045switch=)p Fo(coun)m(t)r Fs('.)199 4806 y(3.)61
b(Declarations)114 b(of)e(names)g(of)g(en)m(tities)i(in)d(the)h(output)
g(\014le,)132 b(lik)m(e)114 b(`)p Fn(\045define)330 4916
y(lookup-function-name)25 b Fo(name)5 b Fs('.)275 5088
y(When)35 b(a)h(declaration)h(is)f(giv)m(en)g(b)s(oth)f(in)h(the)f
(input)g(\014le)h(and)f(as)h(a)g(command)f(line)h(option,)i(the)150
5197 y(command-line)31 b(option's)g(v)-5 b(alue)31 b(prev)-5
b(ails.)275 5340 y(The)29 b(follo)m(wing)j Fn(gperf)d
Fs(declarations)j(are)f(a)m(v)-5 b(ailable.)p eop end
%%Page: 13 15
TeXDict begin 13 14 bop 150 -116 a Fs(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fn(gperf)1520
b Fs(13)150 299 y(`)p Fn(\045delimiters=)p Fo(delimiter-list)r
Fs(')630 408 y(Allo)m(ws)30 b(y)m(ou)f(to)g(pro)m(vide)g(a)g(string)g
(con)m(taining)h(delimiters)g(used)d(to)j(separate)g(k)m(eyw)m(ords)630
518 y(from)k(their)h(attributes.)54 b(The)34 b(default)g(is)h
Fn(")p Fs(,)p Fn(")p Fs(.)53 b(This)34 b(option)h(is)f(essen)m(tial)j
(if)d(y)m(ou)h(w)m(an)m(t)630 628 y(to)c(use)f(k)m(eyw)m(ords)h(that)g
(ha)m(v)m(e)g(em)m(b)s(edded)f(commas)h(or)f(newlines.)150
774 y(`)p Fn(\045struct-type)p Fs(')630 883 y(Allo)m(ws)i(y)m(ou)e(to)i
(include)e(a)h Fn(struct)d Fs(t)m(yp)s(e)j(declaration)h(for)e
(generated)i(co)s(de;)f(see)g(ab)s(o)m(v)m(e)630 993
y(for)f(an)g(example.)150 1139 y(`)p Fn(\045ignore-case)p
Fs(')630 1249 y(Consider)43 b(upp)s(er)f(and)i(lo)m(w)m(er)h(case)g
(ASCI)s(I)e(c)m(haracters)i(as)f(equiv)-5 b(alen)m(t.)83
b(The)44 b(string)630 1358 y(comparison)28 b(will)h(use)f(a)h(case)g
(insigni\014can)m(t)g(c)m(haracter)h(comparison.)40 b(Note)29
b(that)g(lo)s(cale)630 1468 y(dep)s(enden)m(t)g(case)j(mappings)d(are)i
(ignored.)150 1614 y(`)p Fn(\045language=)p Fo(language-name)5
b Fs(')630 1724 y(Instructs)33 b Fn(gperf)f Fs(to)i(generate)h(co)s(de)
f(in)f(the)h(language)h(sp)s(eci\014ed)d(b)m(y)i(the)g(option's)g(ar-)
630 1833 y(gumen)m(t.)41 b(Languages)31 b(handled)f(are)h(curren)m
(tly:)630 1979 y(`)p Fn(KR-C)p Fs(')238 b(Old-st)m(yle)27
b(K&R)f(C.)g(This)f(language)j(is)f(understo)s(o)s(d)d(b)m(y)i(old-st)m
(yle)i(C)e(com-)1110 2089 y(pilers)e(and)g(ANSI)f(C)h(compilers,)i(but)
e(ANSI)f(C)h(compilers)h(ma)m(y)f(\015ag)h(w)m(arn-)1110
2198 y(ings)30 b(\(or)h(ev)m(en)g(errors\))f(b)s(ecause)h(of)f(lac)m
(king)i(`)p Fn(const)p Fs('.)630 2345 y(`)p Fn(C)p Fs(')382
b(Common)23 b(C.)f(This)h(language)h(is)f(understo)s(o)s(d)e(b)m(y)i
(ANSI)g(C)f(compilers,)k(and)1110 2454 y(also)k(b)m(y)e(old-st)m(yle)i
(C)f(compilers,)g(pro)m(vided)f(that)i(y)m(ou)f Fn(#define)f(const)f
Fs(to)1110 2564 y(empt)m(y)k(for)f(compilers)h(whic)m(h)f(don't)g(kno)m
(w)h(ab)s(out)f(this)g(k)m(eyw)m(ord.)630 2710 y(`)p
Fn(ANSI-C)p Fs(')142 b(ANSI)39 b(C.)h(This)e(language)j(is)f(understo)s
(o)s(d)e(b)m(y)h(ANSI)g(C)h(compilers)g(and)1110 2819
y(C)p Fn(++)29 b Fs(compilers.)630 2966 y(`)p Fn(C++)p
Fs(')286 b(C)p Fn(++)p Fs(.)40 b(This)29 b(language)j(is)f(understo)s
(o)s(d)d(b)m(y)i(C)p Fn(++)g Fs(compilers.)630 3112 y(The)g(default)g
(is)h(C.)150 3258 y(`)p Fn(\045define)e(slot-name)e Fo(name)5
b Fs(')630 3367 y(This)65 b(declaration)j(is)e(only)g(useful)f(when)g
(option)h(`)p Fn(-t)p Fs(')g(\(or,)76 b(equiv)-5 b(alen)m(tly)d(,)77
b(the)630 3477 y(`)p Fn(\045struct-type)p Fs(')27 b(declaration\))32
b(has)e(b)s(een)g(giv)m(en.)41 b(By)31 b(default,)f(the)g(program)g
(assumes)630 3587 y(the)48 b(structure)g(comp)s(onen)m(t)h(iden)m
(ti\014er)f(for)g(the)g(k)m(eyw)m(ord)h(is)f(`)p Fn(name)p
Fs('.)94 b(This)47 b(option)630 3696 y(allo)m(ws)f(an)e(arbitrary)g(c)m
(hoice)i(of)f(iden)m(ti\014er)f(for)h(this)f(comp)s(onen)m(t,)k
(although)d(it)g(still)630 3806 y(m)m(ust)30 b(o)s(ccur)g(as)h(the)g
(\014rst)e(\014eld)h(in)g(y)m(our)h(supplied)e Fn(struct)p
Fs(.)150 3952 y(`)p Fn(\045define)g(initializer-suffix)c
Fo(initializers)t Fs(')630 4061 y(This)65 b(declaration)j(is)e(only)g
(useful)f(when)g(option)h(`)p Fn(-t)p Fs(')g(\(or,)76
b(equiv)-5 b(alen)m(tly)d(,)77 b(the)630 4171 y(`)p Fn(\045struct-type)
p Fs(')33 b(declaration\))38 b(has)d(b)s(een)g(giv)m(en.)58
b(It)36 b(p)s(ermits)f(to)i(sp)s(ecify)e(initializers)630
4281 y(for)44 b(the)g(structure)g(mem)m(b)s(ers)f(follo)m(wing)i
Fo(slot-name)51 b Fs(in)43 b(empt)m(y)i(hash)e(table)i(en)m(tries.)630
4390 y(The)d(list)g(of)h(initializers)g(should)e(start)i(with)f(a)g
(comma.)77 b(By)42 b(default,)k(the)c(emitted)630 4500
y(co)s(de)31 b(will)f(zero-initialize)k(structure)c(mem)m(b)s(ers)g
(follo)m(wing)i Fo(slot-name)p Fs(.)150 4646 y(`)p Fn(\045define)d
(hash-function-name)c Fo(name)5 b Fs(')630 4755 y(Allo)m(ws)31
b(y)m(ou)f(to)g(sp)s(ecify)g(the)g(name)g(for)f(the)h(generated)h(hash)
e(function.)40 b(Default)31 b(name)630 4865 y(is)f(`)p
Fn(hash)p Fs('.)40 b(This)30 b(option)h(p)s(ermits)e(the)i(use)f(of)h
(t)m(w)m(o)g(hash)f(tables)h(in)f(the)h(same)g(\014le.)150
5011 y(`)p Fn(\045define)e(lookup-function-name)24 b
Fo(name)5 b Fs(')630 5121 y(Allo)m(ws)43 b(y)m(ou)f(to)h(sp)s(ecify)e
(the)i(name)f(for)f(the)h(generated)h(lo)s(okup)f(function.)75
b(Default)630 5230 y(name)28 b(is)g(`)p Fn(in_word_set)p
Fs('.)37 b(This)27 b(option)h(p)s(ermits)f(m)m(ultiple)i(generated)f
(hash)f(functions)630 5340 y(to)k(b)s(e)f(used)f(in)h(the)h(same)g
(application.)p eop end
%%Page: 14 16
TeXDict begin 14 15 bop 150 -116 a Fs(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fn(gperf)1520
b Fs(14)150 299 y(`)p Fn(\045define)29 b(class-name)e
Fo(name)5 b Fs(')630 408 y(This)66 b(option)i(is)f(only)h(useful)e
(when)h(option)g(`)p Fn(-L)30 b(C++)p Fs(')67 b(\(or,)77
b(equiv)-5 b(alen)m(tly)d(,)79 b(the)630 518 y(`)p Fn(\045language=C++)
p Fs(')43 b(declaration\))k(has)f(b)s(een)f(giv)m(en.)88
b(It)46 b(allo)m(ws)h(y)m(ou)f(to)g(sp)s(ecify)g(the)630
628 y(name)30 b(of)h(generated)g(C)p Fn(++)f Fs(class.)41
b(Default)32 b(name)e(is)h Fn(Perfect_Hash)p Fs(.)150
792 y(`)p Fn(\0457bit)p Fs(')190 b(This)36 b(option)i(sp)s(eci\014es)f
(that)g(all)h(strings)f(that)h(will)f(b)s(e)g(passed)f(as)i(argumen)m
(ts)f(to)h(the)630 902 y(generated)e(hash)e(function)g(and)h(the)g
(generated)g(lo)s(okup)g(function)f(will)h(solely)h(consist)630
1011 y(of)d(7-bit)h(ASCI)s(I)e(c)m(haracters)j(\(b)m(ytes)f(in)f(the)g
(range)h(0..127\).)51 b(\(Note)35 b(that)f(the)g(ANSI)e(C)630
1121 y(functions)f Fn(isalnum)f Fs(and)i Fn(isgraph)e
Fs(do)i Fl(not)41 b Fs(guaran)m(tee)33 b(that)g(a)f(b)m(yte)h(is)f(in)f
(this)h(range.)630 1230 y(Only)e(an)g(explicit)i(test)f(lik)m(e)h(`)p
Fn(c)e(>=)g('A')f(&&)h(c)g(<=)g('Z')p Fs(')f(guaran)m(tees)j(this.\))
150 1395 y(`)p Fn(\045compare-lengths)p Fs(')630 1504
y(Compare)40 b(k)m(eyw)m(ord)g(lengths)g(b)s(efore)f(trying)h(a)h
(string)e(comparison.)70 b(This)39 b(option)h(is)630
1614 y(mandatory)32 b(for)h(binary)e(comparisons)i(\(see)g(Section)h
(3.3)f([Binary)g(Strings],)g(page)g(18\).)630 1724 y(It)g(also)h(migh)m
(t)g(cut)f(do)m(wn)f(on)h(the)g(n)m(um)m(b)s(er)f(of)h(string)g
(comparisons)g(made)g(during)f(the)630 1833 y(lo)s(okup,)i(since)g(k)m
(eyw)m(ords)f(with)g(di\013eren)m(t)h(lengths)g(are)f(nev)m(er)h
(compared)f(via)h Fn(strcmp)p Fs(.)630 1943 y(Ho)m(w)m(ev)m(er,)d
(using)d(`)p Fn(\045compare-lengths)p Fs(')c(migh)m(t)29
b(greatly)h(increase)f(the)g(size)g(of)g(the)f(gen-)630
2052 y(erated)j(C)f(co)s(de)h(if)f(the)h(lo)s(okup)f(table)i(range)e
(is)h(large)g(\(whic)m(h)g(implies)g(that)g(the)f(switc)m(h)630
2162 y(option)24 b(`)p Fn(-S)p Fs(')g(or)g(`)p Fn(\045switch)p
Fs(')f(is)h(not)g(enabled\),)i(since)e(the)g(length)h(table)f(con)m
(tains)i(as)e(man)m(y)630 2271 y(elemen)m(ts)32 b(as)e(there)h(are)g
(en)m(tries)g(in)f(the)g(lo)s(okup)g(table.)150 2436
y(`)p Fn(\045compare-strncmp)p Fs(')630 2545 y(Generates)22
b(C)f(co)s(de)g(that)h(uses)e(the)i Fn(strncmp)d Fs(function)h(to)i(p)s
(erform)e(string)h(comparisons.)630 2655 y(The)30 b(default)g(action)i
(is)f(to)g(use)f Fn(strcmp)p Fs(.)150 2819 y(`)p Fn
(\045readonly-tables)p Fs(')630 2929 y(Mak)m(es)41 b(the)f(con)m(ten)m
(ts)h(of)f(all)h(generated)f(lo)s(okup)f(tables)i(constan)m(t,)i(i.e.,)
h(\\readonly".)630 3039 y(Man)m(y)31 b(compilers)g(can)g(generate)h
(more)e(e\016cien)m(t)i(co)s(de)f(for)f(this)h(b)m(y)f(putting)g(the)h
(tables)630 3148 y(in)f(readonly)h(memory)-8 b(.)150
3313 y(`)p Fn(\045enum)p Fs(')190 b(De\014ne)31 b(constan)m(t)g(v)-5
b(alues)31 b(using)f(an)g(en)m(um)g(lo)s(cal)i(to)f(the)g(lo)s(okup)f
(function)g(rather)g(than)630 3422 y(with)37 b(#de\014nes.)60
b(This)36 b(also)i(means)g(that)f(di\013eren)m(t)h(lo)s(okup)f
(functions)g(can)g(reside)g(in)630 3532 y(the)31 b(same)f(\014le.)41
b(Thanks)29 b(to)j(James)e(Clark)g Fn(<jjc@ai.mit.edu>)p
Fs(.)150 3696 y(`)p Fn(\045includes)p Fs(')630 3806 y(Include)g(the)h
(necessary)h(system)f(include)g(\014le,)g Fn(<string.h>)p
Fs(,)e(at)i(the)g(b)s(eginning)g(of)g(the)630 3915 y(co)s(de.)39
b(By)27 b(default,)g(this)f(is)g(not)g(done;)i(the)e(user)f(m)m(ust)h
(include)g(this)f(header)h(\014le)g(himself)630 4025
y(to)31 b(allo)m(w)h(compilation)g(of)e(the)h(co)s(de.)150
4189 y(`)p Fn(\045global-table)p Fs(')630 4299 y(Generate)38
b(the)f(static)h(table)f(of)g(k)m(eyw)m(ords)g(as)g(a)g(static)h
(global)g(v)-5 b(ariable,)39 b(rather)d(than)630 4408
y(hiding)30 b(it)h(inside)f(of)g(the)h(lo)s(okup)f(function)g(\(whic)m
(h)g(is)h(the)f(default)h(b)s(eha)m(vior\).)150 4573
y(`)p Fn(\045pic)p Fs(')238 b(Optimize)42 b(the)f(generated)h(table)g
(for)f(inclusion)g(in)g(shared)f(libraries.)73 b(This)40
b(reduces)630 4682 y(the)35 b(startup)g(time)h(of)f(programs)g(using)g
(a)h(shared)e(library)h(con)m(taining)i(the)e(generated)630
4792 y(co)s(de.)j(If)21 b(the)h(`)p Fn(\045struct-type)p
Fs(')d(declaration)24 b(\(or,)g(equiv)-5 b(alen)m(tly)d(,)26
b(the)c(option)g(`)p Fn(-t)p Fs('\))g(is)g(also)630 4902
y(giv)m(en,)32 b(the)f(\014rst)e(\014eld)i(of)f(the)h(user-de\014ned)e
(struct)i(m)m(ust)f(b)s(e)g(of)h(t)m(yp)s(e)g(`)p Fn(int)p
Fs(',)f(not)h(`)p Fn(char)630 5011 y(*)p Fs(',)h(b)s(ecause)f(it)i
(will)e(con)m(tain)i(o\013sets)g(in)m(to)f(the)g(string)f(p)s(o)s(ol)h
(instead)f(of)h(actual)h(strings.)630 5121 y(T)-8 b(o)33
b(con)m(v)m(ert)h(suc)m(h)f(an)f(o\013set)i(to)f(a)g(string,)h(y)m(ou)f
(can)g(use)f(the)h(expression)f(`)p Fn(stringpool)630
5230 y(+)e Fo(o)5 b Fs(',)34 b(where)f Fo(o)38 b Fs(is)33
b(the)g(o\013set.)50 b(The)32 b(string)h(p)s(o)s(ol)g(name)g(can)g(b)s
(e)g(c)m(hanged)g(through)g(the)630 5340 y(`)p Fn(\045define)c
(string-pool-name)p Fs(')d(declaration.)p eop end
%%Page: 15 17
TeXDict begin 15 16 bop 150 -116 a Fs(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fn(gperf)1520
b Fs(15)150 299 y(`)p Fn(\045define)29 b(string-pool-name)d
Fo(name)5 b Fs(')630 408 y(Allo)m(ws)42 b(y)m(ou)f(to)h(sp)s(ecify)f
(the)g(name)g(of)g(the)g(generated)h(string)f(p)s(o)s(ol)g(created)h(b)
m(y)f(the)630 518 y(declaration)48 b(`)p Fn(\045pic)p
Fs(')e(\(or,)51 b(equiv)-5 b(alen)m(tly)d(,)53 b(the)47
b(option)f(`)p Fn(-P)p Fs('\).)90 b(The)46 b(default)g(name)h(is)630
628 y(`)p Fn(stringpool)p Fs('.)38 b(This)29 b(declaration)i(p)s
(ermits)e(the)h(use)g(of)g(t)m(w)m(o)h(hash)e(tables)h(in)g(the)g(same)
630 737 y(\014le,)39 b(with)d(`)p Fn(\045pic)p Fs(')g(and)g(ev)m(en)h
(when)f(the)h(`)p Fn(\045global-table)p Fs(')c(declaration)38
b(\(or,)h(equiv)-5 b(a-)630 847 y(len)m(tly)d(,)32 b(the)f(option)g(`)p
Fn(-G)p Fs('\))f(is)h(giv)m(en.)150 1074 y(`)p Fn(\045null-strings)p
Fs(')630 1183 y(Use)39 b(NULL)g(strings)f(instead)i(of)e(empt)m(y)i
(strings)e(for)h(empt)m(y)g(k)m(eyw)m(ord)g(table)h(en)m(tries.)630
1293 y(This)e(reduces)g(the)h(startup)g(time)g(of)g(programs)g(using)f
(a)h(shared)f(library)g(con)m(taining)630 1402 y(the)29
b(generated)g(co)s(de)g(\(but)f(not)g(as)h(m)m(uc)m(h)g(as)f(the)h
(declaration)h(`)p Fn(\045pic)p Fs('\),)f(at)g(the)f(exp)s(ense)630
1512 y(of)j(one)f(more)h(test-and-branc)m(h)g(instruction)f(at)h(run)e
(time.)150 1739 y(`)p Fn(\045define)g(word-array-name)d
Fo(name)5 b Fs(')630 1848 y(Allo)m(ws)41 b(y)m(ou)f(to)h(sp)s(ecify)f
(the)g(name)g(for)f(the)i(generated)g(arra)m(y)f(con)m(taining)i(the)e
(hash)630 1958 y(table.)106 b(Default)53 b(name)e(is)h(`)p
Fn(wordlist)p Fs('.)103 b(This)51 b(option)h(p)s(ermits)f(the)h(use)g
(of)g(t)m(w)m(o)630 2068 y(hash)37 b(tables)h(in)g(the)g(same)g
(\014le,)i(ev)m(en)e(when)f(the)h(option)g(`)p Fn(-G)p
Fs(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)42 b(the)630
2177 y(`)p Fn(\045global-table)p Fs(')27 b(declaration\))33
b(is)d(giv)m(en.)150 2404 y(`)p Fn(\045define)f(length-table-name)c
Fo(name)5 b Fs(')630 2514 y(Allo)m(ws)36 b(y)m(ou)e(to)i(sp)s(ecify)e
(the)h(name)f(for)g(the)h(generated)h(arra)m(y)f(con)m(taining)h(the)f
(length)630 2623 y(table.)77 b(Default)43 b(name)g(is)f(`)p
Fn(lengthtable)p Fs('.)74 b(This)41 b(option)i(p)s(ermits)e(the)h(use)g
(of)h(t)m(w)m(o)630 2733 y(length)33 b(tables)h(in)f(the)g(same)g
(\014le,)h(ev)m(en)g(when)e(the)h(option)h(`)p Fn(-G)p
Fs(')f(\(or,)h(equiv)-5 b(alen)m(tly)d(,)36 b(the)630
2842 y(`)p Fn(\045global-table)p Fs(')27 b(declaration\))33
b(is)d(giv)m(en.)150 3069 y(`)p Fn(\045switch=)p Fo(coun)m(t)r
Fs(')630 3179 y(Causes)35 b(the)h(generated)h(C)e(co)s(de)h(to)h(use)e
(a)h Fn(switch)e Fs(statemen)m(t)k(sc)m(heme,)g(rather)d(than)630
3289 y(an)j(arra)m(y)g(lo)s(okup)g(table.)64 b(This)37
b(can)h(lead)h(to)f(a)h(reduction)f(in)f(b)s(oth)g(time)i(and)e(space)
630 3398 y(requiremen)m(ts)43 b(for)h(some)f(input)g(\014les.)80
b(The)43 b(argumen)m(t)h(to)g(this)f(option)h(determines)630
3508 y(ho)m(w)33 b(man)m(y)f Fn(switch)f Fs(statemen)m(ts)k(are)e
(generated.)49 b(A)32 b(v)-5 b(alue)34 b(of)e(1)i(generates)g(1)f
Fn(switch)630 3617 y Fs(con)m(taining)25 b(all)e(the)h(elemen)m(ts,)i
(a)d(v)-5 b(alue)23 b(of)h(2)f(generates)h(2)g(tables)f(with)g(1/2)h
(the)g(elemen)m(ts)630 3727 y(in)38 b(eac)m(h)h Fn(switch)p
Fs(,)g(etc.)65 b(This)37 b(is)h(useful)g(since)g(man)m(y)h(C)e
(compilers)i(cannot)g(correctly)630 3836 y(generate)29
b(co)s(de)f(for)f(large)h Fn(switch)e Fs(statemen)m(ts.)41
b(This)27 b(option)h(w)m(as)g(inspired)e(in)h(part)g(b)m(y)630
3946 y(Keith)k(Bostic's)h(original)f(C)f(program.)150
4173 y(`)p Fn(\045omit-struct-type)p Fs(')630 4282 y(Prev)m(en)m(ts)f
(the)e(transfer)h(of)f(the)h(t)m(yp)s(e)g(declaration)h(to)g(the)f
(output)f(\014le.)40 b(Use)28 b(this)f(option)630 4392
y(if)j(the)h(t)m(yp)s(e)f(is)h(already)g(de\014ned)e(elsewhere.)150
4751 y Fj(3.1.1.3)63 b(C)41 b(Co)s(de)g(Inclusion)275
5011 y Fs(Using)26 b(a)g(syn)m(tax)h(similar)f(to)h(GNU)f(utilities)i
Fn(flex)d Fs(and)g Fn(bison)p Fs(,)h(it)g(is)g(p)s(ossible)g(to)g
(directly)h(include)150 5121 y(C)i(source)h(text)g(and)f(commen)m(ts)h
(v)m(erbatim)g(in)m(to)h(the)e(generated)i(output)e(\014le.)40
b(This)29 b(is)g(accomplished)150 5230 y(b)m(y)37 b(enclosing)h(the)g
(region)g(inside)e(left-justi\014ed)i(surrounding)d(`)p
Fn(\045{)p Fs(',)k(`)p Fn(\045})p Fs(')e(pairs.)61 b(Here)38
b(is)f(an)g(input)150 5340 y(fragmen)m(t)31 b(based)f(on)g(the)h
(previous)f(example)h(that)g(illustrates)g(this)g(feature:)p
eop end
%%Page: 16 18
TeXDict begin 16 17 bop 150 -116 a Fs(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fn(gperf)1520
b Fs(16)390 299 y Fn(\045{)390 403 y(#include)46 b(<assert.h>)390
506 y(/*)h(This)g(section)f(of)h(code)f(is)i(inserted)d(directly)h
(into)g(the)h(output.)f(*/)390 610 y(int)h(return_month_days)c
(\(struct)j(month)g(*months,)g(int)h(is_leap_year\);)390
714 y(\045})390 818 y(struct)f(month)g({)i(char)f(*name;)f(int)h
(number;)e(int)i(days;)g(int)g(leap_days;)e(};)390 922
y(\045\045)390 1025 y(january,)141 b(1,)47 b(31,)g(31)390
1129 y(february,)93 b(2,)47 b(28,)g(29)390 1233 y(march,)237
b(3,)47 b(31,)g(31)390 1337 y(...)150 1632 y Fj(3.1.2)63
b(F)-10 b(ormat)41 b(for)h(Keyw)m(ord)e(En)m(tries)275
1865 y Fs(The)33 b(second)i(input)e(\014le)i(format)g(section)g(con)m
(tains)h(lines)e(of)h(k)m(eyw)m(ords)g(and)e(an)m(y)i(asso)s(ciated)h
(at-)150 1974 y(tributes)i(y)m(ou)h(migh)m(t)g(supply)-8
b(.)64 b(A)39 b(line)f(b)s(eginning)g(with)g(`)p Fn(#)p
Fs(')h(in)f(the)h(\014rst)f(column)g(is)g(considered)h(a)150
2084 y(commen)m(t.)53 b(Ev)m(erything)34 b(follo)m(wing)h(the)g(`)p
Fn(#)p Fs(')f(is)g(ignored,)h(up)e(to)i(and)e(including)h(the)g(follo)m
(wing)h(new-)150 2193 y(line.)57 b(A)36 b(line)h(b)s(eginning)e(with)g
(`)p Fn(\045)p Fs(')h(in)g(the)g(\014rst)f(column)g(is)h(an)g(option)g
(declaration)i(and)d(m)m(ust)h(not)150 2303 y(o)s(ccur)30
b(within)g(the)h(k)m(eyw)m(ords)f(section.)275 2477 y(The)36
b(\014rst)g(\014eld)g(of)h(eac)m(h)g(non-commen)m(t)h(line)f(is)g(alw)m
(a)m(ys)h(the)f(k)m(eyw)m(ord)g(itself.)60 b(It)37 b(can)g(b)s(e)f(giv)
m(en)150 2587 y(in)f(t)m(w)m(o)h(w)m(a)m(ys:)51 b(as)35
b(a)g(simple)g(name,)i(i.e.,)g(without)e(surrounding)e(string)i
(quotation)h(marks,)g(or)f(as)h(a)150 2696 y(string)i(enclosed)g(in)f
(double-quotes,)j(in)d(C)h(syn)m(tax,)i(p)s(ossibly)d(with)g(bac)m
(kslash)h(escap)s(es)g(lik)m(e)h Fn(\\")e Fs(or)150 2806
y Fn(\\234)23 b Fs(or)i Fn(\\xa8)p Fs(.)37 b(In)24 b(either)h(case,)i
(it)e(m)m(ust)f(start)h(righ)m(t)g(at)g(the)g(b)s(eginning)e(of)i(the)g
(line,)h(without)e(leading)150 2916 y(whitespace.)58
b(In)35 b(this)h(con)m(text,)j(a)e(\\\014eld")f(is)g(considered)g(to)g
(extend)g(up)f(to,)j(but)d(not)h(include,)i(the)150 3025
y(\014rst)g(blank,)i(comma,)i(or)c(newline.)65 b(Here)39
b(is)f(a)h(simple)g(example)g(tak)m(en)g(from)f(a)h(partial)h(list)f
(of)f(C)150 3135 y(reserv)m(ed)31 b(w)m(ords:)390 3303
y Fn(#)47 b(These)g(are)g(a)g(few)g(C)h(reserved)d(words,)h(see)h(the)g
(c.gperf)f(file)390 3407 y(#)h(for)g(a)h(complete)d(list)i(of)g(ANSI)g
(C)g(reserved)f(words.)390 3511 y(unsigned)390 3615 y(sizeof)390
3718 y(switch)390 3822 y(signed)390 3926 y(if)390 4030
y(default)390 4133 y(for)390 4237 y(while)390 4341 y(return)275
4508 y Fs(Note)38 b(that)f(unlik)m(e)g Fn(flex)f Fs(or)h
Fn(bison)e Fs(the)j(\014rst)e(`)p Fn(\045\045)p Fs(')g(mark)m(er)i(ma)m
(y)f(b)s(e)f(elided)h(if)g(the)g(declaration)150 4618
y(section)32 b(is)e(empt)m(y)-8 b(.)275 4792 y(Additional)29
b(\014elds)f(ma)m(y)h(optionally)h(follo)m(w)g(the)f(leading)g(k)m(eyw)
m(ord.)41 b(Fields)29 b(should)e(b)s(e)h(separated)150
4902 y(b)m(y)g(commas,)i(and)d(terminate)j(at)f(the)f(end)g(of)g(line.)
41 b(What)29 b(these)f(\014elds)g(mean)g(is)h(en)m(tirely)g(up)e(to)i
(y)m(ou;)150 5011 y(they)k(are)h(used)e(to)i(initialize)h(the)f(elemen)
m(ts)g(of)f(the)h(user-de\014ned)d Fn(struct)h Fs(pro)m(vided)g(b)m(y)h
(y)m(ou)h(in)f(the)150 5121 y(declaration)40 b(section.)67
b(If)39 b(the)g(`)p Fn(-t)p Fs(')f(option)h(\(or,)j(equiv)-5
b(alen)m(tly)d(,)43 b(the)c(`)p Fn(\045struct-type)p
Fs(')d(declaration\))150 5230 y(is)g Fl(not)45 b Fs(enabled)36
b(these)g(\014elds)g(are)g(simply)f(ignored.)58 b(All)36
b(previous)g(examples)g(except)h(the)f(last)h(one)150
5340 y(con)m(tain)32 b(k)m(eyw)m(ord)f(attributes.)p
eop end
%%Page: 17 19
TeXDict begin 17 18 bop 150 -116 a Fs(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fn(gperf)1520
b Fs(17)150 299 y Fj(3.1.3)63 b(Including)41 b(Additional)g(C)g(F)-10
b(unctions)275 490 y Fs(The)30 b(optional)i(third)e(section)i(also)g
(corresp)s(onds)d(closely)j(with)f(con)m(v)m(en)m(tions)i(found)c(in)i
Fn(flex)f Fs(and)150 600 y Fn(bison)p Fs(.)36 b(All)23
b(text)g(in)f(this)f(section,)k(starting)e(at)g(the)f(\014nal)f(`)p
Fn(\045\045)p Fs(')h(and)f(extending)i(to)f(the)g(end)g(of)g(the)g
(input)150 710 y(\014le,)31 b(is)g(included)g(v)m(erbatim)g(in)m(to)h
(the)f(generated)h(output)f(\014le.)42 b(Naturally)-8
b(,)33 b(it)e(is)g(y)m(our)g(resp)s(onsibilit)m(y)150
819 y(to)g(ensure)f(that)h(the)f(co)s(de)h(con)m(tained)g(in)g(this)f
(section)h(is)g(v)-5 b(alid)30 b(C.)150 1040 y Fj(3.1.4)63
b(Where)41 b(to)g(place)f(directiv)m(es)g(for)i(GNU)g
Fi(indent)p Fj(.)275 1231 y Fs(If)26 b(y)m(ou)i(w)m(an)m(t)g(to)g(in)m
(v)m(ok)m(e)h(GNU)f Fn(indent)e Fs(on)h(a)g Fn(gperf)f
Fs(input)h(\014le,)h(y)m(ou)f(will)h(see)g(that)g(GNU)g
Fn(indent)150 1341 y Fs(do)s(esn't)33 b(understand)e(the)i(`)p
Fn(\045\045)p Fs(',)h(`)p Fn(\045{)p Fs(')e(and)h(`)p
Fn(\045})p Fs(')g(directiv)m(es)h(that)f(con)m(trol)i
Fn(gperf)p Fs('s)c(in)m(terpretation)k(of)150 1451 y(the)23
b(input)f(\014le.)38 b(Therefore)23 b(y)m(ou)g(ha)m(v)m(e)h(to)g
(insert)f(some)g(directiv)m(es)h(for)f(GNU)h Fn(indent)p
Fs(.)36 b(More)24 b(precisely)-8 b(,)150 1560 y(assuming)30
b(the)h(most)f(general)i(input)d(\014le)i(structure)390
1688 y Fn(declarations)44 b(part)j(1)390 1791 y(\045{)390
1895 y(verbatim)f(code)390 1999 y(\045})390 2103 y(declarations)e(part)
j(2)390 2207 y(\045\045)390 2310 y(keywords)390 2414
y(\045\045)390 2518 y(functions)150 2644 y Fs(y)m(ou)31
b(w)m(ould)f(insert)g(`)p Fn(*INDENT-OFF*)p Fs(')e(and)h(`)p
Fn(*INDENT-ON*)p Fs(')f(commen)m(ts)k(as)e(follo)m(ws:)390
2772 y Fn(/*)47 b(*INDENT-OFF*)e(*/)390 2875 y(declarations)f(part)j(1)
390 2979 y(\045{)390 3083 y(/*)g(*INDENT-ON*)e(*/)390
3187 y(verbatim)h(code)390 3291 y(/*)h(*INDENT-OFF*)e(*/)390
3394 y(\045})390 3498 y(declarations)f(part)j(2)390 3602
y(\045\045)390 3706 y(keywords)390 3809 y(\045\045)390
3913 y(/*)g(*INDENT-ON*)e(*/)390 4017 y(functions)150
4263 y Fr(3.2)68 b(Output)45 b(F)-11 b(ormat)45 b(for)g(Generated)h(C)f
(Co)t(de)g(with)g Fk(gperf)275 4454 y Fs(Sev)m(eral)28
b(options)g(con)m(trol)h(ho)m(w)e(the)h(generated)h(C)e(co)s(de)h(app)s
(ears)e(on)i(the)g(standard)e(output.)40 b(Tw)m(o)150
4564 y(C)i(functions)g(are)h(generated.)77 b(They)42
b(are)h(called)g Fn(hash)f Fs(and)f Fn(in_word_set)p
Fs(,)i(although)g(y)m(ou)f(ma)m(y)150 4673 y(mo)s(dify)30
b(their)g(names)h(with)f(a)h(command-line)g(option.)42
b(Both)31 b(functions)f(require)g(t)m(w)m(o)i(argumen)m(ts,)g(a)150
4783 y(string,)h Fn(char)c(*)i Fo(str)p Fs(,)i(and)e(a)i(length)f
(parameter,)h Fn(int)e Fo(len)p Fs(.)46 b(Their)31 b(default)h
(function)g(protot)m(yp)s(es)h(are)150 4892 y(as)e(follo)m(ws:)3525
5121 y(F)-8 b(unction)-3724 b Fh(unsigned)41 b(int)e
Fg(hash)44 b Ff(\()p Fn(const)30 b(char)f(*)h Fo(str)p
Fn(,)g(unsigned)e(int)h Fo(len)p Ff(\))390 5230 y Fs(By)35
b(default,)h(the)e(generated)i Fn(hash)d Fs(function)h(returns)f(an)i
(in)m(teger)h(v)-5 b(alue)34 b(created)i(b)m(y)e(adding)390
5340 y Fo(len)28 b Fs(to)g(sev)m(eral)h(user-sp)s(eci\014ed)d
Fo(str)34 b Fs(b)m(yte)28 b(p)s(ositions)g(indexed)f(in)m(to)h(an)f
Fo(asso)s(ciated)i(v)-5 b(alues)32 b Fs(table)p eop end
%%Page: 18 20
TeXDict begin 18 19 bop 150 -116 a Fs(Chapter)30 b(3:)41
b(High-Lev)m(el)32 b(Description)g(of)e(GNU)h Fn(gperf)1520
b Fs(18)390 299 y(stored)28 b(in)g(a)g(lo)s(cal)i(static)f(arra)m(y)-8
b(.)41 b(The)28 b(asso)s(ciated)h(v)-5 b(alues)29 b(table)g(is)f
(constructed)g(in)m(ternally)h(b)m(y)390 408 y Fn(gperf)34
b Fs(and)g(later)i(output)e(as)i(a)f(static)i(lo)s(cal)f(C)e(arra)m(y)i
(called)g(`)p Fn(hash_table)p Fs('.)52 b(The)35 b(relev)-5
b(an)m(t)390 518 y(selected)28 b(p)s(ositions)f(\(i.e.)41
b(indices)27 b(in)m(to)h Fo(str)7 b Fs(\))26 b(are)h(sp)s(eci\014ed)f
(via)i(the)f(`)p Fn(-k)p Fs(')g(option)g(when)f(running)390
628 y Fn(gperf)p Fs(,)j(as)i(detailed)g(in)f(the)h Fl(Options)39
b Fs(section)31 b(b)s(elo)m(w)g(\(see)g(Chapter)f(4)h([Options],)f
(page)h(19\).)3525 857 y(F)-8 b(unction)-3724 b Fg(in)p
253 857 35 5 v 41 w(w)m(ord)p 542 857 V 41 w(set)44 b
Ff(\()p Fn(const)30 b(char)f(*)h Fo(str)p Fn(,)g(unsigned)e(int)h
Fo(len)p Ff(\))390 967 y Fs(If)k Fo(str)41 b Fs(is)33
b(in)h(the)g(k)m(eyw)m(ord)g(set,)i(returns)c(a)j(p)s(oin)m(ter)f(to)g
(that)h(k)m(eyw)m(ord.)51 b(More)35 b(exactly)-8 b(,)37
b(if)d(the)390 1076 y(option)d(`)p Fn(-t)p Fs(')g(\(or,)g(equiv)-5
b(alen)m(tly)d(,)33 b(the)e(`)p Fn(\045struct-type)p
Fs(')d(declaration\))k(w)m(as)f(giv)m(en,)h(it)f(returns)f(a)390
1186 y(p)s(oin)m(ter)g(to)h(the)g(matc)m(hing)h(k)m(eyw)m(ord's)e
(structure.)41 b(Otherwise)30 b(it)h(returns)e Fn(NULL)p
Fs(.)275 1367 y(If)39 b(the)i(option)f(`)p Fn(-c)p Fs(')g(\(or,)j
(equiv)-5 b(alen)m(tly)d(,)45 b(the)c(`)p Fn(\045compare-strncmp)p
Fs(')36 b(declaration\))42 b(is)e(not)g(used,)150 1477
y Fo(str)k Fs(m)m(ust)37 b(b)s(e)f(a)i(NUL)f(terminated)h(string)f(of)h
(exactly)h(length)e Fo(len)p Fs(.)62 b(If)37 b(`)p Fn(-c)p
Fs(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)42 b(the)150
1587 y(`)p Fn(\045compare-strncmp)p Fs(')22 b(declaration\))28
b(is)e(used,)g Fo(str)32 b Fs(m)m(ust)26 b(simply)g(b)s(e)f(an)h(arra)m
(y)g(of)g Fo(len)g Fs(b)m(ytes)h(and)e(do)s(es)150 1696
y(not)31 b(need)f(to)h(b)s(e)f(NUL)g(terminated.)275
1830 y(The)f(co)s(de)i(generated)g(for)g(these)f(t)m(w)m(o)i(functions)
e(is)g(a\013ected)i(b)m(y)f(the)f(follo)m(wing)i(options:)150
1987 y(`)p Fn(-t)p Fs(')150 2097 y(`)p Fn(--struct-type)p
Fs(')630 2207 y(Mak)m(e)g(use)e(of)h(the)f(user-de\014ned)f
Fn(struct)p Fs(.)150 2364 y(`)p Fn(-S)h Fo(total-switc)m(h-statemen)m
(ts)t Fs(')150 2474 y(`)p Fn(--switch=)p Fo(total-switc)m(h-statemen)m
(ts)t Fs(')630 2583 y(Generate)22 b(1)f(or)g(more)g(C)f
Fn(switch)f Fs(statemen)m(t)j(rather)f(than)f(use)h(a)g(large,)j(\(and)
c(p)s(oten)m(tially)630 2693 y(sparse\))j(static)h(arra)m(y)-8
b(.)40 b(Although)23 b(the)g(exact)h(time)g(and)e(space)i(sa)m(vings)g
(of)f(this)g(approac)m(h)630 2802 y(v)-5 b(ary)32 b(according)g(to)h(y)
m(our)e(C)g(compiler's)i(degree)f(of)g(optimization,)i(this)d(metho)s
(d)h(often)630 2912 y(results)e(in)g(smaller)h(and)f(faster)h(co)s(de.)
275 3070 y(If)c(the)h(`)p Fn(-t)p Fs(')g(and)f(`)p Fn(-S)p
Fs(')g(options)i(\(or,)f(equiv)-5 b(alen)m(tly)d(,)31
b(the)d(`)p Fn(\045struct-type)p Fs(')d(and)i(`)p Fn(\045switch)p
Fs(')g(declara-)150 3179 y(tions\))f(are)f(omitted,)i(the)e(default)g
(action)h(is)f(to)h(generate)g(a)g Fn(char)j(*)24 b Fs(arra)m(y)i(con)m
(taining)g(the)f(k)m(eyw)m(ords,)150 3289 y(together)32
b(with)e(additional)i(empt)m(y)f(strings)f(used)g(for)g(padding)g(the)g
(arra)m(y)-8 b(.)43 b(By)30 b(exp)s(erimen)m(ting)h(with)150
3398 y(the)g(v)-5 b(arious)32 b(input)e(and)g(output)h(options,)h(and)f
(timing)g(the)h(resulting)f(C)g(co)s(de,)h(y)m(ou)f(can)h(determine)150
3508 y(the)f(b)s(est)f(option)g(c)m(hoices)i(for)f(di\013eren)m(t)f(k)m
(eyw)m(ord)h(set)g(c)m(haracteristics.)150 3763 y Fr(3.3)68
b(Use)46 b(of)f(NUL)g(b)l(ytes)275 3954 y Fs(By)30 b(default,)h(the)f
(co)s(de)g(generated)i(b)m(y)e Fn(gperf)e Fs(op)s(erates)j(on)f(zero)h
(terminated)g(strings,)f(the)g(usual)150 4064 y(represen)m(tation)41
b(of)e(strings)h(in)f(C.)h(This)e(means)i(that)g(the)g(k)m(eyw)m(ords)g
(in)f(the)h(input)f(\014le)g(m)m(ust)h(not)150 4173 y(con)m(tain)d(NUL)
f(b)m(ytes,)i(and)e(the)g Fo(str)42 b Fs(argumen)m(t)36
b(passed)g(to)g Fn(hash)f Fs(or)h Fn(in_word_set)d Fs(m)m(ust)j(b)s(e)f
(NUL)150 4283 y(terminated)c(and)f(ha)m(v)m(e)h(exactly)h(length)f
Fo(len)p Fs(.)275 4417 y(If)k(option)i(`)p Fn(-c)p Fs(')f(\(or,)i
(equiv)-5 b(alen)m(tly)d(,)40 b(the)c(`)p Fn(\045compare-strncmp)p
Fs(')c(declaration\))38 b(is)e(used,)h(then)f(the)150
4526 y Fo(str)e Fs(argumen)m(t)29 b(do)s(es)e(not)h(need)g(to)h(b)s(e)e
(NUL)h(terminated.)41 b(The)27 b(co)s(de)h(generated)h(b)m(y)f
Fn(gperf)f Fs(will)h(only)150 4636 y(access)h(the)f(\014rst)g
Fo(len)p Fs(,)g(not)h Fo(len)p Fn(+)p Fo(1)p Fs(,)f(b)m(ytes)h
(starting)g(at)f Fo(str)p Fs(.)40 b(Ho)m(w)m(ev)m(er,)31
b(the)d(k)m(eyw)m(ords)g(in)g(the)g(input)f(\014le)150
4745 y(still)k(m)m(ust)g(not)f(con)m(tain)i(NUL)e(b)m(ytes.)275
4879 y(If)35 b(option)i(`)p Fn(-l)p Fs(')f(\(or,)i(equiv)-5
b(alen)m(tly)d(,)40 b(the)c(`)p Fn(\045compare-lengths)p
Fs(')c(declaration\))38 b(is)e(used,)h(then)f(the)150
4988 y(hash)c(table)i(p)s(erforms)d(binary)h(comparison.)47
b(The)33 b(k)m(eyw)m(ords)g(in)f(the)h(input)f(\014le)g(ma)m(y)i(con)m
(tain)g(NUL)150 5098 y(b)m(ytes,)46 b(written)41 b(in)h(string)g(syn)m
(tax)g(as)g Fn(\\000)f Fs(or)h Fn(\\x00)p Fs(,)i(and)d(the)h(co)s(de)g
(generated)h(b)m(y)f Fn(gperf)f Fs(will)150 5208 y(treat)i(NUL)e(lik)m
(e)i(an)m(y)f(other)g(b)m(yte.)75 b(Also,)45 b(in)c(this)g(case)i(the)f
(`)p Fn(-c)p Fs(')f(option)h(\(or,)j(equiv)-5 b(alen)m(tly)d(,)47
b(the)150 5317 y(`)p Fn(\045compare-strncmp)p Fs(')26
b(declaration\))33 b(is)d(ignored.)p eop end
%%Page: 19 21
TeXDict begin 19 20 bop 150 -116 a Fs(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fn(gperf)2433 b Fs(19)150 299 y
Fp(4)80 b(In)l(v)l(oking)52 b Fm(gperf)275 542 y Fs(There)35
b(are)i Fl(many)46 b Fs(options)36 b(to)i Fn(gperf)p
Fs(.)57 b(They)36 b(w)m(ere)h(added)e(to)j(mak)m(e)f(the)g(program)f
(more)g(con-)150 651 y(v)m(enien)m(t)f(for)e(use)g(with)g(real)h
(applications.)50 b(\\On-line")34 b(help)f(is)g(readily)h(a)m(v)-5
b(ailable)36 b(via)e(the)f(`)p Fn(--help)p Fs(')150 761
y(option.)41 b(Here)31 b(is)f(the)h(complete)h(list)f(of)f(options.)150
1025 y Fr(4.1)68 b(Sp)t(ecifying)45 b(the)g(Lo)t(cation)h(of)f(the)g
(Output)g(File)150 1247 y Fs(`)p Fn(--output-file=)p
Fo(\014le)5 b Fs(')630 1357 y(Allo)m(ws)31 b(y)m(ou)g(to)g(sp)s(ecify)f
(the)h(name)f(of)h(the)f(\014le)h(to)g(whic)m(h)f(the)h(output)f(is)g
(written)g(to.)275 1521 y(The)f(results)i(are)f(written)h(to)g
(standard)e(output)h(if)h(no)f(output)g(\014le)g(is)h(sp)s(eci\014ed)f
(or)g(if)g(it)h(is)g(`)p Fn(-)p Fs('.)150 1785 y Fr(4.2)68
b(Options)45 b(that)h(a\013ect)g(In)l(terpretation)h(of)e(the)g(Input)g
(File)275 1981 y Fs(These)d(options)h(are)g(also)g(a)m(v)-5
b(ailable)45 b(as)e(declarations)h(in)e(the)h(input)f(\014le)g(\(see)i
(Section)f(3.1.1.2)150 2090 y([Gp)s(erf)30 b(Declarations],)j(page)e
(12\).)150 2254 y(`)p Fn(-e)f Fo(k)m(eyw)m(ord-delimiter-list)r
Fs(')150 2364 y(`)p Fn(--delimiters=)p Fo(k)m(eyw)m(ord-delimiter-list)
r Fs(')630 2473 y(Allo)m(ws)g(y)m(ou)f(to)g(pro)m(vide)g(a)g(string)g
(con)m(taining)h(delimiters)g(used)d(to)j(separate)g(k)m(eyw)m(ords)630
2583 y(from)k(their)h(attributes.)54 b(The)34 b(default)g(is)h
Fn(")p Fs(,)p Fn(")p Fs(.)53 b(This)34 b(option)h(is)f(essen)m(tial)j
(if)d(y)m(ou)h(w)m(an)m(t)630 2692 y(to)f(use)e(k)m(eyw)m(ords)h(that)h
(ha)m(v)m(e)g(em)m(b)s(edded)e(commas)h(or)g(newlines.)48
b(One)33 b(useful)f(tric)m(k)i(is)630 2802 y(to)d(use)f(-e'T)-8
b(AB',)33 b(where)c(T)-8 b(AB)31 b(is)g(the)f(literal)i(tab)f(c)m
(haracter.)150 2964 y(`)p Fn(-t)p Fs(')150 3074 y(`)p
Fn(--struct-type)p Fs(')630 3183 y(Allo)m(ws)h(y)m(ou)g(to)g(include)f
(a)g Fn(struct)f Fs(t)m(yp)s(e)h(declaration)i(for)e(generated)h(co)s
(de.)44 b(An)m(y)31 b(text)630 3293 y(b)s(efore)43 b(a)i(pair)e(of)h
(consecutiv)m(e)i(`)p Fn(\045\045)p Fs(')d(is)h(considered)g(part)f(of)
h(the)g(t)m(yp)s(e)g(declaration.)630 3403 y(Keyw)m(ords)39
b(and)g(additional)h(\014elds)f(ma)m(y)i(follo)m(w)f(this,)i(one)e
(group)f(of)h(\014elds)f(p)s(er)f(line.)630 3512 y(A)31
b(set)g(of)g(examples)g(for)f(generating)i(p)s(erfect)e(hash)g(tables)i
(and)e(functions)g(for)g(Ada,)h(C,)630 3622 y(C)p Fn(++)p
Fs(,)24 b(P)m(ascal,)j(Mo)s(dula)c(2,)j(Mo)s(dula)d(3)h(and)f(Ja)m(v)-5
b(aScript)24 b(reserv)m(ed)f(w)m(ords)g(are)h(distributed)630
3731 y(with)30 b(this)g(release.)150 3894 y(`)p Fn(--ignore-case)p
Fs(')630 4003 y(Consider)43 b(upp)s(er)f(and)i(lo)m(w)m(er)h(case)g
(ASCI)s(I)e(c)m(haracters)i(as)f(equiv)-5 b(alen)m(t.)83
b(The)44 b(string)630 4113 y(comparison)28 b(will)h(use)f(a)h(case)g
(insigni\014can)m(t)g(c)m(haracter)h(comparison.)40 b(Note)29
b(that)g(lo)s(cale)630 4222 y(dep)s(enden)m(t)e(case)i(mappings)f(are)g
(ignored.)40 b(This)28 b(option)g(is)h(therefore)f(not)h(suitable)f(if)
h(a)630 4332 y(prop)s(erly)k(in)m(ternationalized)k(or)d(lo)s(cale)i(a)
m(w)m(are)g(case)f(mapping)f(should)f(b)s(e)h(used.)52
b(\(F)-8 b(or)630 4442 y(example,)31 b(in)e(a)g(T)-8
b(urkish)29 b(lo)s(cale,)i(the)f(upp)s(er)d(case)k(equiv)-5
b(alen)m(t)30 b(of)g(the)g(lo)m(w)m(ercase)h(ASCI)s(I)630
4551 y(letter)42 b(`)p Fn(i)p Fs(')g(is)f(the)g(non-ASCI)s(I)e(c)m
(haracter)k(`)p Fn(capital)29 b(i)h(with)f(dot)g(above)p
Fs('.\))72 b(F)-8 b(or)42 b(this)630 4661 y(case,)d(it)d(is)g(b)s
(etter)h(to)f(apply)g(an)g(upp)s(ercase)f(or)h(lo)m(w)m(ercase)i(con)m
(v)m(ersion)g(on)e(the)g(string)630 4770 y(b)s(efore)30
b(passing)g(it)h(to)g(the)g Fn(gperf)e Fs(generated)i(function.)150
5035 y Fr(4.3)68 b(Options)45 b(to)h(sp)t(ecify)f(the)g(Language)h(for)
f(the)g(Output)f(Co)t(de)275 5230 y Fs(These)e(options)h(are)g(also)g
(a)m(v)-5 b(ailable)45 b(as)e(declarations)h(in)e(the)h(input)f(\014le)
g(\(see)i(Section)f(3.1.1.2)150 5340 y([Gp)s(erf)30 b(Declarations],)j
(page)e(12\).)p eop end
%%Page: 20 22
TeXDict begin 20 21 bop 150 -116 a Fs(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fn(gperf)2433 b Fs(20)150 299 y(`)p
Fn(-L)30 b Fo(generated-language-name)5 b Fs(')150 408
y(`)p Fn(--language=)p Fo(generated-language-name)g Fs(')630
518 y(Instructs)33 b Fn(gperf)f Fs(to)i(generate)h(co)s(de)f(in)f(the)h
(language)h(sp)s(eci\014ed)d(b)m(y)i(the)g(option's)g(ar-)630
628 y(gumen)m(t.)41 b(Languages)31 b(handled)f(are)h(curren)m(tly:)630
798 y(`)p Fn(KR-C)p Fs(')238 b(Old-st)m(yle)27 b(K&R)f(C.)g(This)f
(language)j(is)f(understo)s(o)s(d)d(b)m(y)i(old-st)m(yle)i(C)e(com-)
1110 907 y(pilers)e(and)g(ANSI)f(C)h(compilers,)i(but)e(ANSI)f(C)h
(compilers)h(ma)m(y)f(\015ag)h(w)m(arn-)1110 1017 y(ings)30
b(\(or)h(ev)m(en)g(errors\))f(b)s(ecause)h(of)f(lac)m(king)i(`)p
Fn(const)p Fs('.)630 1187 y(`)p Fn(C)p Fs(')382 b(Common)23
b(C.)f(This)h(language)h(is)f(understo)s(o)s(d)e(b)m(y)i(ANSI)g(C)f
(compilers,)k(and)1110 1296 y(also)k(b)m(y)e(old-st)m(yle)i(C)f
(compilers,)g(pro)m(vided)f(that)i(y)m(ou)f Fn(#define)f(const)f
Fs(to)1110 1406 y(empt)m(y)k(for)f(compilers)h(whic)m(h)f(don't)g(kno)m
(w)h(ab)s(out)f(this)g(k)m(eyw)m(ord.)630 1576 y(`)p
Fn(ANSI-C)p Fs(')142 b(ANSI)39 b(C.)h(This)e(language)j(is)f(understo)s
(o)s(d)e(b)m(y)h(ANSI)g(C)h(compilers)g(and)1110 1685
y(C)p Fn(++)29 b Fs(compilers.)630 1855 y(`)p Fn(C++)p
Fs(')286 b(C)p Fn(++)p Fs(.)40 b(This)29 b(language)j(is)f(understo)s
(o)s(d)d(b)m(y)i(C)p Fn(++)g Fs(compilers.)630 2025 y(The)g(default)g
(is)h(C.)150 2195 y(`)p Fn(-a)p Fs(')334 b(This)33 b(option)h(is)f
(supp)s(orted)f(for)h(compatibilit)m(y)j(with)d(previous)g(releases)i
(of)f Fn(gperf)p Fs(.)49 b(It)630 2305 y(do)s(es)30 b(not)h(do)f(an)m
(ything.)150 2475 y(`)p Fn(-g)p Fs(')334 b(This)33 b(option)h(is)f
(supp)s(orted)f(for)h(compatibilit)m(y)j(with)d(previous)g(releases)i
(of)f Fn(gperf)p Fs(.)49 b(It)630 2584 y(do)s(es)30 b(not)h(do)f(an)m
(ything.)150 2868 y Fr(4.4)68 b(Options)45 b(for)g(\014ne)g(tuning)g
(Details)i(in)e(the)g(Output)f(Co)t(de)275 3071 y Fs(Most)21
b(of)g(these)g(options)g(are)g(also)h(a)m(v)-5 b(ailable)23
b(as)e(declarations)h(in)f(the)g(input)e(\014le)i(\(see)h(Section)f
(3.1.1.2)150 3181 y([Gp)s(erf)30 b(Declarations],)j(page)e(12\).)150
3356 y(`)p Fn(-K)f Fo(slot-name)5 b Fs(')150 3466 y(`)p
Fn(--slot-name=)p Fo(slot-name)g Fs(')630 3575 y(This)21
b(option)h(is)g(only)f(useful)g(when)g(option)h(`)p Fn(-t)p
Fs(')f(\(or,)j(equiv)-5 b(alen)m(tly)d(,)26 b(the)c(`)p
Fn(\045struct-type)p Fs(')630 3685 y(declaration\))41
b(has)e(b)s(een)f(giv)m(en.)67 b(By)39 b(default,)j(the)d(program)g
(assumes)f(the)h(structure)630 3795 y(comp)s(onen)m(t)28
b(iden)m(ti\014er)h(for)f(the)g(k)m(eyw)m(ord)g(is)h(`)p
Fn(name)p Fs('.)39 b(This)27 b(option)i(allo)m(ws)g(an)f(arbitrary)630
3904 y(c)m(hoice)33 b(of)f(iden)m(ti\014er)g(for)f(this)h(comp)s(onen)m
(t,)g(although)g(it)g(still)g(m)m(ust)g(o)s(ccur)f(as)h(the)g(\014rst)
630 4014 y(\014eld)e(in)g(y)m(our)g(supplied)f Fn(struct)p
Fs(.)150 4184 y(`)p Fn(-F)h Fo(initializers)t Fs(')150
4293 y(`)p Fn(--initializer-suffix=)p Fo(initializers)t
Fs(')630 4403 y(This)21 b(option)h(is)g(only)f(useful)g(when)g(option)h
(`)p Fn(-t)p Fs(')f(\(or,)j(equiv)-5 b(alen)m(tly)d(,)26
b(the)c(`)p Fn(\045struct-type)p Fs(')630 4512 y(declaration\))34
b(has)f(b)s(een)e(giv)m(en.)49 b(It)32 b(p)s(ermits)g(to)h(sp)s(ecify)f
(initializers)i(for)f(the)f(structure)630 4622 y(mem)m(b)s(ers)23
b(follo)m(wing)i Fo(slot-name)30 b Fs(in)23 b(empt)m(y)h(hash)f(table)h
(en)m(tries.)39 b(The)23 b(list)h(of)g(initializers)630
4732 y(should)37 b(start)i(with)g(a)f(comma.)66 b(By)39
b(default,)i(the)e(emitted)g(co)s(de)g(will)f(zero-initialize)630
4841 y(structure)30 b(mem)m(b)s(ers)f(follo)m(wing)j
Fo(slot-name)p Fs(.)150 5011 y(`)p Fn(-H)e Fo(hash-function-name)5
b Fs(')150 5121 y(`)p Fn(--hash-function-name=)p Fo(hash-fu)o
(nction-name)g Fs(')630 5230 y(Allo)m(ws)31 b(y)m(ou)f(to)g(sp)s(ecify)
g(the)g(name)g(for)f(the)h(generated)h(hash)e(function.)40
b(Default)31 b(name)630 5340 y(is)f(`)p Fn(hash)p Fs('.)40
b(This)30 b(option)h(p)s(ermits)e(the)i(use)f(of)h(t)m(w)m(o)g(hash)f
(tables)h(in)f(the)h(same)g(\014le.)p eop end
%%Page: 21 23
TeXDict begin 21 22 bop 150 -116 a Fs(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fn(gperf)2433 b Fs(21)150 299 y(`)p
Fn(-N)30 b Fo(lo)s(okup-function-name)5 b Fs(')150 408
y(`)p Fn(--lookup-function-name=)p Fo(lo)s(okup-fu)o(nction-name)g
Fs(')630 518 y(Allo)m(ws)43 b(y)m(ou)f(to)h(sp)s(ecify)e(the)i(name)f
(for)f(the)h(generated)h(lo)s(okup)f(function.)75 b(Default)630
628 y(name)28 b(is)g(`)p Fn(in_word_set)p Fs('.)37 b(This)27
b(option)h(p)s(ermits)f(m)m(ultiple)i(generated)f(hash)f(functions)630
737 y(to)k(b)s(e)f(used)f(in)h(the)h(same)g(application.)150
938 y(`)p Fn(-Z)f Fo(class-name)5 b Fs(')150 1048 y(`)p
Fn(--class-name=)p Fo(class-name)g Fs(')630 1157 y(This)66
b(option)i(is)f(only)h(useful)e(when)h(option)g(`)p Fn(-L)30
b(C++)p Fs(')67 b(\(or,)77 b(equiv)-5 b(alen)m(tly)d(,)79
b(the)630 1267 y(`)p Fn(\045language=C++)p Fs(')43 b(declaration\))k
(has)f(b)s(een)f(giv)m(en.)88 b(It)46 b(allo)m(ws)h(y)m(ou)f(to)g(sp)s
(ecify)g(the)630 1377 y(name)30 b(of)h(generated)g(C)p
Fn(++)f Fs(class.)41 b(Default)32 b(name)e(is)h Fn(Perfect_Hash)p
Fs(.)150 1577 y(`)p Fn(-7)p Fs(')150 1687 y(`)p Fn(--seven-bit)p
Fs(')630 1797 y(This)36 b(option)i(sp)s(eci\014es)f(that)g(all)h
(strings)f(that)h(will)f(b)s(e)g(passed)f(as)i(argumen)m(ts)f(to)h(the)
630 1906 y(generated)e(hash)e(function)g(and)h(the)g(generated)g(lo)s
(okup)g(function)f(will)h(solely)h(consist)630 2016 y(of)d(7-bit)h
(ASCI)s(I)e(c)m(haracters)j(\(b)m(ytes)f(in)f(the)g(range)h(0..127\).)
51 b(\(Note)35 b(that)f(the)g(ANSI)e(C)630 2125 y(functions)f
Fn(isalnum)f Fs(and)i Fn(isgraph)e Fs(do)i Fl(not)41
b Fs(guaran)m(tee)33 b(that)g(a)f(b)m(yte)h(is)f(in)f(this)h(range.)630
2235 y(Only)26 b(an)g(explicit)i(test)g(lik)m(e)f(`)p
Fn(c)k(>=)f('A')f(&&)h(c)g(<=)g('Z')p Fs(')25 b(guaran)m(tees)j
(this.\))40 b(This)26 b(w)m(as)h(the)630 2345 y(default)g(in)g(v)m
(ersions)g(of)g Fn(gperf)e Fs(earlier)j(than)e(2.7;)k(no)m(w)d(the)g
(default)g(is)f(to)i(supp)s(ort)d(8-bit)630 2454 y(and)30
b(m)m(ultib)m(yte)h(c)m(haracters.)150 2655 y(`)p Fn(-l)p
Fs(')150 2765 y(`)p Fn(--compare-lengths)p Fs(')630 2874
y(Compare)40 b(k)m(eyw)m(ord)g(lengths)g(b)s(efore)f(trying)h(a)h
(string)e(comparison.)70 b(This)39 b(option)h(is)630
2984 y(mandatory)32 b(for)h(binary)e(comparisons)i(\(see)g(Section)h
(3.3)f([Binary)g(Strings],)g(page)g(18\).)630 3093 y(It)g(also)h(migh)m
(t)g(cut)f(do)m(wn)f(on)h(the)g(n)m(um)m(b)s(er)f(of)h(string)g
(comparisons)g(made)g(during)f(the)630 3203 y(lo)s(okup,)i(since)g(k)m
(eyw)m(ords)f(with)g(di\013eren)m(t)h(lengths)g(are)f(nev)m(er)h
(compared)f(via)h Fn(strcmp)p Fs(.)630 3313 y(Ho)m(w)m(ev)m(er,)j
(using)c(`)p Fn(-l)p Fs(')g(migh)m(t)h(greatly)h(increase)g(the)f(size)
g(of)g(the)f(generated)i(C)e(co)s(de)h(if)630 3422 y(the)k(lo)s(okup)g
(table)g(range)h(is)f(large)h(\(whic)m(h)f(implies)g(that)g(the)g
(switc)m(h)h(option)f(`)p Fn(-S)p Fs(')g(or)630 3532
y(`)p Fn(\045switch)p Fs(')29 b(is)i(not)g(enabled\),)h(since)f(the)g
(length)g(table)h(con)m(tains)g(as)f(man)m(y)g(elemen)m(ts)h(as)630
3641 y(there)f(are)f(en)m(tries)i(in)e(the)g(lo)s(okup)g(table.)150
3842 y(`)p Fn(-c)p Fs(')150 3952 y(`)p Fn(--compare-strncmp)p
Fs(')630 4061 y(Generates)22 b(C)f(co)s(de)g(that)h(uses)e(the)i
Fn(strncmp)d Fs(function)h(to)i(p)s(erform)e(string)h(comparisons.)630
4171 y(The)30 b(default)g(action)i(is)f(to)g(use)f Fn(strcmp)p
Fs(.)150 4372 y(`)p Fn(-C)p Fs(')150 4482 y(`)p Fn(--readonly-tables)p
Fs(')630 4591 y(Mak)m(es)41 b(the)f(con)m(ten)m(ts)h(of)f(all)h
(generated)f(lo)s(okup)f(tables)i(constan)m(t,)i(i.e.,)h(\\readonly".)
630 4701 y(Man)m(y)31 b(compilers)g(can)g(generate)h(more)e(e\016cien)m
(t)i(co)s(de)f(for)f(this)h(b)m(y)f(putting)g(the)h(tables)630
4810 y(in)f(readonly)h(memory)-8 b(.)150 5011 y(`)p Fn(-E)p
Fs(')150 5121 y(`)p Fn(--enum)p Fs(')142 b(De\014ne)31
b(constan)m(t)g(v)-5 b(alues)31 b(using)f(an)g(en)m(um)g(lo)s(cal)i(to)
f(the)g(lo)s(okup)f(function)g(rather)g(than)630 5230
y(with)37 b(#de\014nes.)60 b(This)36 b(also)i(means)g(that)f
(di\013eren)m(t)h(lo)s(okup)f(functions)g(can)g(reside)g(in)630
5340 y(the)31 b(same)f(\014le.)41 b(Thanks)29 b(to)j(James)e(Clark)g
Fn(<jjc@ai.mit.edu>)p Fs(.)p eop end
%%Page: 22 24
TeXDict begin 22 23 bop 150 -116 a Fs(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fn(gperf)2433 b Fs(22)150 299 y(`)p
Fn(-I)p Fs(')150 408 y(`)p Fn(--includes)p Fs(')630 518
y(Include)30 b(the)h(necessary)h(system)f(include)g(\014le,)g
Fn(<string.h>)p Fs(,)e(at)i(the)g(b)s(eginning)g(of)g(the)630
628 y(co)s(de.)39 b(By)27 b(default,)g(this)f(is)g(not)g(done;)i(the)e
(user)f(m)m(ust)h(include)g(this)f(header)h(\014le)g(himself)630
737 y(to)31 b(allo)m(w)h(compilation)g(of)e(the)h(co)s(de.)150
897 y(`)p Fn(-G)p Fs(')150 1007 y(`)p Fn(--global-table)p
Fs(')630 1117 y(Generate)38 b(the)f(static)h(table)f(of)g(k)m(eyw)m
(ords)g(as)g(a)g(static)h(global)g(v)-5 b(ariable,)39
b(rather)d(than)630 1226 y(hiding)30 b(it)h(inside)f(of)g(the)h(lo)s
(okup)f(function)g(\(whic)m(h)g(is)h(the)f(default)h(b)s(eha)m(vior\).)
150 1386 y(`)p Fn(-P)p Fs(')150 1496 y(`)p Fn(--pic)p
Fs(')190 b(Optimize)42 b(the)f(generated)h(table)g(for)f(inclusion)g
(in)g(shared)f(libraries.)73 b(This)40 b(reduces)630
1606 y(the)35 b(startup)g(time)h(of)f(programs)g(using)g(a)h(shared)e
(library)h(con)m(taining)i(the)e(generated)630 1715 y(co)s(de.)j(If)21
b(the)h(option)h(`)p Fn(-t)p Fs(')e(\(or,)k(equiv)-5
b(alen)m(tly)d(,)25 b(the)d(`)p Fn(\045struct-type)p
Fs(')d(declaration\))24 b(is)e(also)630 1825 y(giv)m(en,)32
b(the)f(\014rst)e(\014eld)i(of)f(the)h(user-de\014ned)e(struct)i(m)m
(ust)f(b)s(e)g(of)h(t)m(yp)s(e)g(`)p Fn(int)p Fs(',)f(not)h(`)p
Fn(char)630 1934 y(*)p Fs(',)h(b)s(ecause)f(it)i(will)e(con)m(tain)i
(o\013sets)g(in)m(to)f(the)g(string)f(p)s(o)s(ol)h(instead)f(of)h
(actual)h(strings.)630 2044 y(T)-8 b(o)33 b(con)m(v)m(ert)h(suc)m(h)f
(an)f(o\013set)i(to)f(a)g(string,)h(y)m(ou)f(can)g(use)f(the)h
(expression)f(`)p Fn(stringpool)630 2153 y(+)e Fo(o)5
b Fs(',)34 b(where)f Fo(o)38 b Fs(is)33 b(the)g(o\013set.)50
b(The)32 b(string)h(p)s(o)s(ol)g(name)g(can)g(b)s(e)g(c)m(hanged)g
(through)g(the)630 2263 y(option)e(`)p Fn(--string-pool-name)p
Fs('.)150 2423 y(`)p Fn(-Q)f Fo(string-p)s(o)s(ol-name)5
b Fs(')150 2533 y(`)p Fn(--string-pool-name=)p Fo(string-p)s(o)s
(ol-name)g Fs(')630 2642 y(Allo)m(ws)32 b(y)m(ou)g(to)g(sp)s(ecify)f
(the)g(name)h(of)f(the)h(generated)g(string)f(p)s(o)s(ol)g(created)h(b)
m(y)f(option)630 2752 y(`)p Fn(-P)p Fs('.)38 b(The)21
b(default)g(name)h(is)f(`)p Fn(stringpool)p Fs('.)36
b(This)20 b(option)i(p)s(ermits)f(the)g(use)g(of)h(t)m(w)m(o)h(hash)630
2862 y(tables)i(in)e(the)h(same)g(\014le,)i(with)d(`)p
Fn(-P)p Fs(')h(and)f(ev)m(en)h(when)f(the)h(option)g(`)p
Fn(-G)p Fs(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)630
2971 y(the)31 b(`)p Fn(\045global-table)p Fs(')c(declaration\))32
b(is)f(giv)m(en.)150 3131 y(`)p Fn(--null-strings)p Fs(')630
3241 y(Use)39 b(NULL)g(strings)f(instead)i(of)e(empt)m(y)i(strings)e
(for)h(empt)m(y)g(k)m(eyw)m(ord)g(table)h(en)m(tries.)630
3351 y(This)e(reduces)g(the)h(startup)g(time)g(of)g(programs)g(using)f
(a)h(shared)f(library)g(con)m(taining)630 3460 y(the)j(generated)g(co)s
(de)g(\(but)f(not)h(as)f(m)m(uc)m(h)h(as)g(option)g(`)p
Fn(-P)p Fs('\),)i(at)e(the)g(exp)s(ense)f(of)h(one)630
3570 y(more)31 b(test-and-branc)m(h)f(instruction)h(at)g(run)e(time.)
150 3730 y(`)p Fn(-W)h Fo(hash-table-arra)m(y-name)5
b Fs(')150 3839 y(`)p Fn(--word-array-name=)p Fo(hash-table-arra)m
(y-name)g Fs(')630 3949 y(Allo)m(ws)41 b(y)m(ou)f(to)h(sp)s(ecify)f
(the)g(name)g(for)f(the)i(generated)g(arra)m(y)f(con)m(taining)i(the)e
(hash)630 4059 y(table.)106 b(Default)53 b(name)e(is)h(`)p
Fn(wordlist)p Fs('.)103 b(This)51 b(option)h(p)s(ermits)f(the)h(use)g
(of)g(t)m(w)m(o)630 4168 y(hash)37 b(tables)h(in)g(the)g(same)g
(\014le,)i(ev)m(en)e(when)f(the)h(option)g(`)p Fn(-G)p
Fs(')g(\(or,)i(equiv)-5 b(alen)m(tly)d(,)42 b(the)630
4278 y(`)p Fn(\045global-table)p Fs(')27 b(declaration\))33
b(is)d(giv)m(en.)150 4413 y(`)p Fn(--length-table-name=)p
Fo(length-table-arra)m(y-name)5 b Fs(')630 4522 y(Allo)m(ws)36
b(y)m(ou)e(to)i(sp)s(ecify)e(the)h(name)f(for)g(the)h(generated)h(arra)
m(y)f(con)m(taining)h(the)f(length)630 4632 y(table.)77
b(Default)43 b(name)g(is)f(`)p Fn(lengthtable)p Fs('.)74
b(This)41 b(option)i(p)s(ermits)e(the)h(use)g(of)h(t)m(w)m(o)630
4741 y(length)33 b(tables)h(in)f(the)g(same)g(\014le,)h(ev)m(en)g(when)
e(the)h(option)h(`)p Fn(-G)p Fs(')f(\(or,)h(equiv)-5
b(alen)m(tly)d(,)36 b(the)630 4851 y(`)p Fn(\045global-table)p
Fs(')27 b(declaration\))33 b(is)d(giv)m(en.)150 5011
y(`)p Fn(-S)g Fo(total-switc)m(h-statemen)m(ts)t Fs(')150
5121 y(`)p Fn(--switch=)p Fo(total-switc)m(h-statemen)m(ts)t
Fs(')630 5230 y(Causes)35 b(the)h(generated)h(C)e(co)s(de)h(to)h(use)e
(a)h Fn(switch)e Fs(statemen)m(t)k(sc)m(heme,)g(rather)d(than)630
5340 y(an)j(arra)m(y)g(lo)s(okup)g(table.)64 b(This)37
b(can)h(lead)h(to)f(a)h(reduction)f(in)f(b)s(oth)g(time)i(and)e(space)p
eop end
%%Page: 23 25
TeXDict begin 23 24 bop 150 -116 a Fs(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fn(gperf)2433 b Fs(23)630 299 y(requiremen)m(ts)
43 b(for)h(some)f(input)g(\014les.)80 b(The)43 b(argumen)m(t)h(to)g
(this)f(option)h(determines)630 408 y(ho)m(w)33 b(man)m(y)f
Fn(switch)f Fs(statemen)m(ts)k(are)e(generated.)49 b(A)32
b(v)-5 b(alue)34 b(of)e(1)i(generates)g(1)f Fn(switch)630
518 y Fs(con)m(taining)25 b(all)e(the)h(elemen)m(ts,)i(a)d(v)-5
b(alue)23 b(of)h(2)f(generates)h(2)g(tables)f(with)g(1/2)h(the)g
(elemen)m(ts)630 628 y(in)38 b(eac)m(h)h Fn(switch)p
Fs(,)g(etc.)65 b(This)37 b(is)h(useful)g(since)g(man)m(y)h(C)e
(compilers)i(cannot)g(correctly)630 737 y(generate)29
b(co)s(de)f(for)f(large)h Fn(switch)e Fs(statemen)m(ts.)41
b(This)27 b(option)h(w)m(as)g(inspired)e(in)h(part)g(b)m(y)630
847 y(Keith)k(Bostic's)h(original)f(C)f(program.)150
1000 y(`)p Fn(-T)p Fs(')150 1110 y(`)p Fn(--omit-struct-type)p
Fs(')630 1219 y(Prev)m(en)m(ts)f(the)e(transfer)h(of)f(the)h(t)m(yp)s
(e)g(declaration)h(to)g(the)f(output)f(\014le.)40 b(Use)28
b(this)f(option)630 1329 y(if)j(the)h(t)m(yp)s(e)f(is)h(already)g
(de\014ned)e(elsewhere.)150 1483 y(`)p Fn(-p)p Fs(')334
b(This)33 b(option)h(is)f(supp)s(orted)f(for)h(compatibilit)m(y)j(with)
d(previous)g(releases)i(of)f Fn(gperf)p Fs(.)49 b(It)630
1592 y(do)s(es)30 b(not)h(do)f(an)m(ything.)150 1841
y Fr(4.5)68 b(Options)45 b(for)g(c)l(hanging)h(the)f(Algorithms)h
(emplo)l(y)l(ed)g(b)l(y)f Fk(gperf)150 2052 y Fs(`)p
Fn(-k)30 b Fo(selected-b)m(yte-p)s(ositions)t Fs(')150
2162 y(`)p Fn(--key-positions=)p Fo(selected-b)m(yte-p)s(ositions)t
Fs(')630 2271 y(Allo)m(ws)e(selection)h(of)e(the)g(b)m(yte)h(p)s
(ositions)f(used)f(in)h(the)g(k)m(eyw)m(ords')h(hash)e(function.)39
b(The)630 2381 y(allo)m(w)m(able)24 b(c)m(hoices)g(range)e(b)s(et)m(w)m
(een)h(1-255,)j(inclusiv)m(e.)38 b(The)22 b(p)s(ositions)f(are)i
(separated)f(b)m(y)630 2491 y(commas,)27 b(e.g.,)i(`)p
Fn(-k)h(9,4,13,14)p Fs(';)25 b(ranges)h(ma)m(y)g(b)s(e)f(used,)h(e.g.,)
i(`)p Fn(-k)i(2-7)p Fs(';)d(and)e(p)s(ositions)630 2600
y(ma)m(y)c(o)s(ccur)f(in)h(an)m(y)g(order.)37 b(F)-8
b(urthermore,)22 b(the)f(wildcard)f('*')h(causes)g(the)g(generated)h
(hash)630 2710 y(function)37 b(to)h(consider)g Fe(all)g
Fs(b)m(yte)g(p)s(ositions)f(in)g(eac)m(h)i(k)m(eyw)m(ord,)h(whereas)d
('$')h(instructs)630 2819 y(the)31 b(hash)g(function)f(to)i(use)f(the)g
(\\\014nal)h(b)m(yte")g(of)f(a)h(k)m(eyw)m(ord)f(\(this)g(is)h(the)f
(only)g(w)m(a)m(y)h(to)630 2929 y(use)e(a)h(b)m(yte)g(p)s(osition)f
(greater)i(than)e(255,)i(inciden)m(tally\).)630 3060
y(F)-8 b(or)37 b(instance,)h(the)e(option)h(`)p Fn(-k)30
b(1,2,4,6-10,'$')p Fs(')i(generates)38 b(a)e(hash)g(function)f(that)630
3170 y(considers)g(p)s(ositions)g(1,2,4,6,7,8,9,10,)42
b(plus)34 b(the)i(last)g(b)m(yte)f(in)g(eac)m(h)h(k)m(eyw)m(ord)g
(\(whic)m(h)630 3280 y(ma)m(y)j(b)s(e)f(at)i(a)f(di\013eren)m(t)g(p)s
(osition)g(for)f(eac)m(h)i(k)m(eyw)m(ord,)h(ob)m(viously\).)67
b(Keyw)m(ords)38 b(with)630 3389 y(length)30 b(less)g(than)f(the)g
(indicated)h(b)m(yte)h(p)s(ositions)e(w)m(ork)g(prop)s(erly)-8
b(,)30 b(since)f(selected)i(b)m(yte)630 3499 y(p)s(ositions)k
(exceeding)h(the)g(k)m(eyw)m(ord)f(length)g(are)h(simply)e(not)i
(referenced)f(in)f(the)i(hash)630 3608 y(function.)630
3740 y(This)28 b(option)i(is)f(not)g(normally)g(needed)g(since)g(v)m
(ersion)g(2.8)i(of)e Fn(gperf)p Fs(;)f(the)h(default)g(b)m(yte)630
3849 y(p)s(ositions)36 b(are)g(computed)f(dep)s(ending)f(on)i(the)f(k)m
(eyw)m(ord)h(set,)i(through)d(a)h(searc)m(h)g(that)630
3959 y(minimizes)31 b(the)f(n)m(um)m(b)s(er)f(of)i(b)m(yte)g(p)s
(ositions.)150 4113 y(`)p Fn(-D)p Fs(')150 4222 y(`)p
Fn(--duplicates)p Fs(')630 4332 y(Handle)h(k)m(eyw)m(ords)h(whose)f
(selected)i(b)m(yte)e(sets)h(hash)e(to)i(duplicate)g(v)-5
b(alues.)46 b(Duplicate)630 4441 y(hash)33 b(v)-5 b(alues)34
b(can)h(o)s(ccur)e(if)h(a)g(set)h(of)f(k)m(eyw)m(ords)g(has)g(the)g
(same)g(names,)h(but)e(p)s(ossesses)630 4551 y(di\013eren)m(t)f
(attributes,)g(or)f(if)h(the)f(selected)i(b)m(yte)f(p)s(ositions)f(are)
h(not)f(w)m(ell)h(c)m(hosen.)44 b(With)630 4660 y(the)36
b(-D)g(option)g Fn(gperf)e Fs(treats)j(all)f(these)h(k)m(eyw)m(ords)e
(as)h(part)g(of)g(an)f(equiv)-5 b(alence)37 b(class)630
4770 y(and)31 b(generates)i(a)f(p)s(erfect)g(hash)f(function)g(with)h
(m)m(ultiple)g(comparisons)g(for)f(duplicate)630 4880
y(k)m(eyw)m(ords.)38 b(It)21 b(is)f(up)g(to)h(y)m(ou)g(to)h(completely)
g(disam)m(biguate)g(the)f(k)m(eyw)m(ords)g(b)m(y)g(mo)s(difying)630
4989 y(the)28 b(generated)g(C)f(co)s(de.)40 b(Ho)m(w)m(ev)m(er,)30
b Fn(gperf)c Fs(helps)h(y)m(ou)g(out)h(b)m(y)f(organizing)i(the)e
(output.)630 5121 y(Using)32 b(this)g(option)g(usually)g(means)g(that)g
(the)g(generated)h(hash)e(function)h(is)g(no)f(longer)630
5230 y(p)s(erfect.)48 b(On)31 b(the)i(other)g(hand,)g(it)g(p)s(ermits)f
Fn(gperf)f Fs(to)i(w)m(ork)g(on)g(k)m(eyw)m(ord)g(sets)g(that)g(it)630
5340 y(otherwise)e(could)f(not)h(handle.)p eop end
%%Page: 24 26
TeXDict begin 24 25 bop 150 -116 a Fs(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fn(gperf)2433 b Fs(24)150 299 y(`)p
Fn(-m)30 b Fo(iterations)t Fs(')150 408 y(`)p Fn
(--multiple-iterations=)p Fo(iterations)t Fs(')630 518
y(P)m(erform)24 b(m)m(ultiple)h(c)m(hoices)h(of)e(the)h(`)p
Fn(-i)p Fs(')f(and)g(`)p Fn(-j)p Fs(')g(v)-5 b(alues,)26
b(and)d(c)m(ho)s(ose)j(the)e(b)s(est)g(results.)630 628
y(This)34 b(increases)i(the)f(running)e(time)i(b)m(y)g(a)g(factor)h(of)
f Fo(iterations)40 b Fs(but)34 b(do)s(es)g(a)i(go)s(o)s(d)e(job)630
737 y(minimizing)d(the)f(generated)i(table)f(size.)150
907 y(`)p Fn(-i)f Fo(initial-v)-5 b(alue)5 b Fs(')150
1016 y(`)p Fn(--initial-asso=)p Fo(initial-v)-5 b(alue)5
b Fs(')630 1126 y(Pro)m(vides)29 b(an)f(initial)h Fo(v)-5
b(alue)34 b Fs(for)28 b(the)g(asso)s(ciate)i(v)-5 b(alues)29
b(arra)m(y)-8 b(.)41 b(Default)29 b(is)f(0.)41 b(Increasing)630
1235 y(the)30 b(initial)h(v)-5 b(alue)31 b(helps)e(in\015ate)h(the)g
(\014nal)g(table)h(size,)g(p)s(ossibly)e(leading)i(to)f(more)g(time)630
1345 y(e\016cien)m(t)f(k)m(eyw)m(ord)e(lo)s(okups.)39
b(Note)29 b(that)e(this)g(option)h(is)f(not)g(particularly)h(useful)e
(when)630 1455 y(`)p Fn(-S)p Fs(')i(\(or,)i(equiv)-5
b(alen)m(tly)d(,)31 b(`)p Fn(\045switch)p Fs('\))c(is)i(used.)39
b(Also,)30 b(`)p Fn(-i)p Fs(')e(is)g(o)m(v)m(erridden)h(when)e(the)i(`)
p Fn(-r)p Fs(')630 1564 y(option)i(is)f(used.)150 1733
y(`)p Fn(-j)g Fo(jump-v)-5 b(alue)5 b Fs(')150 1843 y(`)p
Fn(--jump=)p Fo(jump-v)-5 b(alue)5 b Fs(')630 1953 y(A\013ects)41
b(the)f(\\jump)f(v)-5 b(alue",)44 b(i.e.,)g(ho)m(w)c(far)g(to)g(adv)-5
b(ance)41 b(the)f(asso)s(ciated)i(b)m(yte)e(v)-5 b(alue)630
2062 y(up)s(on)29 b(collisions.)43 b Fo(Jump-v)-5 b(alue)35
b Fs(is)30 b(rounded)f(up)h(to)h(an)f(o)s(dd)g(n)m(um)m(b)s(er,)f(the)i
(default)g(is)f(5.)630 2172 y(If)g(the)g Fo(jump-v)-5
b(alue)35 b Fs(is)c(0)f Fn(gperf)f Fs(jumps)g(b)m(y)h(random)g(amoun)m
(ts.)150 2341 y(`)p Fn(-n)p Fs(')150 2451 y(`)p Fn(--no-strlen)p
Fs(')630 2560 y(Instructs)c(the)i(generator)g(not)f(to)h(include)f(the)
h(length)f(of)g(a)h(k)m(eyw)m(ord)g(when)e(computing)630
2670 y(its)41 b(hash)f(v)-5 b(alue.)72 b(This)40 b(ma)m(y)h(sa)m(v)m(e)
h(a)f(few)f(assem)m(bly)h(instructions)g(in)f(the)h(generated)630
2780 y(lo)s(okup)30 b(table.)150 2949 y(`)p Fn(-r)p Fs(')150
3059 y(`)p Fn(--random)p Fs(')630 3168 y(Utilizes)40
b(randomness)e(to)h(initialize)h(the)f(asso)s(ciated)h(v)-5
b(alues)38 b(table.)66 b(This)38 b(frequen)m(tly)630
3278 y(generates)23 b(solutions)e(faster)h(than)f(using)g
(deterministic)h(initialization)i(\(whic)m(h)d(starts)h(all)630
3387 y(asso)s(ciated)28 b(v)-5 b(alues)28 b(at)f(0\).)40
b(F)-8 b(urthermore,)28 b(using)f(the)g(randomization)g(option)h
(generally)630 3497 y(increases)j(the)g(size)g(of)f(the)h(table.)150
3666 y(`)p Fn(-s)f Fo(size-m)m(ultiple)5 b Fs(')150 3776
y(`)p Fn(--size-multiple=)p Fo(size-m)m(ultiple)g Fs(')630
3885 y(A\013ects)40 b(the)e(size)h(of)g(the)f(generated)i(hash)d
(table.)66 b(The)38 b(n)m(umeric)g(argumen)m(t)h(for)f(this)630
3995 y(option)33 b(indicates)g(\\ho)m(w)g(man)m(y)g(times)g(larger)g
(or)f(smaller")i(the)e(maxim)m(um)g(asso)s(ciated)630
4105 y(v)-5 b(alue)38 b(range)g(should)e(b)s(e,)j(in)e(relationship)h
(to)g(the)f(n)m(um)m(b)s(er)g(of)g(k)m(eyw)m(ords.)62
b(It)38 b(can)g(b)s(e)630 4214 y(written)g(as)h(an)f(in)m(teger,)43
b(a)38 b(\015oating-p)s(oin)m(t)i(n)m(um)m(b)s(er)d(or)i(a)f(fraction.)
66 b(F)-8 b(or)39 b(example,)j(a)630 4324 y(v)-5 b(alue)40
b(of)f(3)h(means)f(\\allo)m(w)i(the)f(maxim)m(um)f(asso)s(ciated)h(v)-5
b(alue)40 b(to)g(b)s(e)f(ab)s(out)g(3)g(times)630 4433
y(larger)33 b(than)g(the)g(n)m(um)m(b)s(er)e(of)i(input)f(k)m(eyw)m
(ords".)49 b(Con)m(v)m(ersely)-8 b(,)35 b(a)e(v)-5 b(alue)33
b(of)g(1/3)h(means)630 4543 y(\\allo)m(w)43 b(the)e(maxim)m(um)f(asso)s
(ciated)j(v)-5 b(alue)41 b(to)h(b)s(e)e(ab)s(out)g(3)h(times)h(smaller)
f(than)g(the)630 4653 y(n)m(um)m(b)s(er)33 b(of)i(input)f(k)m(eyw)m
(ords".)55 b(V)-8 b(alues)35 b(smaller)h(than)e(1)h(are)g(useful)f(for)
h(limiting)h(the)630 4762 y(o)m(v)m(erall)31 b(size)e(of)g(the)f
(generated)i(hash)e(table,)i(though)e(the)g(option)h(`)p
Fn(-m)p Fs(')g(is)f(b)s(etter)h(at)g(this)630 4872 y(purp)s(ose.)630
5011 y(If)44 b(`generate)h(switc)m(h')g(option)g(`)p
Fn(-S)p Fs(')f(\(or,)k(equiv)-5 b(alen)m(tly)d(,)49 b(`)p
Fn(\045switch)p Fs('\))43 b(is)h Fl(not)54 b Fs(enabled,)630
5121 y(the)45 b(maxim)m(um)h(asso)s(ciated)g(v)-5 b(alue)46
b(in\015uences)f(the)g(static)i(arra)m(y)f(table)g(size,)k(and)45
b(a)630 5230 y(larger)27 b(table)g(should)e(decrease)i(the)f(time)h
(required)e(for)h(an)f(unsuccessful)g(searc)m(h,)j(at)f(the)630
5340 y(exp)s(ense)j(of)g(extra)i(table)f(space.)p eop
end
%%Page: 25 27
TeXDict begin 25 26 bop 150 -116 a Fs(Chapter)30 b(4:)41
b(In)m(v)m(oking)31 b Fn(gperf)2433 b Fs(25)630 299 y(The)35
b(default)g(v)-5 b(alue)36 b(is)f(1,)i(th)m(us)e(the)h(default)f(maxim)
m(um)g(asso)s(ciated)i(v)-5 b(alue)36 b(ab)s(out)f(the)630
408 y(same)h(size)g(as)f(the)h(n)m(um)m(b)s(er)e(of)h(k)m(eyw)m(ords)h
(\(for)g(e\016ciency)-8 b(,)38 b(the)d(maxim)m(um)g(asso)s(ciated)630
518 y(v)-5 b(alue)36 b(is)g(alw)m(a)m(ys)h(rounded)d(up)g(to)i(a)g(p)s
(o)m(w)m(er)g(of)f(2\).)57 b(The)35 b(actual)i(table)g(size)f(ma)m(y)g
(v)-5 b(ary)630 628 y(somewhat,)31 b(since)g(this)f(tec)m(hnique)h(is)g
(essen)m(tially)h(a)f(heuristic.)150 885 y Fr(4.6)68
b(Informativ)l(e)47 b(Output)150 1103 y Fs(`)p Fn(-h)p
Fs(')150 1212 y(`)p Fn(--help)p Fs(')142 b(Prin)m(ts)24
b(a)g(short)f(summary)g(on)h(the)g(meaning)g(of)g(eac)m(h)h(program)e
(option.)39 b(Ab)s(orts)23 b(further)630 1322 y(program)30
b(execution.)150 1481 y(`)p Fn(-v)p Fs(')150 1591 y(`)p
Fn(--version)p Fs(')630 1700 y(Prin)m(ts)g(out)h(the)f(curren)m(t)h(v)m
(ersion)f(n)m(um)m(b)s(er.)150 1860 y(`)p Fn(-d)p Fs(')150
1969 y(`)p Fn(--debug)p Fs(')94 b(Enables)28 b(the)h(debugging)f
(option.)40 b(This)28 b(pro)s(duces)f(v)m(erb)s(ose)i(diagnostics)g(to)
g(\\standard)630 2079 y(error")i(when)g Fn(gperf)f Fs(is)h(executing.)
45 b(It)32 b(is)f(useful)g(b)s(oth)g(for)g(main)m(taining)i(the)e
(program)630 2188 y(and)f(for)h(determining)g(whether)f(a)h(giv)m(en)h
(set)f(of)g(options)g(is)g(actually)i(sp)s(eeding)d(up)g(the)630
2298 y(searc)m(h)41 b(for)e(a)h(solution.)70 b(Some)40
b(useful)f(information)h(is)g(dump)s(ed)e(at)i(the)g(end)g(of)g(the)630
2408 y(program)30 b(when)g(the)g(`)p Fn(-d)p Fs(')g(option)h(is)g
(enabled.)p eop end
%%Page: 26 28
TeXDict begin 26 27 bop 150 -116 a Fs(Chapter)30 b(5:)41
b(Kno)m(wn)30 b(Bugs)g(and)g(Limitations)h(with)f Fn(gperf)1397
b Fs(26)150 299 y Fp(5)80 b(Kno)l(wn)53 b(Bugs)f(and)i(Limitations)f
(with)f Fm(gperf)275 533 y Fs(The)29 b(follo)m(wing)j(are)f(some)g
(limitations)h(with)e(the)g(curren)m(t)h(release)g(of)g
Fn(gperf)p Fs(:)225 667 y Fq(\017)60 b Fs(The)31 b Fn(gperf)g
Fs(utilit)m(y)i(is)f(tuned)f(to)h(execute)h(quic)m(kly)-8
b(,)34 b(and)d(w)m(orks)h(quic)m(kly)g(for)g(small)g(to)h(medium)330
777 y(size)i(data)g(sets)g(\(around)f(1000)i(k)m(eyw)m(ords\).)54
b(It)34 b(is)h(extremely)h(useful)d(for)h(main)m(taining)i(p)s(erfect)
330 887 y(hash)k(functions)h(for)f(compiler)i(k)m(eyw)m(ord)f(sets.)72
b(Sev)m(eral)42 b(recen)m(t)g(enhancemen)m(ts)g(no)m(w)e(enable)330
996 y Fn(gperf)31 b Fs(to)j(w)m(ork)e(e\016cien)m(tly)j(on)d(m)m(uc)m
(h)h(larger)g(k)m(eyw)m(ord)g(sets)g(\(o)m(v)m(er)i(15,000)g(k)m(eyw)m
(ords\).)48 b(When)330 1106 y(pro)s(cessing)30 b(large)i(k)m(eyw)m(ord)
e(sets)h(it)g(helps)f(greatly)i(to)f(ha)m(v)m(e)g(o)m(v)m(er)h(8)f
(megs)g(of)f(RAM.)225 1240 y Fq(\017)60 b Fs(The)43 b(size)i(of)f(the)g
(generate)h(static)h(k)m(eyw)m(ord)e(arra)m(y)g(can)g(get)h
Fl(extr)-5 b(emely)53 b Fs(large)45 b(if)f(the)g(input)330
1350 y(k)m(eyw)m(ord)d(\014le)f(is)g(large)i(or)e(if)g(the)h(k)m(eyw)m
(ords)f(are)h(quite)g(similar.)70 b(This)40 b(tends)g(to)h(slo)m(w)f
(do)m(wn)330 1460 y(the)35 b(compilation)h(of)f(the)f(generated)i(C)e
(co)s(de,)i(and)e Fl(gr)-5 b(e)g(atly)44 b Fs(in\015ates)35
b(the)g(ob)5 b(ject)35 b(co)s(de)g(size.)54 b(If)330
1569 y(this)40 b(situation)h(o)s(ccurs,)h(consider)e(using)f(the)h(`)p
Fn(-S)p Fs(')g(option)g(to)h(reduce)e(data)i(size,)i(p)s(oten)m(tially)
330 1679 y(increasing)h(k)m(eyw)m(ord)g(recognition)h(time)f(a)g
(negligible)i(amoun)m(t.)80 b(Since)44 b(man)m(y)f(C)h(compilers)330
1788 y(cannot)37 b(correctly)i(generate)f(co)s(de)f(for)g(large)h
(switc)m(h)f(statemen)m(ts)i(it)e(is)g(imp)s(ortan)m(t)g(to)h(qualify)
330 1898 y(the)i Fo(-S)46 b Fs(option)40 b(with)g(an)g(appropriate)g(n)
m(umerical)h(argumen)m(t)f(that)h(con)m(trols)h(the)e(n)m(um)m(b)s(er)f
(of)330 2007 y(switc)m(h)31 b(statemen)m(ts)h(generated.)225
2142 y Fq(\017)60 b Fs(The)35 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
(selected)h(b)m(yte)f(p)s(ositions)f(has)g(an)h(arbitrary)f(limit)h(of)
g(255.)57 b(This)330 2252 y(restriction)29 b(should)e(b)s(e)g(remo)m(v)
m(ed,)j(and)d(if)h(an)m(y)m(one)h(considers)f(this)g(a)g(problem)f
(write)i(me)f(and)f(let)330 2361 y(me)j(kno)m(w)h(so)f(I)h(can)f(remo)m
(v)m(e)i(the)f(constrain)m(t.)p eop end
%%Page: 27 29
TeXDict begin 27 28 bop 150 -116 a Fs(Chapter)30 b(6:)41
b(Things)29 b(Still)i(Left)g(to)g(Do)2133 b(27)150 299
y Fp(6)80 b(Things)53 b(Still)g(Left)g(to)g(Do)275 533
y Fs(It)24 b(should)f(b)s(e)h(\\relativ)m(ely")k(easy)d(to)g(replace)g
(the)g(curren)m(t)f(p)s(erfect)g(hash)g(function)g(algorithm)h(with)150
643 y(a)35 b(more)f(exhaustiv)m(e)h(approac)m(h;)i(the)d(p)s(erfect)h
(hash)e(mo)s(dule)h(is)g(essen)m(tial)i(indep)s(enden)m(t)d(from)h
(other)150 752 y(program)c(mo)s(dules.)40 b(Additional)31
b(w)m(orth)m(while)g(impro)m(v)m(emen)m(ts)h(include:)225
887 y Fq(\017)60 b Fs(Another)34 b(useful)f(extension)h(in)m(v)m(olv)m
(es)i(mo)s(difying)d(the)h(program)f(to)i(generate)g(\\minimal")g(p)s
(er-)330 996 y(fect)42 b(hash)f(functions)f(\(under)h(certain)h
(circumstances,)j(the)c(curren)m(t)g(v)m(ersion)h(can)f(b)s(e)g(rather)
330 1106 y(extra)m(v)-5 b(agan)m(t)39 b(in)d(the)h(generated)g(table)g
(size\).)60 b(This)36 b(is)g(mostly)h(of)g(theoretical)h(in)m(terest,)i
(since)330 1215 y(a)f(sparse)f(table)h(often)g(pro)s(duces)e(faster)i
(lo)s(okups,)h(and)e(use)g(of)h(the)g(`)p Fn(-S)p Fs(')f
Fn(switch)f Fs(option)i(can)330 1325 y(minimize)g(the)g(data)g(size,)j
(at)d(the)g(exp)s(ense)f(of)h(sligh)m(tly)h(longer)f(lo)s(okups)f
(\(note)i(that)f(the)g(gcc)330 1435 y(compiler)e(generally)g(pro)s
(duces)e(go)s(o)s(d)h(co)s(de)g(for)g Fn(switch)f Fs(statemen)m(ts,)k
(reducing)d(the)g(need)g(for)330 1544 y(more)31 b(complex)g(sc)m
(hemes\).)225 1679 y Fq(\017)60 b Fs(In)38 b(addition)h(to)h(impro)m
(ving)f(the)h(algorithm,)i(it)d(w)m(ould)g(also)h(b)s(e)f(useful)f(to)h
(generate)i(an)e(Ada)330 1788 y(pac)m(k)-5 b(age)32 b(as)f(the)g(co)s
(de)f(output,)g(in)g(addition)h(to)g(the)g(curren)m(t)f(C)g(and)g(C)p
Fn(++)f Fs(routines.)p eop end
%%Page: 28 30
TeXDict begin 28 29 bop 150 -116 a Fs(Chapter)30 b(7:)41
b(Bibliograph)m(y)2536 b(28)150 299 y Fp(7)80 b(Bibliograph)l(y)275
533 y Fs([1])22 b(Chang,)h(C.C.:)36 b Fl(A)24 b(Scheme)h(for)g
(Constructing)h(Or)-5 b(der)g(e)g(d)26 b(Minimal)f(Perfe)-5
b(ct)24 b(Hashing)h(F)-7 b(unctions)150 643 y Fs(Information)30
b(Sciences)h(39\(1986\),)j(187-195.)275 777 y([2])26
b(Cic)m(helli,)i(Ric)m(hard)e(J.)f Fl(A)n(uthor's)k(R)-5
b(esp)g(onse)30 b(to)f(\\On)f(Cichel)5 b(li's)28 b(Minimal)h(Perfe)-5
b(ct)28 b(Hash)g(F)-7 b(unc-)150 887 y(tions)33 b(Metho)-5
b(d")38 b Fs(Comm)m(unications)31 b(of)g(the)f(A)m(CM,)h(23,)h
(12\(Decem)m(b)s(er)g(1980\),)h(729.)275 1021 y([3])f(Cic)m(helli,)i
(Ric)m(hard)d(J.)h Fl(Minimal)i(Perfe)-5 b(ct)33 b(Hash)i(F)-7
b(unctions)34 b(Made)g(Simple)39 b Fs(Comm)m(unications)150
1131 y(of)31 b(the)f(A)m(CM,)h(23,)h(1\(Jan)m(uary)f(1980\),)h(17-19.)
275 1265 y([4])22 b(Co)s(ok,)h(C.)e(R.)g(and)f(Oldeho)s(eft,)j(R.R.)f
Fl(A)h(L)-5 b(etter)25 b(Oriente)-5 b(d)25 b(Minimal)f(Perfe)-5
b(ct)24 b(Hashing)g(F)-7 b(unction)150 1375 y Fs(SIGPLAN)30
b(Notices,)i(17,)g(9\(Septem)m(b)s(er)f(1982\),)h(18-27.)275
1509 y([5])22 b(Cormac)m(k,)j(G.)d(V.)g(and)g(Horsp)s(o)s(ol,)h(R.)f
(N.)g(S.)g(and)f(Kaiserw)m(erth,)j(M.)f Fl(Pr)-5 b(actic)g(al)26
b(Perfe)-5 b(ct)25 b(Hashing)150 1619 y Fs(Computer)30
b(Journal,)g(28,)h(1\(Jan)m(uary)g(1985\),)i(54-58.)275
1753 y([6])28 b(Jaesc)m(hk)m(e,)j(G.)d Fl(R)-5 b(e)g(cipr)g(o)g(c)g(al)
34 b(Hashing:)41 b(A)30 b(Metho)-5 b(d)31 b(for)g(Gener)-5
b(ating)32 b(Minimal)e(Perfe)-5 b(ct)31 b(Hashing)150
1863 y(F)-7 b(unctions)39 b Fs(Comm)m(unications)31 b(of)f(the)h(A)m
(CM,)g(24,)g(12\(Decem)m(b)s(er)i(1981\),)g(829-833.)275
1998 y([7])22 b(Jaesc)m(hk)m(e,)i(G.)e(and)f(Osterburg,)h(G.)g
Fl(On)h(Cichel)5 b(li's)25 b(Minimal)f(Perfe)-5 b(ct)24
b(Hash)h(F)-7 b(unctions)25 b(Metho)-5 b(d)150 2107 y
Fs(Comm)m(unications)31 b(of)f(the)h(A)m(CM,)g(23,)h(12\(Decem)m(b)s
(er)g(1980\),)h(728-729.)275 2242 y([8])25 b(Sager,)h(Thomas)e(J.)h
Fl(A)h(Polynomial)j(Time)f(Gener)-5 b(ator)29 b(for)f(Minimal)f(Perfe)
-5 b(ct)27 b(Hash)h(F)-7 b(unctions)150 2351 y Fs(Comm)m(unications)31
b(of)f(the)h(A)m(CM,)g(28,)h(5\(Decem)m(b)s(er)g(1985\),)g(523-532)275
2486 y([9])f(Sc)m(hmidt,)f(Douglas)h(C.)f Fl(GPERF:)i(A)g(Perfe)-5
b(ct)32 b(Hash)h(F)-7 b(unction)33 b(Gener)-5 b(ator)42
b Fs(Second)30 b(USENIX)150 2595 y(C)p Fn(++)f Fs(Conference)i(Pro)s
(ceedings,)g(April)f(1990.)275 2730 y([10])42 b(Sc)m(hmidt,)i(Douglas)e
(C.)f Fl(GPERF:)i(A)e(Perfe)-5 b(ct)43 b(Hash)g(F)-7
b(unction)43 b(Gener)-5 b(ator)53 b Fs(C)p Fn(++)40 b
Fs(Rep)s(ort,)150 2839 y(SIGS)29 b(10)j(10)f(\(No)m(v)m(em)m(b)s
(er/Decem)m(b)s(er)i(1998\).)275 2974 y([11])24 b(Seb)s(esta,)h(R.W.)e
(and)g(T)-8 b(a)m(ylor,)26 b(M.A.)e Fl(Minimal)i(Perfe)-5
b(ct)26 b(Hash)g(F)-7 b(unctions)27 b(for)g(R)-5 b(eserve)g(d)27
b(Wor)-5 b(d)150 3083 y(Lists)38 b Fs(SIGPLAN)30 b(Notices,)j(20,)e
(12\(Septem)m(b)s(er)g(1985\),)i(47-53.)275 3218 y([12])43
b(Sprugnoli,)h(R.)e Fl(Perfe)-5 b(ct)43 b(Hashing)h(F)-7
b(unctions:)64 b(A)43 b(Single)g(Pr)-5 b(ob)g(e)44 b(R)-5
b(etrieving)44 b(Metho)-5 b(d)44 b(for)150 3328 y(Static)33
b(Sets)38 b Fs(Comm)m(unications)31 b(of)g(the)f(A)m(CM,)i(20)f(11\(No)
m(v)m(em)m(b)s(er)i(1977\),)f(841-850.)275 3462 y([13])27
b(Stallman,)h(Ric)m(hard)e(M.)h Fl(Using)h(and)i(Porting)f(GNU)g(CC)39
b Fs(F)-8 b(ree)28 b(Soft)m(w)m(are)f(F)-8 b(oundation,)28
b(1988.)275 3597 y([14])j(Stroustrup,)e(Bjarne)i Fl(The)h(C)p
Fn(++)g Fl(Pr)-5 b(o)g(gr)g(amming)36 b(L)-5 b(anguage.)40
b Fs(Addison-W)-8 b(esley)g(,)33 b(1986.)275 3731 y([15])e(Tiemann,)f
(Mic)m(hael)j(D.)e Fl(User's)h(Guide)h(to)g(GNU)f(C)p
Fn(++)e Fs(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31
b(1989.)p eop end
%%Page: 29 31
TeXDict begin 29 30 bop 150 -116 a Fs(Concept)31 b(Index)2927
b(29)150 299 y Fp(Concept)52 b(Index)150 642 y Fr(\045)150
773 y Fd(`)p Fc(\045\045)p Fd(')12 b Fb(.)i(.)e(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
b Fd(12)150 868 y(`)p Fc(\045{)p Fd(')12 b Fb(.)i(.)e(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
b Fd(15)150 964 y(`)p Fc(\045})p Fd(')12 b Fb(.)i(.)e(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38
b Fd(15)150 1060 y(`)p Fc(\0457bit)p Fd(')8 b Fb(.)14
b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)33 b Fd(14)150 1155 y(`)p Fc(\045compare-lengths)p
Fd(')10 b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)36
b Fd(14)150 1251 y(`)p Fc(\045compare-strncmp)p Fd(')10
b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)36 b Fd(14)150
1346 y(`)p Fc(\045define)28 b(class-name)p Fd(')14 b
Fb(.)g(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fd(14)150 1442 y(`)p
Fc(\045define)28 b(hash-function-name)p Fd(')c Fb(.)13
b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46
b Fd(13)150 1538 y(`)p Fc(\045define)28 b(initializer-suffix)p
Fd(')c Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
46 b Fd(13)150 1633 y(`)p Fc(\045define)28 b(length-table-name)p
Fd(')e Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)47 b Fd(15)150 1729 y(`)p Fc(\045define)28 b(lookup-function-name)p
Fd(')18 b Fb(.)e(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43
b Fd(13)150 1824 y(`)p Fc(\045define)28 b(slot-name)p
Fd(')15 b Fb(.)g(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fd(13)150
1920 y(`)p Fc(\045define)28 b(string-pool-name)p Fd(')f
Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f
(.)49 b Fd(15)150 2016 y(`)p Fc(\045define)28 b(word-array-name)p
Fd(')7 b Fb(.)15 b(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)g(.)h(.)32 b Fd(15)150 2111 y(`)p Fc(\045delimiters)p
Fd(')17 b Fb(.)f(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43
b Fd(13)150 2207 y(`)p Fc(\045enum)p Fd(')8 b Fb(.)14
b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)33 b Fd(14)150 2302 y(`)p Fc(\045global-table)p
Fd(')14 b Fb(.)i(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40
b Fd(14)150 2398 y(`)p Fc(\045ignore-case)p Fd(')16 b
Fb(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41
b Fd(13)150 2494 y(`)p Fc(\045includes)p Fd(')23 b Fb(.)12
b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46
b Fd(14)150 2589 y(`)p Fc(\045language)p Fd(')23 b Fb(.)12
b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46
b Fd(13)150 2685 y(`)p Fc(\045null-strings)p Fd(')14
b Fb(.)i(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b
Fd(15)150 2780 y(`)p Fc(\045omit-struct-type)p Fd(')9
b Fb(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fd(15)150 2876
y(`)p Fc(\045pic)p Fd(')9 b Fb(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b
Fd(14)150 2972 y(`)p Fc(\045readonly-tables)p Fd(')10
b Fb(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)36 b Fd(14)150
3067 y(`)p Fc(\045struct-type)p Fd(')16 b Fb(.)g(.)c(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)41 b Fd(13)150 3163 y(`)p Fc(\045switch)p
Fd(')25 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)g(.)49 b Fd(15)150 3430 y Fr(A)150 3561 y Fd(Arra)n(y)25
b(name)19 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
h(.)f(.)44 b Fd(22)150 3841 y Fr(B)150 3971 y Fd(Bugs)9
b Fb(.)k(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)g(.)h(.)f(.)g(.)h(.)35 b Fd(8)150 4252 y Fr(C)150
4382 y Fd(Class)27 b(name)10 b Fb(.)j(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fd(21)2025 642 y Fr(D)2025
764 y Fd(Declaration)27 b(section)d Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)49 b Fd(11)2025 855 y(Delimiters)9 b Fb(.)k(.)g(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fd(19)2025
947 y(Duplicates)23 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)h(.)f(.)49 b Fd(23)2025 1204 y Fr(F)2025
1325 y Fd(F)-6 b(ormat)23 b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fd(11)2025
1417 y(F)-6 b(unctions)25 b(section)18 b Fb(.)13 b(.)f(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)
g(.)h(.)f(.)g(.)44 b Fd(11)2025 1661 y Fr(H)2025 1783
y Fc(hash)13 b Fb(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fd(17)2025 1874
y(hash)25 b(table)9 b Fb(.)k(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f
(.)g(.)h(.)f(.)g(.)h(.)34 b Fd(17)2025 2118 y Fr(I)2025
2240 y Fc(in_word_set)23 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g
(.)h(.)f(.)g(.)h(.)46 b Fd(18)2025 2331 y(Initializers)25
b Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)
49 b Fd(20)2025 2576 y Fr(J)2025 2697 y Fd(Jump)25 b(v)l(alue)6
b Fb(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
32 b Fd(24)2025 2954 y Fr(K)2025 3076 y Fd(Keyw)n(ords)25
b(section)16 b Fb(.)e(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42
b Fd(11)2025 3333 y Fr(M)2025 3455 y Fd(Minimal)27 b(p)r(erfect)f(hash)
g(functions)c Fb(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f
(.)g(.)48 b Fd(10)2025 3712 y Fr(N)2025 3833 y Fd(NUL)9
b Fb(.)j(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)
h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g
(.)h(.)f(.)g(.)h(.)f(.)35 b Fd(18)2025 4078 y Fr(S)2025
4199 y Fd(Slot)26 b(name)13 b Fb(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)
g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fd(20)2025 4291 y(Static)26
b(searc)n(h)g(structure)20 b Fb(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46
b Fd(10)2025 4382 y Fc(switch)22 b Fb(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)
f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h
(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fd(18,)27 b(22)p
eop end
%%Page: -1 32
TeXDict begin -1 31 bop 3725 -116 a Fs(i)150 299 y Fp(T)-13
b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Fr(GNU)45 b(GENERAL)g(PUBLIC)
g(LICENSE)31 b Fa(.)19 b(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)75
b Fr(1)449 778 y Fs(Pream)m(ble)16 b Fl(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)45 b Fs(1)449 888
y(TERMS)29 b(AND)j(CONDITIONS)d(F)m(OR)h(COPYING,)h(DISTRIBUTION)631
997 y(AND)g(MODIFICA)-8 b(TION)24 b Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Fs(2)449 1107
y(Ho)m(w)31 b(to)g(Apply)f(These)g(T)-8 b(erms)30 b(to)h(Y)-8
b(our)31 b(New)f(Programs)16 b Fl(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)46 b Fs(6)150 1349 y Fr(Con)l(tributors)g(to)f(GNU)g
Fk(gperf)e Fr(Utilit)l(y)16 b Fa(.)21 b(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)60 b Fr(8)150 1619 y(1)135 b(In)l(tro)t(duction)15
b Fa(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f
(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)60
b Fr(9)150 1889 y(2)135 b(Static)45 b(searc)l(h)h(structures)f(and)f
(GNU)h Fk(gperf)15 b Fa(.)i(.)j(.)f(.)60 b Fr(10)150
2159 y(3)135 b(High-Lev)l(el)46 b(Description)g(of)f(GNU)g
Fk(gperf)21 b Fa(.)c(.)i(.)h(.)f(.)h(.)65 b Fr(11)449
2296 y Fs(3.1)92 b(Input)29 b(F)-8 b(ormat)32 b(to)f
Fn(gperf)23 b Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)54 b Fs(11)748 2405 y(3.1.1)93 b(Declarations)9
b Fl(.)17 b(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)39 b Fs(11)1047 2515 y(3.1.1.1)93 b(User-supplied)30
b Fn(struct)10 b Fl(.)j(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)39 b Fs(12)1047 2624 y(3.1.1.2)93
b(Gp)s(erf)30 b(Declarations)18 b Fl(.)f(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)47 b Fs(12)1047
2734 y(3.1.1.3)93 b(C)30 b(Co)s(de)g(Inclusion)f Fl(.)15
b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)59 b Fs(15)748 2844 y(3.1.2)93 b(F)-8 b(ormat)31
b(for)f(Keyw)m(ord)g(En)m(tries)17 b Fl(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b Fs(16)748
2953 y(3.1.3)93 b(Including)29 b(Additional)i(C)f(F)-8
b(unctions)19 b Fl(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)49 b Fs(17)748 3063 y(3.1.4)93 b(Where)30 b(to)h(place)h
(directiv)m(es)f(for)g(GNU)g Fn(indent)p Fs(.)17 b Fl(.)c(.)i(.)g(.)g
(.)g(.)46 b Fs(17)449 3172 y(3.2)92 b(Output)29 b(F)-8
b(ormat)32 b(for)e(Generated)h(C)f(Co)s(de)g(with)g Fn(gperf)23
b Fl(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)52 b Fs(17)449
3282 y(3.3)92 b(Use)31 b(of)f(NUL)h(b)m(ytes)22 b Fl(.)16
b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)
f(.)g(.)51 b Fs(18)150 3524 y Fr(4)135 b(In)l(v)l(oking)45
b Fk(gperf)16 b Fa(.)i(.)h(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)61
b Fr(19)449 3661 y Fs(4.1)92 b(Sp)s(ecifying)30 b(the)g(Lo)s(cation)i
(of)e(the)h(Output)e(File)19 b Fl(.)e(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)g(.)49 b Fs(19)449 3771 y(4.2)92 b(Options)30
b(that)h(a\013ect)h(In)m(terpretation)f(of)g(the)f(Input)f(File)g
Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)57 b Fs(19)449 3880 y(4.3)92
b(Options)30 b(to)h(sp)s(ecify)f(the)h(Language)g(for)f(the)h(Output)e
(Co)s(de)14 b Fl(.)g(.)h(.)g(.)g(.)43 b Fs(19)449 3990
y(4.4)92 b(Options)30 b(for)g(\014ne)g(tuning)g(Details)i(in)e(the)h
(Output)e(Co)s(de)23 b Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)53
b Fs(20)449 4100 y(4.5)92 b(Options)30 b(for)g(c)m(hanging)h(the)g
(Algorithms)g(emplo)m(y)m(ed)g(b)m(y)g Fn(gperf)21 b
Fl(.)14 b(.)50 b Fs(23)449 4209 y(4.6)92 b(Informativ)m(e)31
b(Output)c Fl(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)
g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g
(.)g(.)g(.)g(.)g(.)58 b Fs(25)150 4452 y Fr(5)135 b(Kno)l(wn)45
b(Bugs)f(and)h(Limitations)i(with)e Fk(gperf)32 b Fa(.)19
b(.)g(.)79 b Fr(26)150 4721 y(6)135 b(Things)44 b(Still)i(Left)g(to)f
(Do)23 b Fa(.)d(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h
(.)f(.)g(.)h(.)f(.)68 b Fr(27)150 4991 y(7)135 b(Bibliograph)l(y)38
b Fa(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h
(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)82
b Fr(28)150 5261 y(Concept)45 b(Index)21 b Fa(.)e(.)g(.)h(.)f(.)h(.)f
(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)
f(.)g(.)h(.)f(.)h(.)f(.)h(.)65 b Fr(29)p eop end
%%Trailer

userdict /end-hook known{end-hook}if
%%EOF