blob: 29b19affe99a6ce972dad4318a745cbe4d9c94a0 [file] [log] [blame]
Jean-Paul Calderone897bc252008-02-18 20:50:23 -05001%!PS-Adobe-2.0
2%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software
3%%Title: pyOpenSSL.dvi
4%%Pages: 14
5%%PageOrder: Ascend
6%%BoundingBox: 0 0 596 842
7%%EndComments
8%DVIPSWebPage: (www.radicaleye.com)
9%DVIPSCommandLine: dvips -N0 -o pyOpenSSL.ps pyOpenSSL
10%DVIPSParameters: dpi=600, compressed
11%DVIPSSource: TeX output 2005.03.14:1158
12%%BeginProcSet: texc.pro
13%!
14/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
15N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
16mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
170 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
18landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
19mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
20matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
21exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
22statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
23N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
24/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
25/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
26array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
27df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
28definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
29}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
30B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
311 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
321 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
330 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
34sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
35rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
36gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
37/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
38/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
39A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
40get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
41ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
42fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
43{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
44chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
451 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
46forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
47/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
48}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
49bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
50mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
51SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
52userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
531000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
54index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
55/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{
56/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
57(LaserWriter 16/600)]{A length product length le{A length product exch 0
58exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
59end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
60grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
61imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
62exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
63fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
64delta 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}
65B/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{
66p -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
67rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
68
69%%EndProcSet
70TeXDict begin 39158280 55380996 1000 600 600 (pyOpenSSL.dvi)
71@start
72%DVIPSBitmapFont: Fa ectt0800 8 14
73/Fa 14 122 df<90380FE0E090383FF9F0EBFFFD4813FF5A3807FC3F380FF00F381FC007
74A2383F80031300481301127EA2007CEB00E000FC1400A25AA97EA2127C007E14E0EC01F0
75127F7EEB8003EA1FC0EC07E0380FF00F3907FC1FC06CB512806C14006C5BEB3FF8EB0FE0
761C2B7DA923>67 D<B612F015F8A4380F8000A515701500A21438147CA3EBFFFCA5EB807C
77A3143891C7FCA3151C153EA6B612FEA415FC1F297EA823>69 D<3803FFF0000F13FC487F
78487FA2397F807F80387E001F007C130FA200FC14C0481307B3A46C130FA2007C1480A200
797E131F387F807F6CB51200A26C5B6C5B000313F01A2B7CA923>79
80D<B512F014FE80158015C0390F801FE0EC07F01403140115F81400A5140115F014031407
81EC1FE090B512C0158015005C14F00180C7FCABEAFFF87FA35B1D297EA823>I<007FB512
8280B612C0A46C14801A067C7E23>95 D<3803FF80000F13E04813F8487F80EB80FFEC3F80
83381F001FC7FC140F14FF137F0003B5FC120F5A387FF00F130012FCA25A141F7E6C133F38
847F81FF90B512FC6C14FE7E000713C73901FE01FC1F1D7D9C23>97
85D<B47E7FA41207A7EBC1FCEBC7FF01DF13C090B512E015F09038FE0FF8EBF8039038F001
86FCEBE000A249137EA2153EA5157E7F15FC7F14019038F803F89038FE0FF090B5FC15E001
87DF138001CF1300380383F81F297FA823>I<EB3FF0EBFFFC000313FF5A5A381FE07FEA3F
8880387F003E007E90C7FCA25AA25AA57EA2007E1307007FEB0F80141FEA3FC0391FF07F00
896CB5FC6C5B6C5BC613F0EB3FC0191D7B9C23>I<EB3FC0EBFFF800037F4813FF48148038
901FF07F393F801FC0EB000F007E130715E05AB6FCA415C000F8C8FC7EA2007EEB01C0007F
91EB03E0383F800713E0391FF81FC06CB5FC6C14800001EBFE006C6C5AEB1FE01B1D7D9C23
92>101 D<14E0EB03F8A5EB00E01400A63803FFF04813F8A37EC7FCB3AB13011238387C03
93F012FEEB0FE0B5FC14C06C13006C5AEA0FF815397DA923>106 D<EA7FFEB5FCA37EEA00
941FB3AD007FB512C0B612E0A36C14C01B297CA823>108 D<137013F8A7007FB51280B612
95C0A36C1480D800F8C7FCACEC01C0EC03E0A3EBFC07140F9038FE1FC0EB7FFF158090383F
96FE00EB0FFCEB07F01B257EA423>116 D<39FFF03FFCA5390F8007C000071480A2EBC00F
9700031400A26D5A0001131EA2EBF03E0000133CA2EBF87CEB7878A2EB7CF8EB3CF0A2133F
986D5AA36D5A6D5A1E1D7E9C23>118 D<39FFF03FFCA539078007C0158013C00003130F15
9900EA01E05CEBF01E1200A26D5A1378A26D5AA3EB1E7014F0130EEB0FE0A213075CA35CA2
100130F91C7FCA2EA3E1FEA7F1E133EEA7CFC127F5B6C5A6C5AEA0F801E2C7E9C23>121
101D E
102%EndDVIPSBitmapFont
103%DVIPSBitmapFont: Fb ecti0800 8 6
104/Fb 6 119 df<EB07C0EB1FF090387C39C0EBF81FEA01F03803E00FEA07C0120FD81F80
1051380A2EA3F00141F481400127EA25C00FE133E5AA2EC7E18EC7C385AA214FCD878011378
106397C03F870A2393C0F78E0381E1E3D390FF81FC03903E00F001D1F799D24>97
107D<13F8121FA21201A25BA21203A25BA21207A25BA2120FEBC7C0EB9FF0EBF878381FF03C
108EBE03EEBC01EEB801FEA3F00A2123EA2007E133FA2127CA2147F00FC137E5AA214FCA214
109F8130114F0EB03E0EA780714C0383C0F80381E3E00EA0FF8EA03E0182F78AD21>I<EB03
110F8EB0FFEEB3E0FEBF8073901F00380EA03E0EA07C0000F1307D81F8013005C383F001E5C
111387F03F8EBFFE049C7FC007EC8FC12FE5AA4127CEC0180EC03C0EC07806CEB0F00141E6C
112137C380F83F03803FFC0C648C7FC1A1F799D21>101 D<131FEA03FFA2EA003FA2133EA2
113137EA2137CA213FCA25BA21201147E9038F3FF809038F787C03903FE03E013FC13F8A2EA
11407F013E0A213C0000F130715C01380A2001F130F15801300141F481406150E003E133F14
1153E007E141EEC7E1C007C137CEC3C3812FC157048EB1FE00070EB07801F2F7BAD24>104
116D<EB0FC0EB7FF0EBF03C3801E01C3803C01EEA0780143EA2000F133C1418EBC00013F813
117FF6C13C06C13E06C13F0EA007F130713031301EA780012FCA2130100F813E012E0EB03C0
11838F0078038781F00EA1FFCEA07F0171F7A9D1D>115 D<3903C001C0390FF003E0391E78
11907F0EA1C7C1238007813030070130113FCD8F0F813E012E000E1130038C1F001000114C0
120120313E014030007148013C0A2EC0700120F1380140EA25C12076D5A00035B6D5AC6B45A
121013FC7FC1C1F7A9D21>118 D E
122%EndDVIPSBitmapFont
123%DVIPSBitmapFont: Fc ecrm1440 14.4 2
124/Fc 2 94 df<B512C0A248C7FCB3B3B3B3B3B3A8B512C0A2127875D920>91
125D<B512C0A2EA001FB3B3B3B3B3B3A8B5FCA212787ED920>93 D E
126%EndDVIPSBitmapFont
127%DVIPSBitmapFont: Fd ecti1000 10 40
128/Fd 40 123 df<04FFEB03F003039038E00FFC923A0FC0F01F1E923A3F00783E0F923A7E
12901F87C3FDB7C03EBFC7F03FC14F8DA01F813F905F1137EDC01E1133C913B03F00003F000
130A314074B130760A3140F4B130F60A3010FB812C0A3903C001F80001F8000A3023F143F92
131C790C7FCA44A5C027E147EA402FE14FE4A5CA413014A13015FA313034A13035FA313074A
132495AA44948495AA44948495AA3001CD9038090C8FC007E90380FC03F013E143E00FE011F
1335B133C017C5C3AF8780F01E0D878F0EB07C0273FE003FFC9FC390F8000FC404C82BA33>
13427 D<EE3FFC4BB51280923907E007C092391F8001E0DB3F0013F0037E13034B1307A24A
1355A18E04A48EB038094C7FCA314075DA4140F5DA3010FB7FCA25F903A001F80007EA217FE
136023F5C92C7FCA216015F5C147E16035FA214FE4A13075FA30101140F5F4AECC1C0A2161F
1371783010316805CA2EF870013074A5CEE0F8EEE079EEE03FC010FEC00F04A91C7FCA35C13
1381FA2001C90CAFC127E5BEAFE3E133C137CEAF878EA78F0EA3FE0EA0F80344C82BA2F>I<
139EE7FE0923903FFFC7E92380FC03E92381F000F033EEB3FFE4B137F03FC14FC5D1401173D
1404A48EB01F8A21703A24A4814F0A21707A2020F15E05D170FA218C0010FB7FCA3903B001F
14180001F80A2173F143F92C71300A25FA24A147E147E17FEA25F14FE4A1301A25FA2010114
142035CEFF070A21607010316F04AECE0E0A3EFE1C013074A14C3933803E380EE01E7933800
143FF004948143C94C7FCA3495AA3001C90CAFC127E133E12FE133C137CEAF878EA78F0EA3F
144E0EA0F80374C82BA31>I<14F0EB03FCA21307A3EB0FF8A314F0A3EB1FE0A314C0A3EB3F
14580A31400A3137EA3137CA35BA35BA3485AA45B1203A2C8FCA8120EEA3F80127F12FFA390
146C7FC127E123C163C77BB19>33 D<EA03C0EA07F0120F121F13F8A313F0EA07B0EA003013
147701360A213E013C01201EA038013005A120E5A5A5A5A5A0D197A8819>44
148D<120EEA3F80127F12FFA31300127E123C0909778819>46 D<EC03F8EC1FFEEC7C1F9138
149F00F80903903E007C0903807C003D90F8013E014005B013E14F0A25B13FCA2485AA20003
1501407A25B000715E0A249130F120FA34848EB1FC0A44848EB3F80A448C7EA7F00A3157E00
1517E14FEA200FE5C14015D5A4A5AA25D1407007C5C4A5AA24AC7FC6C133E5C6C5B380F83E0
1523807FF80C648C8FC243977B62A>48 D<01031438496C13F89138F007F091B512E0168049
15314005D15F815C0D91E1CC7FC011CC8FCA3133C1338A313781370A2147F9038F1FFC09038
154E783E09038FE01F09038F800F8485A497F49137C5BC8127EA315FEA414015D121E127F14
15503485CA248495A12F800E05C140F4A5A5D6C49C7FC147E00785B387C01F8383E07F0381F
156FFC06C90C8FCEA03F8253977B62A>53 D<EC03F8EC0FFE91383FFF809138FE0FC0903901
157F807E0903803F003D907E013F090380FC001EB1F80EB3F004914F8137E13FEA2485A1503
158A212035B16F0150712075B150FA216E0151F6C5A153F6DEB7FC0120115FF6C6C5A903978
15903BF8090383C0F3FEB1FFC903907F07F0090C7FC157E15FE5D14015D4A5AA2003E495A00
1607F495A5D141F00FE49C7FC48137E00705B387803F0387C0FE0383FFF806C48C8FCEA03F8
161253978B62A>57 D<902603FFF891B512E0A281D90007923807F8006F6E5A61020F5E81DA
1620E7F5DA2021E6D1307033F92C7FC141C82DA3C1F5C70130EEC380FA202786D131E030714
1631C147082DAF003143C70133814E0150101016E1378030014705C8201036E13F0604A1480
164163F010715C1041F5B91C7FC17E149EC0FE360010E15F31607011E15FF95C8FC011C80A2
165013C805F1338160013785F01F8157CEA03FC267FFFE0143CB51538A243397CB83E>78
166D<0103B612F017FEEFFF80903B0007F8003FC04BEB0FF01707020FEC03F8EF01FC5DA202
1671F15FEA25DA2143FEF03FC5DA2027FEC07F818F092C7120F18E04AEC1FC0EF3F004A14FE
168EE01F80101EC0FE091B6128004FCC7FC9138FC003F0103EC0F80834A6D7E8301071403A2
1695C83010F14075F5CA2011F140FA25CA2133F161F4AECE007A2017F160F180E91C7FC4902
1700F131C007F01FE153CB5913807F078040313F0CAEAFFE0EF3F80383B7CB83D>82
171D<B5D8F80FB590381FFFF06102F018E0D807FEC7D87FE0903803FE00D803F8DA3F806D5A
172F100F0A24F5A621903621907047F92C7FC190E16FF4B5DA2DB03BF5C7F0001DA073F5CA2
173030E5D83DB1C1F495A180303385D4EC8FC157003F0140E15E0DA01C05CA2DA03805CA2DA
17407005CA2020E5D17C14A5DEFC3805C027802C7C9FC14704A14CE13FE6C6C4814DCA24A14
175F8A291C75B160F495D5F5B5F5B4992CAFCA249140E4C3B6FB853>87
176D<49B5D8F007B5FCA3D9000790C713E0DA03FCEC7F00187C020115786F5C4D5A02005D6F
177495A4DC7FC6F5BEE801E5F033F5BEEC0705F92381FC1C016E3EEE780DB0FEFC8FC16FE6F
1785A5EA2150382A2150782150F151CED3CFF5D4B7EDA01E07FEDC03FDA03807FEC0700020E
179131F021E805C4A130F0270805C49481307494880130749C71203011E81133E01FE81D807
180FF1407B500E090387FFFFC93B5FC6040397CB83E>I<B812FC17FEA217FC2F047C7040>
18195 D<14F8EB07FE90381F871C90383E03FE137CEBF801120148486C5A485A120FEBC001
182001F5CA2EA3F801403007F5C1300A21407485C5AA2140F5D48ECC1C0A2141F1583168014
1833F1587007C017F1300ECFF076C485B9038038F8E391F0F079E3907FE03FC3901F000F022
1842677A42A>97 D<133FEA1FFFA3C67E137EA313FE5BA312015BA312035BA31207EBE0F8EB
185E7FE9038EF0F80390FFC07C013F89038F003E013E0D81FC013F0A21380A2123F1300A214
186075A127EA2140F12FE4814E0A2141F15C05AEC3F80A215005C147E5C387801F8007C5B38
1873C03E0383E07C0381E1F80D80FFEC7FCEA01F01C3B77B926>I<147F903803FFC090380F
188C1E090381F0070017E13784913383901F801F83803F003120713E0120FD81FC013F091C7
189FC485AA2127F90C8FCA35A5AA45AA3153015381578007C14F0007EEB01E0003EEB03C0EC
1900F806CEB3E00380F81F83803FFE0C690C7FC1D2677A426>I<ED01F815FFA3150316F0A2
1911507A216E0A2150FA216C0A2151FA21680A2153FA202F81300EB07FE90381F877F90383E
19203FF017C5BEBF80112013803F00048485B120FEBC001121F5DEA3F801403127F01005BA2
19314075A485CA2140FA248ECC1C0A2141F15C3ED8380143F1587007C017F1300ECFF076C48
1945B9038038F8E391F0F079E3907FE03FC3901F000F0253B77B92A>I<147F903803FFC090
195380FC1E090383F00F0017E13785B485A485A485A120F4913F8001F14F0383F8001EC07E0
196EC1F80397F81FF00EBFFF8148090C8FC5A5AA55AA21530007C14381578007E14F0003EEB
19701E0EC03C06CEB0F806CEB3E00380781F83803FFE0C690C7FC1D2677A426>I<ED07C0ED
1981FF0ED3E38ED7C3CEDF8FC15F9140115F1020313F8EDF0F0160014075DA4140F5DA4141F
1995D010FB512C05B16809039003F800092C7FCA45C147EA414FE5CA413015CA413035CA413
200075CA4130F5CA3131F5CA391C8FC5B121CEA7E3EA2EAFE3C137C1378EAF8F01278EA3FC0
201EA0F80264C82BA19>I<EC07C0EC3FF09138FC38E0903901F01FF0EB03E0903807C00FEB
2020F80011F1307D93F0013E05B017E130F13FE4914C01201151F1203491480A2153F120749
2031400A25DA249137EA215FEA25D00031301140314076C6C485A0000131FEB787BEB3FF390
204380FC3F0EB00031407A25DA2140F5D121C007E131F5D00FE49C7FC147E5C387801F8387C
20507E0381FFF80D803FEC8FC24367CA426>I<EB03F0EA01FFA3EA00075CA3130F5CA3131F
2065CA3133F91C8FCA35B90387E07F0EC1FFCEC783E9038FFE01F02C01380EC800F1400485A
20716C05B49EB1F8012035BA2153F000715005BA25D000F147E5B15FE5D121FD98001131C15
208F8163C003F01031338010013F0A216704814E0007E15F016E0EDE1C000FE903801E38048
209903800FF000038143C263B7BB92A>I<EB01C0EB07E014F0130F14E01307EB038090C7FC
210AB13F0EA03FCEA071EEA0E1F121CA212385B1270A25BEAF07E12E013FEC65AA212015B12
21103A25B12075BA2000F13E013C013C1001F13C01381A2EB83801303EB0700A2130E6C5AEA
21207F8EA01E0143879B619>I<150E153F157FA3157E151C1500ABEC1F80EC7FC0ECF1F0EB
21301C090380380F813071401130F130E131EEB1C03133C013813F0A2EB0007A215E0A2140F
214A215C0A2141FA21580A2143FA21500A25CA2147EA214FEA25CA21301A25CA213035C121C
215387E07E0A238FE0FC05C49C7FCEAF83EEA787CEA3FF0EA0FC0204883B619>I<EB03F0EA
21601FFA3EA00075CA3130F5CA3131F5CA3133F91C8FCA35B017EEB0F80ED3FE015F09039FE
21701C1F09038FC0387EC0707140E0001011C13E0EBF83891383003800270C7FC00035BEBF1
218C0EBF38001FFC8FCEA07FC7FEBFFC0EBE7F8380FE1FCEBC07E147F80001F809039801F81
219C0A21583003F013F138001001303A21507481500007E133EEC1E0E151E00FE6D5A48EB07
220F80038EB01E0243B7BB926>I<EB0FC0EA07FFA3EA001F1480A2133FA21400A25BA2137E
221A213FEA25BA21201A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123FA290C7
222FCA25AA2EA7E0EA212FE131EEAFC1CA2133C133812F81378EA7870EA7CE0121FEA0F8012
2233B79B915>I<D801E001FEEB07F03C07F803FF801FFC3C0E3C0F07C0783E3C1E3E3C03E1
224E01F261C1F78D9F3C013803C383FF001F7800F02E01400007801C013FE007018C002805B
2254A4848EB1F80EAF07FD8E07E5CA200000207143F01FE1700495CA2030F5C0001177E495C
22618FE031F5C120349DA8001131C18F8033F153C00070403133849020013F0A24B1570000F
22717E049017E15F019E003FEECE1C0001FEE01E34949903800FF000007C70038143C3E2679
228A444>I<D801E013FE3A07F803FF803A0E3C0F07C03A1E3E3C03E0261C1F787F39383FF0
2290114E0007813C000708114804A485AEAF07FEAE07EA20000140701FE5C5BA2150F00015D
2305B151F5E12034990383F8380160316070007027F130049137EA2160E000F147C49141E16
2311C5E001FEC3C7849EB1FE00007C7EA0780292679A42F>I<147F903803FFC090380FC1F0
23290381F00F8017E137C5B4848137E4848133E0007143F5B120F485AA2485A157F127F90C7
233FCA215FF5A4814FEA2140115FC5AEC03F8A2EC07F015E0140F007C14C0007EEB1F80003E
234EB3F00147E6C13F8380F83F03803FFC0C648C7FC202677A42A>I<9039078007C090391F
235E03FF090393CF0787C903938F8E03E9038787FC00170497EECFF00D9F0FE148013E05CEA
23601E113C15CA2D80003143FA25CA20107147FA24A1400A2010F5C5E5C4B5A131F5EEC8003
2375E013F495A6E485A5E6E48C7FC017F133EEC70FC90387E3FF0EC0F8001FEC9FCA25BA212
23801A25BA21203A25B1207B512C0A3293580A42A>I<ECF803903807FE0790381F871F9038
2393E03BF017C13FEEBF80112013803F000484813FC120F5B001F130115F8EA3F80A2007F13
24003010013F0A34813074814E0A3140F4814C0A3141F1580143FA2007C137FECFF006C5AEB
24103BF381F0F7F3807FE7EEA01F0C7FC14FE5CA313015CA313035C130748B512C0A3203577
242A426>I<3903C003F0390FF01FFC391E783C0F381C7C703A3C3EE03F8038383FC0EB7F80
2430078150000701300151CD8F07E90C7FCEAE0FE5BA2120012015BA312035BA312075BA312
2440F5BA3121F5BA3123F90C9FC120E212679A423>I<14FE903807FF8090380F83C090383E
24500E04913F00178137001F813F00001130313F0A215E00003EB01C06DC7FC7FEBFFC06C13
246F814FE6C7F6D13807F010F13C01300143F141F140F123E127E00FE1480A348EB1F0012E0
2476C133E00705B6C5B381E03E06CB45AD801FEC7FC1C267AA422>I<EB0380EB07C0130FA4
248131F1480A3133F1400A35B137E007FB5FCA2B6FC3800FC00A312015BA312035BA312075B
249A3120F5BA3121FEB801CA2143C003F1338EB0078147014F014E0EB01C0EA3E03381F0780
250380F0F00EA07FCEA01F0183579B31C>I<13F8D803FEEB01C0D8078FEB03E0390E0F8007
251121E121C0038140F131F007815C01270013F131F00F0130000E015805BD8007E133FA201
252FE14005B5D120149137EA215FE120349EBFC0EA20201131E161C15F813E0163CD9F00313
2533814070001ECF07091381EF8F03A00F83C78E090393FF03FC090390FC00F00272679A42D
254>I<01F0130ED803FC133FD8071EEB7F80EA0E1F121C123C0038143F49131F0070140FA2
2555BD8F07E140000E08013FEC6485B150E12015B151E0003141C5BA2153C000714385B5DA3
2565DA24A5A140300035C6D48C7FC0001130E3800F83CEB7FF8EB0FC0212679A426>I<01F0
2571507D803FC903903801F80D8071E903907C03FC0D80E1F130F121C123C0038021F131F49
258EC800F00701607A249133FD8F07E168000E0ED000313FEC64849130718000001147E5B03
259FE5B0003160E495BA2171E00070101141C01E05B173C1738A217781770020314F05F0003
260010713016D486C485A000190391E7C07802800FC3C3E0FC7FC90393FF81FFE90390FE003
261F0322679A437>I<903907E007C090391FF81FF89039787C383C9038F03E703A01E01EE0
262FE3803C01F018013C0D8070014FC481480000E1570023F1300001E91C7FC121CA2C75AA2
263147EA214FEA25CA21301A24A1370A2010314F016E0001C5B007E1401010714C000FEEC03
26480010F1307010EEB0F0039781CF81E9038387C3C393FF03FF03907C00FC027267CA427>
265I<13F0D803FCEB01C0D8071EEB03E0D80E1F1307121C123C0038140F4914C01270A24913
2661FD8F07E148012E013FEC648133F160012015B5D0003147E5BA215FE00075C5BA214015D
267A314035D14070003130FEBF01F3901F87FE038007FF7EB1FC7EB000F5DA2141F003F5C48
268133F92C7FC147E147C007E13FC387001F8EB03E06C485A383C1F80D80FFEC8FCEA03F023
2693679A428>I<903903C0038090380FF007D91FF81300496C5A017F130E9038FFFE1E9038
270F83FFC3901F007F849C65A495B1401C7485A4A5A4AC7FC141E5C5C5C495A495A495A49C8
271FC131E5B49131C5B4848133C48481338491378000714F8390FF801F0391FFF07E0383E1F
272FFD83C0F5B00785CD8700790C7FC38F003FC38E000F021267BA422>I
273E
274%EndDVIPSBitmapFont
275%DVIPSBitmapFont: Fe ectt1200 12 11
276/Fe 11 122 df<387FFFF8B57E80A25C6C5BD801FCC9FCB3B3A3EE03E0EE07F0A9007FB7
277FCB8FCA46C16E02C3D7DBC33>76 D<D907FE137890393FFFC07C90B5EAF0FC4814FC0007
27814FF5AEBFC03391FF0007F4848133F0180131F007F140F90C712074814035AA21501A46C
279EC00F86C15007F7F6C7E7FEA1FFE380FFFE06C13FF6C14F06C14FC6C6C13FF011F148001
2800314C0D9003F13E0020313F09138003FF8ED0FFC1507ED03FE1501150016FFA2007C157F
28112FEA56C15FF16FE7FED01FC6D130301F0EB07F801FC130F9039FF807FF091B512E016C0
28200FC1580013FEBFE00D8F80F5BD8780013E0283F7BBD33>83 D<EB1FFC90B57E000314E0
28348804814FC48809038F007FFEBE0016E7F153F6C48806C48131FC87F150FA5EC0FFF49B5
284FC131F137F48B6FC0007140F4813C0381FFC00EA3FF0EA7FC05B48C7FC5AA56C141F7E6D
285137FD83FE0497ED9F807EBFFF06CB712F87E6C14F36C14C1C69138003FF0D91FF090C7FC
2862D2E7BAC33>97 D<ECFFF0010713FE011FEBFF804914C04914E048B612F048EBC01F9038
287FE000F485A485A4848EB07E049EB03C0484890C7FC5BA2127F90C9FCA25A5AA97E7EA27F
288003FEC01F06DEB03F86C7E6D13076C6C14F06C6C130F01FFEB1FE06CEBE07F6C90B512C0
2896C1580013F14006D13FC01075B010013C0252E79AC33>99 D<ED7FF84B7E5CA280157F15
29001ABEB01FF010713C1011F13F1017F13F990B6FC5A4813813907FE003FD80FF8131F4913
2910F48481307491303123F491301127F90C7FCA25A5AA97E7E15037F123F6D1307A26C6C13
2920F6D131F6C6C133F6C6C137F2603FF81B512F091B612F8C602FD13FC6D13F96D01E113F8
293010F018013F0D901FEC8FC2E3E7DBC33>I<4AB4FC263FFC0713C0267FFE1F13F000FF01
2947F7F91B5FC6CB67E6CEC07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF8
2950FFFFC486D4813FEB56C4813FFA26C496C13FE6C496C13FC302C7FAB33>110
296D<EB01FE90380FFFC0013F13F0497F90B57E488048EB03FF2607FC0013804848EB7FC049
297133F4848EB1FE049130F4848EB07F0A2007F15F890C71203A300FEEC01FCAA6C14036C15
298F8A26D1307003F15F06D130FA26C6CEB1FE06D133F6C6CEB7FC06C6CEBFF802603FF0313
299006CEBFFFE6C5C6D5B6D5B010F13C0D901FEC7FC262E7AAC33>I<EC01FE3A3FFC0FFFC0
300486C4813F000FF017F7F91B512FE6CB7FC6CEBFE07C6D9F800138002E0EB7FC04AEB3FE0
3014A131FEE0FF091C7FC16074915F81603A217FC1601A9160317F8A26D140717F06E130F17
302E06E131FEE3FC06E137F9139F801FF80DAFE07130091B55A495C6E5B6E13E0020F1380DA
30303FEC7FC91C9FCAF383FFFF8487FB57EA26C5B6C5B2E427FAB33>I<ED03FE3B7FFF801F
304FF80B5D8C07F13E002C1B5FC02C314F014C76C9038CFFE0F39001FDFF09139FFC007E092
305388003C092C8FC5C5C5CA25CA25CA35CB2007FB512FEB7FCA46C5C2C2C7DAB33>114
306D<EB03C0497E130FAA003FB612FC4881B7FCA36C5D26000FE0C8FCB3A3161FEE3F80A516
3077F6E140001075C6E5A9138FE07FE6DB55A6D5C6D5C6E5B021F1380DA07FCC7FC29387EB6
30833>116 D<3B7FFF801FFFE0B56C4813F06E4813F8A24A6C13F06C496C13E0D803F8C7EA
309FC00000114015E7F000014036D5C137EA2017F495A7FA26E485A131FA26D6C485AA214E0
310010749C7FCA214F01303157EEB01F8A2157C010013FC14FC5D147C147DEC3FF0A36E5AA3
3116E5AA2141F5DA2143F92C8FCA3147EA214FE003F5B1301387F81F81383EB87F0139FEBFF
312E06C5B5C6C90C9FCEA0FFCEA03F02D427DAA33>121 D E
313%EndDVIPSBitmapFont
314%DVIPSBitmapFont: Ff ectt1440 14.4 6
315/Ff 6 113 df<007FB5FCB67E81A35D6C91C9FCC648CAFCB3B3ABEF07C0EF0FE0AB007F
316B8FCB9FCA56C17C033497BC83D>76 D<0103B512C0013F14FC90B7FC000316C04816E048
31716F04816F891C7FC01F8141F4848EC0FFC01C01403A24848EC01FEA390C9FCA54816FF48
318167FB3AE6C16FFA26C16FEA56D1401A36C6CEC03FC6D14076D140FD81FFCEC3FF89039FF
3198001FF91B6FC6C16F06C16E06C16C0C61600013F14FC010314C0304B7AC93D>79
320D<DAFFE013F0010701FC13F8011FEBFF81017F14E148B612F14815FB4815FF48EB803F90
32138FC0007D81FF0130148487F49143F485A161F90C8120F5A481507A31603A37E6CED01F0
32293C7FC7F6C7E7F6C7E13FC6CB4FC6C13F06C13FF6C14F86C6CEBFF806D14E0010F14F801
3230114FED9001F7F02011480DA001F13C0030113E09238003FF0EE1FF81607EE03FCA2EE01
324FE1600A217FF007C167F12FEA57E17FF17FE7F16016DEC03FC6D140701F8EC0FF86D141F
325D9FF80EB7FF09139F801FFE091B612C0481680486C1500011F5C010714F848C614E00078
326010F90C7FC304B7AC93D>83 D<EC1FF891B57E010314E0010F14F84980498049809026FF
327F80F138048D9C00113C04890C7EA7FE0D807FC141F4848EC0FF05B4848EC07F81603485A
3284915FC1601127F90C8FC17FE4815005AB8FCA617FC48CAFC7E7EA37F123F7F6C6C157C17
329FE6C7E7F6C6C14016CB4EC03FC6E13076C01F0EB1FF86C01FEEBFFF06DB612E06D15C001
3300F15806D1500010114FC6D6C13E0020790C7FC2F3679B43D>101
331D<ED3FE03A7FFE01FFFCB500077F021F6D7E5C4A8091B67E6CECC07F3B007FFE001FF04A
332130F4A13074A805C4A1303A25CA391C7FCB3A9007FB548B512F8B6008314FC1587A31583
3336C020114F836347DB33D>110 D<ED1FF0D87FFEEBFFFCB5000313FF020F14C0023F804A
3348091B67E6C9138C07FFCC66C9038000FFE02FC13074AEB01FF4A7F4A15804A147F4AEC3F
335C0A2EF1FE091C8FC170FA218F0A21707A9170FA218E080171F18C06E143FA26EEC7F8017
336FF6E4913006E5B6E495A6EEB1FFC9139FFC0FFF892B5FC6E14E06E5C020F5C6E49C7FC02
3370113F89138003FE092C9FCB3007FB5FCB67EA56C91C9FC344F7DB33D>112
338D E
339%EndDVIPSBitmapFont
340%DVIPSBitmapFont: Fg ecss1000 10 53
341/Fg 53 122 df<BD12C0A55205809853>22 D<903901F807F0EB07FE130F131F133FEB7F
3420EEB7E0201FEC8FC5BA21201AEB538FE07F0A53801FC00B3AE243D7FBC2C>28
343D<B512FCA516057F941C>45 D<12FEA70707788617>I<EB03F8EB1FFF017F13C090B57E
34448803903FE0FF83907F803FC48486C7EEBE0004848137F497F003F1580A290C7121F4815
345C0A3007E140FA300FE15E0B3007FEC1FC0A56C6CEB3F80A36C6CEB7F00A26C6C13FEEBF0
346016C6C485A3903FE0FF86CB55A6C5C6D5B011F90C7FCEB03F8233A7DB72A>48
347D<14C013011307131F13FFB5FCA4131F1200B3B3A5007FB512F0A51C3879B72A>I<EB0F
348F8EB7FFF48B512C0488048804880391FF01FFC9038C007FE393F0001FF003E7F007E1580
349007C147F00FC143F5A007815C012380030141F1210C8FCA2153FA21680A2157F160015FE
350A24A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FE495A495A495AEB0FC0495A49C8FC137E5B48
3515A485A485A485A485A48C9FC48B612C0A622387DB72A>I<EB07F8EB3FFF90B512C04880
3524880000F809038FC0FFC391FE003FE383FC0016CC7FC000E80A2000480C8FCA25DA25D14
353015D14034A5A4A5AEC7FE090381FFFC05D4AC7FC6E7E15E09038000FF8EC03FCEC00FE15
3547F1680153F16C0A2ED1FE0A70040143F006015C0127000F8EC7F807EB4ECFF00387FC003
355393FF80FFE6CB55A6C5C00035C6C14C06C6C90C7FCEB07FC233A7DB72A>I<EC07F8140F
356A2141B143BA2147B147314F31301A2EB03E3A2EB07C3130FA2EB1F83A2EB3F03137F137E
35713FE13FCEA01F8120313F0120713E0120FEA1FC01380123F13005A12FEB712F8A5C73803
358F800AE25367EB52A>I<001FB512FEA601C0C8FCADEBC1FCEBCFFF01DF13C090B57E8190
35938FE07F89038F803FC496C7E496C7E5B497FC81380A2153F16C0A9ED7F8012101238EDFF
36000007C5BB4495A6C6C485A393FF01FF86CB55A6C5C6C5C6C5CC649C7FCEB1FF022387DB5
3612A>I<EC3FE0903801FFF8010713FE5B133F5B9038FFE01E48EB00064990C7FCEA03F848
3625AA2485A485AA25B123FA2387F007F903803FFC0010F13F0013F7FD87E7F7F39FEFE07FE
36338FFF8019038E000FF497FED3F805BED1FC090C7FCA2ED0FE05AA47E127E127FA46CEC1F
364C07FA2001FEC3F807F6C6CEB7F005D3907F801FE9038FE07FC6CB55A6C5C6C5C013F5B6D
36590C7FCEB03FC233A7DB72A>I<B712E0A6C81207ED0FC0ED1F80ED3F00157E15FE5D4A5A
36614034A5AA24A5A4A5AA24A5AA24AC7FCA214FEA213015C13035C1307A25C130FA35C131F
367A35C133FA55C137FA823377DB52A>I<EB03F8EB1FFF017F13C090B57E000314F8A23907
368FC07FC390FF001FEEBE0004848137F497F003F158090C7121FA66C6CEB3F00A26C6C137E
369A26C6C5B3903F803F8C6B512E06D5BD90FFEC7FC497E90B512E048EB1FF03907F803FC39
3700FE000FE4848137F4848EB3F8090C7121F4815C0A200FEEC0FE0A8007FEC1FC0A26D133F
371003F15806D137F3A1FF001FF00390FFC07FE6CB55A6C5C6C5C6C5C013F1380D907FCC7FC
372233A7DB72A>I<EB03FCEB1FFF017F13C090B57E488048803907FC07FC380FF00148486C
3737E49137E4848137F8148C71380A2151F00FE15C0A3150FA216E0A5151F127FA2153F6C7E
374157F6C7E6D13FF380FF0039038FC0FEF6CB5EACFC06C149F6CEBFE1F38007FF8EB1FC090
375C71380153FA2ED7F00A215FEA24A5A4A5A000613070007EB1FF0390FC07FE090B55A485C
3766C91C7FC6C13FC00015B38003FC0233A7DB72A>I<EC07F8A24A7EA24A7EA2157EEC3F7F
377143EA291387E3F80A2147C02FC7F151FA2D901F87F150F01038014F0A201076D7E14E0A2
378010F6D7E14C0A2011F6D7E1480013F808191C7FC4981167F137E01FE6E7E90B7FCA24882
379A3D803F8C7EA0FF05B00078216075B000F8216035B001F8216015B003F6F7EA248C91380
380177F127E00FE17C0323A7EB937>65 D<B67E15F815FE6F7E82D9000113F09138003FF815
3810F6F7E6F7E150115008282A45E5E15014B5A15074B5AED3FF0EDFFC090B65A4BC7FC15F8
38215FF16C0D9000313F09138003FF8ED07FC6F7EED00FFEE7F80EE3FC0A2161F17E0160FA4
383161F17C0163FA2EE7F80ED01FF4B1300ED0FFEED7FFC90B65A16E016804BC7FC15E02B3A
38479B937>I<913803FF80021F13F891B6FC4915C013075B4948C61380D97FF0130FD9FFC0
38513034A13014890C9FC485A485A5B120F5B485AA2485AA3485AA448CAFCAC6C7EA46C7EA3
3866C7EA26C7E7F12077F6C7E6C6C15206C6D14E06E1301D97FF0130FD91FFE137F6DB6FC6D
38715C0010115006D5C021F13F0020313802B3E7BBB35>I<B712F0A690C9FCB390B612C0A5
38890C9FCB3A390B612FCA7263A78B932>69 D<913803FF80023F13F891B512FE0103ECFFC0
3894915E05B90383FFE00D97FF0EB1FC0D9FFC013074A13014890C8124048481500485A5B12
3900F5B485AA2485AA3485AA448CAFCA992383FFFF0A36C7EA2ED0007A26C7EA36C7EA26C7E
3917F12077F6C7E6C7E6C7F80EB7FF0D93FFE137F010FB6FC7F6D15C001001500023F13F802
3920313802C3E7BBB37>71 D<12FFB3B3B3A4083A79B917>73 D<00FEED1FF0EE3FE0EE7FC0
393EEFF804B13004B5A4B5A4B5A4B5A4B5A5E4B5A4BC7FC4A5A4A5A4A5A140F4A5A4A5A4A5A
3944A5A4990C8FC495A1307497EA2497F497FEB7F9F9038FF1FE06C486C7E140701FC7F496C
3957EEBF00101E07F496C7E497F90C77F486E7E151F826F7E1507826F7E1501826F7E821780
396EE3FC0161F17E0EE0FF0160717F8EE03FC2E3A78B93A>75 D<B4FCB3B3B090B612C0A622
3973A79B92D>I<D8FFC0ED07FFA36D5DA26D5D00FE177FA26D153F0178153EA2017C157EA2
3986D15FCA3013F14016D15F8A26E1303010F15F06E1307A2010715E06E130FA2010315C06E
399131FA2010115806E133FA2010015006E5B027C137E027E13FEA2023E5BEC3F01A2021F5B
4001583A2020F5B15C702075BA3913803EFC0A215FF6E5BA26E90C7FCA392C8FCA2383A78B9
40149>I<D8FFE0EC1FC0A27FA27FA2487EA2137EA2137F7F80131FA26D7EA2801307801303
40280130180130080A2147FA2EC3F80A2EC1FC0A2140F15E0140715F0140315F8140115FC14
40300A2157EA2157F153F169F151FA2ED0FDFA2ED07FFA281A281A22A3A78B93B>I<EC07F8
40491387FFF8049B512E04980010F14FC90391FFC0FFE90393FE001FF903A7F80007F8049C7
4056C7E48486E7E48486E7E49140700078248486E7E491401001F82491400A2003F82498100
4067F1780A390C9123FA24817C0AC6C6CED7F80A56C6CEDFF00A26D5C001F5EA26C6C4A5AA2
4076C6C4A5A6C6C4A5A6D141F00015E6C6C4A5AD97FC0EBFF806D6C4890C7FC90391FFC0FFE
4086DB55A6D5C010114E06D6C1380DA07F8C8FC323E7BBB3D>I<B612C015F815FF8216E090
409C77FED1FF8ED07FC15036F7E150082821780A2163FA4167FA217005E5E15014B5A1507ED
4101FF8EDFFF090B65A168093C7FC15F815C090CAFCB3A6293A79B935>I<B67E15F815FE6F
4117E8290C77FED1FF06F7EED03FC150182150082A282A35EA25E15015E1503ED0FF84B5AED
412FFE090B65A5E4BC7FC15F815E09038000FF01407811403811401816E7E8182153F826F7E
413A26F7EA26F7E1503826F7EA26F7EA2EE7F80EE3FC0A2EE1FE02B3A78B936>82
414D<EB03FF011F13F0017F13FE48B612804815C05A4848C6FCD81FF0EB1F80484813070180
4151303007F140090C9FCA212FEA67E7E7F7FEA3FF013FC381FFFC06C13FC6CEBFF806C14E0
4166C14F86C80013F7F01077FD9007F1380020713C0020013E0157FED1FF0150FA2ED07F8A2
4171503A6ED07F0124012600078EC0FE0007C141FB4EC3FC001C0EBFF80EBFC036CB6120000
4181F5C6C14F800015C6C6C13C0D907FEC7FC253E7CBB2E>I<00FEDB7FC0EC0FE0007F1AC0
41904FF151F83A26C6C1980DB01FB153F8316F36C6CF07F00923803F1F8A26C6C187EDB07E1
42015FE8316E06C6C60DB0FC0140183177E6C6C60DB1F801403177F6C6C6F5C1907DB3F0013
42180171F6C6C60037E150F18C0017E030F5C137F4B151F18E06D03075C14804B153F028115
422F0011F030391C7FCA2DAC1F05DD90FC3913801F87EA25D14E3010703005B02E715FC5DA2
4230103EE7CF802F7157D5DD901FFED3FF0A292C8FCA26D705AA24B3A7FB94E>87
424D<D83FE015FF6D4A5A001F15036C6C5D6C6C4A5A160F6C6C5D6C6C4A5A6C153F6E5C6D6C
425495A6D6C49C7FC011F5B02F05B6D6C485A0107130702FC5B6D6C485A0101131FD900FF5B
426EDBFC06EB45A806E90C8FC5D140F6E5A6E5A4A7E4A7E4A7EA24A7F91387FBFC0153F4A6C
4277E49486C7E4A6C7E130349486C7E49486C7E8249487E49486D7E8349486D7E49C7121F48
42882496E7E48486E7E1207496E7E48486E7E001F6F13805B4848ED7FC0007FEE3FE0484816
429F0343A7FB937>I<EB1FF0EBFFFC000313FF000F14804814C09038E01FE09038000FF000
4301C13070018EB03F81210C7FCEC01FCA7143FEB0FFF90B5FC1203120F381FFE01EA3FE0EA
4317F80130012FEA414037E387F800FEBE03F6CB5FC7E6C13F96C13E1D801FEC7FC1E287DA6
43228>97 D<12FEB3A4EB01FCEB0FFF013F13C090B57EB67E9038F03FF8EBC007496C7EEB00
43301486D7EA2157FA3ED3F80AAED7F00A35D5D14016C5CEB80039038C00FF89038F03FF090
434B55A485C6D5BD91FFEC7FC380007F8213D7ABB2B>I<EB03FE90381FFFC0017F13E090B5
43512F84814FC3803FC033907F8007CD80FE01338484813081500485AA248C8FCA3127E12FE
436A9127FA36C7EA26D1302001F14066C6C131E6C6C137E9038FC03FE6CB5FCC614FC6D13F0
437011F13C0903807FC001F287DA625>I<ED3F80B3A4EB0FE0EB3FFC90B5FC4814BF4814FF
4383807FE07380FF801381FE00049137F003F143F5B127F90C7FCA312FEAA127FA36C7E157F
4396C7E6D13FF380FF0033807FE076CB512BF6C143F6C13FEEB7FF8D90FE0C7FC213D7DBB2B
440>I<EB07F8EB1FFE90387FFF8048B512C04814E03907FC0FF0390FF003F8EBE001391FC0
44100FC49137C003F147E90C7123E5A127E151F12FEB7FCA500FCC8FCA27EA2127EA2127F7E
4427F6C7E6D13026C6C130E6C6C133E3903FE01FE6CB5FC6C14FC6D13F0011F13C0903803FE
4430020287EA625>I<14FF010313C0130F5B5BEB7F819038FE004049130012015BA21203AD
444B512FCA5D803F8C7FCB3AE1A3D7FBC19>I<903907E001F890383FFC1F90397FFEFFFC48
445B6FC5A9039F81FF8003907F00FE048486C7EEBC003A248486C7EA76C6C485AA2EBE0076C
4466C485A6C6C485A48B5FC5D4849C7FCEB3FFC381F07E090C9FCA37F7F6CB512C015F815FE
4476CECFF8016C04815E05A3A3F80007FF048C7120F007EEC03F8481401A46C1403007E15F0
448D87F80130F6C6CEB1FE03A1FFC01FFC06CB612806C1500000114FC6C6C13F0010790C7FC
44926387EA52A>I<12FEB3A4EB01FC90380FFF804913C0017F13E090B512F039FFF81FF8EB
450E007EBC003018013FC14011300A35AB3A71E3C7ABB2B>I<12FFA81200AC127FB3B30839
4517BB814>I<EB0FF0A890C7FCACEB07F0B3B3AA38400FE0EA601F38FC7FC0B5FC14806C13
45200EA1FFEEA03F8144A85B816>I<12FEB3B3B3A6073C7ABB14>108
453D<D901FCEB03F83BFE0FFF801FFF496D481380017F6DB512C090B500F114E03CFFF81FFB
454F03FF0D9E007EBC00F903AC003FF80070180020013F86E140301005BA3485CB3A735267A
455A542>I<EB01FC39FE0FFF804913C0017F13E090B512F039FFF81FF8EBE007EBC0030180
45613FC14011300A35AB3A71E267AA52B>I<EB03FE90380FFF80013F13E090B512F8488039
45703FE03FE3907F800FF4848EB7F8049133F4848EB1FC04848EB0FE0A290C712074815F0A2
458007E140300FE15F8A9007FEC07F0A36C6CEB0FE0A26C6CEB1FC06D133F6C6CEB7F806C6C
459EBFF003903FE03FE6CB55A6C5C6D5B011F13C0D903FEC7FC25287EA62A>I<EB01FC38FE
4600FFF013F13C090B57EB67E9038F03FF8EBC00F90388003FC1300486D7E14008181A21680
461153FA9ED7F00A35D5D14016C495AEB80076D485A9038F03FF090B55A485C6D5BD91FFEC7
462FCEB07F890C9FCAF21367AA52B>I<903907F03F80EB3FFCEBFFFE48EBFFBF4814FF3807
463FE07380FF80148487E5B4848137F5B007F143F90C7FCA312FEA97E7EA27F123F6D137F6C
4647E15FF380FF8013807FE0790B6FC6C143FC613FEEB7FF8EB1FE090C7FCAF21367DA52B>
465I<14F0EAFC07130F133F137F13FF00FD130013FCEAFFF05B5BA25B90C7FCA35AB3A41426
4667AA51C>I<EB7FE03801FFFC0007EBFF804814C05A383FC03F90380007801401007E90C7
467FCA4127FA26C7E13F0EBFF806C13F06C13FC6C7F6C7FC61480131F010013C0143FEC0FE0
468A21407A3124012600078EB0FC000FE131F39FFC07F8090B5FC6C1400001F5B000313F838
469007FC01B287EA620>I<EA01FCAAB6FCA5D801FCC7FCB3A76D138014013900FF07C014FF
470A26D1300EB3FFCEB1FE01A307FAE1E>I<00FEEB01FCB3AA1403A214076C131F387F807F
47190B5FC6C13F914F1000F13C1D803FCC7FC1E267AA42B>I<00FED901FEEB01FC007F17F8
47202031403A2018013DF003FEE07F01407ED9F80D81FC016E0020F140F158FD80FE002C013
473C0030F131F141FED07E0D807F01680021E143F143E0003DA03F0130013F8023C5C000101
4747C147EED01F813FC027814FE0000D9F8005BA24A13FC017C5D167D137E5C013EEC3DF001
4753F143F5C011F5D161F36257FA439>119 D<D87F80EB0FE0003FEC1FC06C6C133F6DEB7F
476806C6C1400000714FE6C6C485A3801FC0301FE5B6C6C485A6D485A90383F9FC0EB1FDF6D
477B45A92C7FC6D5A6D5A1301A2497E1307497EECDF8090381F9FC090383F0FE0496C7EEBFE
4780301FC7F00016D7E48486C7E4848137F120F49EB3F804848EB1FC0484814E0007FEC0FF0
47948C7EA07F8252580A426>I<B4EC0FE06CEC1FC0A26C7EED3F807F001FEC7F00A26C7E15
480FE7F00075C1401EA03F85DEBFC0312015D3800FE075D137E140F017F5B133FA290381F9F
48180A292C7FC130FA2EB079E14DEA2EB03FCA26D5AA35C13035CA213075C130FA2495A1220
482D8383FC8FCEA3FFEA25B5BEA0FE023367FA426>I E
483%EndDVIPSBitmapFont
484%DVIPSBitmapFont: Fh ecrm0800 8 29
485/Fh 29 122 df<14FF010713E090381F80F090383E003849137C4913FC485A1203491378
486153092C7FCA7157CB612FCA23803E000157CB3A5486C13FE3A7FFF0FFFE0A2232F7FAE27
487>28 D<123C127E12FFA7127EA9123CAA1218A41200A7123C127E12FFA4127E123C082F7A
488AE14>33 D<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A5A12
4896009157AAD14>39 D<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E
4905A5A5A126009157A8714>44 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419A2EC30FCA2EC70
491FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2011FB57EA29038
492180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0D80FF0EC3FE0D8
493FFFC0103B5FCA2302F7EAE35>65 D<B512F0A23803FC006C5AB3B3A3487EB512F0A2142D
4947EAC19>73 D<90383F80303901FFF0703807C07C390F000EF0001E130748130348130114
49500127000F01470A315307EA26C1400127E127FEA3FE013FE381FFFE06C13FC6C13FF0001
4961480D8003F13E013039038003FF0EC07F81401140015FC157C12C0153CA37EA215787E6C
49714706C14F06CEB01E039F78003C039E3F00F0038E07FFE38C00FF01E2F7CAD27>83
498D<13FF000713C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07FF137F3801
499FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007FEBEF8C391F
50083C7FC390FFF03F83901FC01E01F207D9E23>97 D<EA07C012FFA2120F1207AC14FE9038
501C7FF809038CF03E09038DC01F09038F8007C49137E49133E497F1680A2150F16C0A9ED1F
50280A216005D6D133E6D5B01B05B9038BC01F090380E07E0390607FF80260001FCC7FC222F
5037EAD27>I<EB1FE0EB7FFC3801F01E3803E0073907C01F80EA0F80EA1F005A003EEB0F00
504007E90C7FCA2127C12FCA9127EA215C07E6C130101801380380FC0033907E007003801F0
5053E38007FF8EB1FC01A207E9E1F>I<15F8141FA214011400ACEB0FE0EB7FF83801F81E38
50603E0073807C003380F8001EA1F00481300123E127EA25AA9127C127EA2003E13017EEB80
50703000F13073903E00EFC3A01F03CFFC038007FF090391FC0F800222F7EAD27>I<EB1F80
508EBFFF03803E0783807C03E380F801E381F001FEC0F80123E007E130715C0127C12FCA3B6
509FCA200FCC8FCA5127EA2003E14C0123F6C1301390F80038001C013003803E00F3801F03C
51038007FF8EB1FC01A207E9E1F>I<013F13F89038FFC3FE3903E1FF1E3807807C000F140C
511391F003E00A2003E7FA76C133EA26C6C5A00071378380FE1F0380CFFC0D81C3FC7FC90C8
512FCA3121E121F380FFFF814FF6C14C04814F0391E0007F848130048147C12F848143CA46C
513147C007C14F86CEB01F06CEB03E03907E01F803901FFFE0038003FF01F2D7E9D23>103
514D<EA07C012FFA2120F1207AC14FE9038C3FF809038C703E09038DE01F013F8496C7EA25B
515A25BB2486C487E3AFFFE1FFFC0A2222E7EAD27>I<EA0780EA0FC0EA1FE0A4EA0FC0EA07
51680C7FCA8EA07C012FFA2120F1207B3A5EA0FE0EAFFFCA20E2E7EAD14>I<130FEB1F80EB
5173FC0A4EB1F80EB0F0090C7FCA8EB07C013FFA2130F1307B3AD1230127838FC0F80A21400
518485AEA783EEA3FF8EA07E0123C83AD16>I<EA07C012FFA2120F1207ADEC1FFEA2EC0FF0
519EC07C05D020EC7FC5C5C5C5CEBC3C013C7EBCFE0EBDFF013F9EBF0F8497EEBC07E143E80
520816E7E14076E7E816E7E486C487E3AFFFE07FF80A2212E7EAD25>I<EA07C012FFA2120F
5211207B3B3A3EA0FE0EAFFFEA20F2E7EAD14>I<2607C07FEB07F03BFFC3FFC03FFC903AC7
52283F0783F3C0FCE01F8E01F803B07DC00F9C00F01F8D9FF8013C04990387F000749137EA2
52349137CB2486C01FEEB0FE03CFFFE0FFFE0FFFEA2371E7E9D3C>I<3807C0FE39FFC3FF80
5249038C703E0390FDE01F0EA07F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D
52527>I<EB1FE0EB7FF83801F03E3803C00F3907800780390F0003C04814E0003EEB01F0A2
52648EB00F8A300FC14FCA9007C14F8A26CEB01F0A26CEB03E0A2390F8007C03907C00F8039
52701F03E0038007FF8EB1FE01E207E9E23>I<90380FE01890387FF8383801F81C3903E00E
528783807C007390F8003F8001F1301EA3F00A2007E1300A212FE5AA8127EA36C13017EEB80
52903380FC0073803E00E3801F03C38007FF0EB1FC090C7FCA94A7E91381FFFC0A2222B7E9D
53025>113 D<380781F038FF87FCEB9E7EEA0F98EA07B813B0EBF03CEBE000A35BB1487EB5
531FCA2171E7E9D1B>I<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7E
532B41300EA7FF06CB4FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA2
5337EA26C133CA26C137838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A31201
5341203A21207121FB512F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F
53580152A7FA81B>I<D807C013F800FF131FA2000F130100071300B21401A314033803E007
536EC0EFC3A01F81CFFC038007FF890391FE0F800221F7E9D27>I<3AFFFC01FFC0A23A0FE0
537007E000007147C15380003143015706C6C1360A26C6C5BA390387C0180A26D48C7FCA2EB
5383F07EB1F06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5A221E7F9C25>I<3BFFFC3F
539FE07FFA23B0FE003F001F801C09038E000F00007010114E0812603E00314C0A2913807F8
540012701F006781380A29039F80E7C030000D90C3C1300A290397C181E06A2151F6D486C5A
541A2168C90391F600798A216D890390FC003F0A36D486C5AA36DC75A301E7F9C33>I<3AFF
542FC01FFC0A23A0FE0007E000007147C1538000314306D137000011460A26C6C5BA2EBFC01
543017C5BEB7E03013E90C7FCA2EB1F06A2148EEB0F8CA2EB07D8A2EB03F0A36D5AA26D5AA2
544495AA2130391C8FC1278EAFC06A25B131CEA7838EA7070EA3FE0EA0F80222B7F9C25>
545121 D E
546%EndDVIPSBitmapFont
547%DVIPSBitmapFont: Fi ecrm0600 6 5
548/Fi 5 54 df<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>49
549D<EA01FC3807FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2147C1278003013
550FCC7FC14F8A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C00CEA0380380600
551185A5A383FFFF85AB512F0A216217CA01E>I<13FF000313C0380F03E0381C00F014F800
5523E13FC147CA2001E13FC120CC712F8A2EB01F0EB03E0EB0FC03801FF00A2380003E0EB00
553F01478147C143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFF
554C00001130018227DA01E>I<14E01301A213031307A2130D131D13391331136113E113C1
555EA01811203EA07011206120C121C12181230127012E0B6FCA2380001E0A6EB03F0EB3FFF
556A218227DA11E>I<00101330381E01F0381FFFE014C01480EBFE00EA1BF00018C7FCA513
557FE381BFF80381F03C0381C01E0381800F014F8C71278A2147CA21230127812F8A2147848
55813F8006013F0387001E01238381E07803807FF00EA01F816227CA01E>I
559E
560%EndDVIPSBitmapFont
561%DVIPSBitmapFont: Fj ectt0900 9 26
562/Fj 26 122 df<007FB51280B612C0A36C14801A057A9227>45 D<121EEA7F80A2EAFFC0
563A4EA7F80A2EA1E000A0A728927>I<1538157CA215FC15F8140115F0140315E0140715C0
564A2140F1580141F15005C143E147E147C14FC5C13015C13035C13075C130F5CA2131F91C7
565FC5B133E137E137C13FC5B12015B12035B12075B120F5BA2121F90C8FC5A123E127E127C
56612FC5AA212701E3A7CB327>I<EB3FE03801FFF84813FE000FEBFF804814C0393FE07FE0
567EB800F397F0007F0007EEB03F800FE13015A6C14FC1400A3127CC8FCA2140115F8A21403
56815F01407EC0FE0EC1FC0143FEC7F80ECFF00495A495A495A495A495A495A495A01FEC7FC
569485AD807F81378484813FC485A485A48B5FCB6FCA36C14F81E2F7CAE27>50
570D<EB1FF8EBFFFE0003EBFF80000F14C015E0391FF01FF0393FC007F8EB800115FC1400A2
5716CC7FC1204C8FC140115F81403EC07F0140FEC3FE090381FFFC0491380A215E06D13F090
57238001FF8EC03FC1401EC00FE157E157F153FA21238127C12FEA2157F48147E6C14FE007F
573EB01FCEB8003393FF01FF86CB512F06C14E000031480C6EBFE00EB1FF820307DAE27>I<
574007FB512E0B612F0A36C14E039001F8000B3B2007FB512E0B612F0A36C14E01C2E7BAD27
575>73 D<387FFFC080B5FC7E5CD803F0C8FCB3AAED0780ED0FC0A7007FB6FCA2B7FC7E1680
576222E7FAD27>76 D<127012F8A27E127C127E123E123F7E7F120FA27F12077F12037F1201
5777F12007F137C137E133E133F7F80130FA280130780130380130180130080147C147E143E
578143F801580140F15C01407A215E0140315F0140115F8140015FC157CA215381E3A7CB327
579>92 D<007FB512F8B612FCA46C14F81E067C7E27>95 D<3801FFE0000713F84813FE486D
5807E81EBC07FEC0FE0380F8007D802007FC71203A2EB07FF137F0003B5FC120F5A383FFC03
581EA7FE0130012FE5AA46C1307007F130FEBC07F6CB612C06C15E07E000313F83A007FC03F
582C023207D9F27>97 D<EA7FE0487EA3127F1203A9EC7F809038F1FFE001F713F890B57E81
583ECC0FF9138007F8001FCEB1FC049130F16E0491307A216F01503A615076D14E0A2150F6D
584EB1FC06D133F6DEB7F809138C1FF00ECFFFE5D01F75B01F313E02601E07FC7FC242E80AD
58527>I<EB0FFF017F13C048B512E04814F05A380FF807EA1FE0393FC003E0903880008048
586C8FC127EA212FE5AA67E127EA2007F14F0393F8001F813C0381FE003390FF80FF06CB5FC
5876C14E06C14C06C6C1300EB0FF81D207B9F27>I<EC1FF84A7EA3141F1400A9EB0FF0EB7F
588FC48B5FC5A5A380FF81F381FE007383FC003EB8001EA7F00007E1300A212FE5AA67E007E
5891301A2007F13037EEB8007381FE00F380FF03F6CB612E06C15F06C5B38007FF890391FE0
5907FE0242E7EAD27>I<EB0FF8EB3FFE90B51280000314C04814E0390FFC0FF0391FE003F8
591EBC001D83F8013FC48C7FC127E157E12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D
592137E6C7E01F013FE390FFC07FC6CB5FC000114F86C14F0013F13C0903807FE001F207D9F
59327>I<EA7FE0487EA3127F1203A9EC3FC09038F1FFF001F77F90B57E8114E0EC007F497F
5945B5BA25BB03A7FFF83FFF8B500C713FCA36C018313F8262E80AD27>104
595D<130F497E497EA46D5A6DC7FC90C8FCA7383FFF80487FA37EEA000FB3A4007FB512F0B6
596FC15F815F07E1D2F7BAE27>I<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA36C
59714F81E2E7CAD27>108 D<397FE03FC039FFF1FFF001F77F90B57E6C80000313E0EC007F
598497F5B5BA25BB03A7FFF83FFF8B500C713FCA36C018313F82620809F27>110
599D<EB1FE0EB7FF83801FFFE487F481480390FF03FC0391FC00FE0393F8007F0EB00034814
600F8007E1301A248EB00FCA76C1301007E14F8A2007F1303393F8007F0A2391FE01FE0390F
601F03FC06CB512806C14006C5B38007FF8EB1FE01E207C9F27>I<397FE07F8039FFF1FFE0
60201F713F890B57E6C800003EBC0FF9138007F8001FCEB1FC049130F16E0491307A216F015
60303A615076D14E0A2150F6DEB1FC06D133F6DEB7F809138C1FF00ECFFFE5D01F75B01F313
604E0D9F07FC7FC91C8FCAC387FFF80B57EA36C5B2431809F27>I<397FFC03FC39FFFE0FFF
605023F13804A13C0007F90B5FC39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8
606FCA2137EAD007FB57EB67EA36C5C22207E9F27>114 D<9038FFF3800007EBFFC0121F5A
6075AEB803F38FC000F5AA2EC07806C90C7FCEA7F8013FC383FFFF06C13FC000713FF000114
60880D8000F13C09038003FE014070078EB03F000FC1301A27E14036CEB07E0EBE01F90B512
609C01580150000FB13FC38707FF01C207B9F27>I<133C137EA8007FB512F0B612F8A36C14
610F0D8007EC7FCAE1518157EA415FE6D13FC1483ECFFF86D13F06D13E0010313C001001300
6111F297EA827>I<397FE007FE486C487EA3007F7F0003EB003FB25DA24A5AEBFC076CB612
612F86C15FCA2013F13BF90390FFC1FF82620809F27>I<393FFC1FFF486C5A168016006C48
6137E3901F807E06C6C485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F49
6147E143EEB3E3FEB7E1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C0
6156C486C1380A222207E9F27>120 D<3A7FFC0FFF80486C4813C0A36C486C13803A07E000
616F800000313015D13F00001130301F85B1200A26D485A137CA290387E0F80133EA2011F90
617C7FC5CA2130F149E14BE130714FC1303A25C1301A25CA213035CA213075C1208EA3E0F00
6187F5B131FD87E7FC8FCEA7FFE6C5A5B6C5AEA07C022317E9F27>I
619E
620%EndDVIPSBitmapFont
621%DVIPSBitmapFont: Fk ecss1200 12 41
622/Fk 41 122 df<BF1280A66106809D62>22 D<027FEB3FC0903801FFC05B130FA25BEB3F
623C1EC804049C9FCA213FEA31201B1B638C03FC0A6D801FEC7FCB3B3A22A4A7EC934>28
624D<B612C0A61A067F9821>45 D<12FFA8080877871B>I<1418147814F81303130F137FB5
625FCA413F71387EA0007B3B3AD007FB61280A6214378C231>49 D<EB03FE90381FFFE0017F
62613F890B57E4814FF4815802607FC0713C0380FF000D81FC0EB3FE049EB1FF0003F140F90
627C713F8481407007EEC03FCA212FE48EC01FE127C123C123812181208C8FCA4ED03FCA3ED
62807F8A2ED0FF016E0151FED3FC01680ED7F005D4A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FE
629495A495A495A495A495A5C49C8FC137E5B485A485A485A485A485A48C9FC48B612FEA627
630437CC231>I<49B4FC010F13E0013F13F890B512FE48800007158048010113C03A1FF800
6317FE0D83FE0131F4914F048C7120F123EED07F8121C12181208C8FCA3ED0FF0A3ED1FE0A2
632ED3FC0157FEDFF8002031300EC1FFE90380FFFFC5D15E08115FC15FFD900011380913800
6337FC0ED1FE0ED0FF016F8ED07FCA2ED03FEA3ED01FFA80040EC03FE1260A200F0EC07FC7E
63400FEEC0FF8127FD83FC0EB1FF0D81FF0EB7FE0390FFE01FF6CB612806C15006C5C6C6C13
635F8011F13E0010190C7FC28457CC231>I<EDFF805C5CA2EC077FA2140FA2141E143EA214
6367E147C14FCA2EB01F8130314F01307A2EB0FE0A2EB1FC0133F1480137F14005B5B12015B
6371203485AA2485A5B121F5B123F485AA248C7FC90B712C0A6C8387F8000B12A417DC031>
638I<EDFF804A7FA34A7FA3913807F7F0A215E7020F7F15E3A291381FC3FC15C1023F7F1581
639A291387F80FF5DA24A6D7E5CA201016E7E5CA201036E7E5CA201076E7E5CA2010F6E7E5C
640011F8116035C013F8116015C017F818291B7FC90B87EA34883A201FCC8123F0003707EA2
641484882170F5B000F8317075B001F8317035B003F8317015B007F707EA290CAFC48EF7F80
642A239457DC440>65 D<B612F8EDFF8016E016F816FE8290C7003F13C003077F03007F163F
643707E160F707E1603831601A516035F16075F160F4C5AEE7FE04C5A03075B033F90C7FC90
644B612FC16F016C08216FC16FF90C7003F13C003037F9238007FF0EE1FF8707E707E707E82
645701380177F18C0A2173FA4177FA2188017FF5E4C13004C5A160FEE3FFCEEFFF8030F5B90
646B75A178094C7FC16FC16E04BC8FC324577C441>I<ED3FFE0203B512F0020F14FE023FEC
647FF8091B7FC5B49D9E0071300010F90C7FCD91FFC141F49481407D97FE0804A91C7FC495A
6484890CAFC5A5B485AA2485AA2485AA2485AA3485AA5485AAD6C7EA56C7EA36C7EA26C7EA2
6496C7EA26C7E7F7E6C6D15806D6C14016E1403D93FF8140F6D6CEC1FC06DB4147F01039038
650E003FF6D90B612806DEDFE00023F5C020F14F0020314C09126003FFCC7FC32497AC63E>
651I<B812E0A690CAFCB3A690B7FCA690CAFCB3A890B712F0A72C4577C43A>69
652D<ED3FFC4AB512E0020F14F8023F14FF91B712C04916E049EBE0074990C7127FD91FFCEC
6531FC0494814074A1403D97FC01401494814004817004890CAFC5B485AA2485AA2485AA248
6545AA3485AA5485AAA4BB512F0A36C7EA392C7120FA26C7EA36C7EA26C7EA26C7EA26C7E7F
6556C7F7E6D7EEB3FF0806D7ED907FF143F6D9038E007FF6D90B6FC6D16E0023F1500020F14
656FC020114E09126003FFCC7FC34497AC641>71 D<B4FCB3B3B3A990B612FEA6274577C435
657>76 D<D8FFE0933803FFC06D5EA36D5EA3017CEE1FBFA2017E163FA2013E173F013F167F
658A26D167E6E15FEA26E1401010F16FCA26E1403010716F8A26E1407010316F0A26E140F01
6590116E06E141FA2010016C06E143FA2027E1580027F147FA26E15006F5B021F5CEDC001A2
660020F5CEDE003A202075CEDF007A202035CEDF80F02015CA2EDFC1F02005CA2EDFE3F037E
6615BA2ED7F7F033F90C7FCA2ED1FFEA36F5AA36F5A92C9FCA2424577C455>I<ED3FE09138
66203FFFE021FEBFFC04A8091B612F8010315FE499038C01FFF49D900077FD91FFC01017FD9
6633FF06D6C7E49486E7E49486E7E4A140F4890C86C7E48486F7E49150100078348486F1380
664A249167F001F18C049163F003F18E0A249161F007F18F0A449160F00FF18F8AC6D161F00
6657F18F0A46D163F003F18E0A36C6CEE7FC0A26D16FF000F18806D5D000718006D5D6C6C4B
6665A6C5F6E140F6C6D4A5A6D6C4A5AD93FF8ECFFE06D6C495B6DB401075B6DD9E03F90C7FC
6676D90B55A010015F86E5C021F14C0020349C8FC9138007FF03D497BC648>79
668D<EC3FF80103B57E010F14E0013F14F84914FE90B7FC48EBC00F3903FE0001D807F8EB00
6697E4848143E49141E48481406123F4991C7FCA248CAFCA67FA27F123F7F7FEA1FFC6CB4FC
67014E06C13FC6CEBFFC06C14FC6C14FF6D14C06D80010F14F8010380D9003F7F1403913800
6717FFF03071380030113C081167FEE3FE0161FA2EE0FF0A21607A7EE0FE0126012700078ED
6721FC0007C153F007E1680B46CECFF0001E05B01FCEB07FE3A7FFF801FFC001F90B55A0007
6735D000115C06C6C5C010F01FCC7FC010013E02C497CC636>83 D<B4ED01FEB3B3AF6C6CEC
67403FCA46C6CEC07F8A26C6CEC0FF0A26C6CEC1FE06D143F6C6CEC7FC06C6CECFF802701FF
675800313006C9038F01FFE6DB55A6D5C010F14E06D5C010191C7FC9038001FF02F4777C442
676>85 D<B46C912601FFC0ED7F80007FF3FF00A25E6C6C705D1B01A2EE07F76C6C705D05E7
6771503160F6DEDE3F8000F505AA2EE1FC36C6C705D05C1150FA2EE3F816C6C705D0580151F
678A2EE7F006C6C704A5A845E6C6C4A6E5C1B7F183F1501D97F80496E91C7FC061F5CA24B5A
679D93FC0705B060F1301A2011F49485E02E016F006071303A2010F49485E02F016F8060313
68007A2010749485E02F8ED01FC1A0F01034A5E153FF000FE02FC171F010191C85CA24B157E
68102FE167F0100017E4C5A193FA2DA7E7C94C8FC03FC16BF191F027F17FF6E485EA2190FA2
6826E485E190759457FC45C>87 D<EB07FE90387FFFC00003B57E000F14F84880819038F803
683FFEB8001001EC713800018147F0010EC3FC0C8FC16E0151FA8EC7FFF010FB5FC133F48B6
684FC5A000FEBE01F381FFE00EA3FF0EA7FC05B48C7FC5AA4153F7E6C6C137F9038C001FFEB
685F00F6CB6FC7E15DF6C141F000313F8C60180C7FC232F7CAD2F>97
686D<B4FCB3AAEC3FC0903803FFF0010F7F013F13FE497F90B6FCD9FE071380D9F00013C049
687137F49EB1FE04914F090C7120F150716F81503A316FC1501AAED03F8A3150716F0150FA2
6886DEB1FE06D133F6DEB7FC09039F001FF80EBFC0790B612006D5B6D5B6D13F0010713C0C7
68990C7FC264A79C832>I<ECFFC0010713FC011F13FF4914C090B612E05A48EB003F01FCEB
69007C04848130148481300484814005B123F5BA248C9FCA412FEAA127FA37F123FA26C6C14
691206D14606C6CEB01E06D13036C6C130F6CB4137F6C90B5FC6C15C06D1400011F5B010713
692F001001380232F7CAD2B>I<ED03FCB3AAEB07F890381FFF83017F13E390B512F34814FF
6935A481380390FFE003F01F8130F484813075B48481303A2485AA290C7FCA25A5AAA7E7EA3
6947F123F6D13076C7E150FD80FF8131F6D137F3907FF81FF6C90B5FC6C14FB6C14E36D13C3
695011F1303D907F8C7FC264A7CC832>I<EB01FE903807FFC0011F13F0017F7F90B57E4880
69648EB03FF3907FC007F4848EB3F8049131F4848EB0FC05B4848EB07E0A248C71203A2127E
697ED01F0B7FCA600FCC9FCA27EA3127EA2127F7E7FA26C7E6D14106C6C14706C6CEB01F0D8
69803FE13079038FF803F6C90B5FC6C15E0013F14806DEBFE00010713F8010013C0242F7DAD
6992B>I<EC1FF0EC7FFEEB01FF5B5B5B90381FF01E90383FC002EC800049C7FCA213FEA312
70001B0B61280A6D801FEC7FCB3B3A21F4A7EC91E>I<D903FCEB0FE0D90FFF13FF013F13C7
7014990B512F090B7FC5A2603FE07EB80002707F801FEC7FCEBF0004848137F497FA248486D
7027EA86C6C49C7FCA26D5B6C6C13FEEBF8013903FE07FC48B55A5D485C01BF5BD81F8F90C8
703FCEB83FC90CAFC7FA37F7F90B512F86CECFF8016E06C15F86C814881001F81A2273FC000
7040F13804848130090C8127F48ED3FC048151FA5007FED3F806D147F6C6CECFF0001F81307
7056CB4EB3FFE6C90B55A6C5D000115E06C6C1480011F49C7FC010113E02C427DAC31>I<B4
706FCB3AAEC7FC0903801FFF801077F011F7F497F491480EBFE03D9F80013C049137F49133F
7074914E0151F5BA390C7FCB3AC234979C832>I<EAFF80A9C7FCB0EA7F80B3B3A809457AC4
70817>I<B4FCB3ABED7FE0EDFFC04A13804A13004A5A4A5A4A5A5D4A5A4A5A4A5A4990C7FC
709495A1307495A495A495A137F13FF8080A2EBFDFEEBF9FF13F0496C7E01C07F143F01807F
710496C7E140F8114076E7E8114016E7E1680157FED3FC016E0151FED0FF016F8254979C82F
711>107 D<12FFB3B3B3B3084979C817>I<DA7FC0EB0FF827FF01FFF8EB3FFF01076D90B512
71280011FD9FE0314C0496D4814E049028F14F0D9FE0390389FC07FD9F8009039FF001FF849
7136D48130F496D481307494A14FC031F1403495CA390C75BB3AC3E2D79AC4D>I<EC7FC039
714FF01FFF801077F011F7F497F491480EBFE03D9F80013C049137F49133F4914E0151F5BA3
71590C7FCB3AC232D79AC32>I<EC7F80903803FFF0010F13FC013F13FF498090B67E489038
716807FE03A03FE001FF0D807F8EB07F848486D7E49130148486D7EA24848147FA248C8EA3F
71780A3007E151F00FE16C0A96C153F6C1680A36D147F003F16006D5C001F5D6D13016C6C49
7185A6C6C495A01FE131F3A03FF807FF06C90B55A6C5D013F91C7FC6D5B010313F09038007F
719802A2F7DAD31>I<EC3FC039FF03FFF0010F7F013F13FE497F90B6FCD9FE071380D9F000
72013C049137F49EB3FE049EB1FF090C7120FA2ED07F8A21503A216FC1501AAED03F8A31507
72116F0150F151F6D14E06D133F6DEBFFC06D481380EBFC0F90B612006D5B6D5B6D13F00107
72213C0010090C7FC91C8FCB2264079AC32>I<141F00FE13FF13035B131F5B5BEBFFF01480
72338FFFE005B5B5B5B5BA25BA390C7FCB3A8182D79AC21>114 D<EB3FF848B5FC4814C000
7240F14F04814F85AEBE00F397F8001F090C7127000FE14301500A57E7FEA7FE013FC383FFF
725E06C13FC14FF000714806C14E06C14F06C7E010713F89038003FFC14071403EC01FEA214
72600A412400070EB01FC1278007E130339FFE01FF890B512F0A26C14E0001F14800003EBFE
7270038003FF01F2F7DAD25>I<EA01FEADB612F0A6D801FEC7FCB3AB7F150815386CEB81F8
728ECFFFC7FA26D13F06D138090380FF8001E3A7EB823>I<B4EC1FE0B3AE153FA2157FA26D
72913FF1403387FE00F90B6FC6C14DF151F6C13FC000713F0000190C8FC232D79AB32>I<B4
7306CD91FE0EB01FE007F6FEB03FCA2153F6C6C6EEB07F8153D157D6C6C17F0DB7CFC130FA2
73115FC6C6C6EEB1FE015F81401D807F8027E14C0047F133F15F01403D803FC6E1480EF807F
73215E000010107160001FE141F715A15C00000010F5D01FF140F17E1017F01805CA2021F13
73307D93F9FECF3F815001603A2D91F9E5D14BE1601010F5E02FC14FF82A26D485DA23F2C7F
734AB42>119 D<D87FC0EC7FC06C6CECFF80001F16006D5B6C6C495A6C6C495A6C6C5C0001
7354A5A6C6C131F6E485AD97FC05B6D6C485A011F49C7FCEB0FF1903807FBFEECFFFC6D5B6D
7365B7F6E5A5D6E5A4A7E4A7E81497F903803FBFCEB07F990380FF0FE4A7E011F6D7E49486C
7377E49486C7EEBFF006F7E48486D7E48488000076E7E48481301496D7E48481580003FED7F
738C04848EC3FE04848EC1FF02C2C80AB2D>I<B415FFA27F007FEC01FE7F123FED03FC7F00
7391FEC07F87F120FED0FF07F12076DEB1FE0120316C06C6C133FA216806C6C137FA26D1400
7406E5A5D133F14C1011F5BA2ECE1F8EB0FE3A201075B14F3A2903803F7E0A201015BA2EB00
741FF5DA2147F92C7FCA2147E14FEA25C1301A25C13035C13075CEA400F38781FC0EA7FFF5C
74291C8FC5B5BEA0FF028407EAB2D>I E
743%EndDVIPSBitmapFont
744%DVIPSBitmapFont: Fl ecrm0700 7 5
745/Fl 5 54 df<13381378EA01F8121F12FE12E01200B3AB487EB512F8A215267BA521>49
746D<13FF000313E0380E03F0381800F848137C48137E00787F12FC6CEB1F80A4127CC7FC15
747005C143E147E147C5C495A495A5C495A010EC7FC5B5B903870018013E0EA018039030003
7480012065A001FB5FC5A485BB5FCA219267DA521>I<13FF000313E0380F01F8381C007C00
74930137E003C133E007E133FA4123CC7123E147E147C5C495AEB07E03801FF8091C7FC3800
75001E06D7E147C80143F801580A21238127C12FEA21500485B0078133E00705B6C5B381F01
751F03807FFC0C690C7FC19277DA521>I<1438A2147814F81301A2130313071306130C131C
752131813301370136013C012011380EA03005A120E120C121C5A12305A12E0B612E0A2C7EA
753F800A7497E90383FFFE0A21B277EA621>I<0018130C001F137CEBFFF85C5C1480D819FC
754C7FC0018C8FCA7137F3819FFE0381F81F0381E0078001C7F0018133EC7FC80A21580A212
75530127C12FCA3150012F00060133E127000305B001C5B380F03E03803FFC0C648C7FC1927
7567DA521>I E
757%EndDVIPSBitmapFont
758%DVIPSBitmapFont: Fm ectt1000 10 68
759/Fm 68 123 df<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB7F0013FE485A485A
7605B12075B120F5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3127F7EA27F121FA2
7616C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB03FC130113001438
762164272B92C>40 D<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E137F7F1480131F
76314C0130FEB07E0A214F01303A214F81301A314FC1300AC130114F8A3130314F0A2130714
764E0A2EB0FC0131F1480133F14005B13FE485A485A485A485AEA3FC0485A48C7FC5A5A1270
765164279B92C>I<EB0380497EA60020140800F8143E00FE14FE00FF13C1EBC7C7EBE7CF00
7663FB512F8000F14E0000314806C140038007FFCA248B5FC481480000F14E0003F14F839FF
767E7CFFEEBC7C7EB07C100FE13C000F8143E0020140800001400A66D5A1F247AAA2C>I<EA
7680F80EA1FE0EA3FF0EA7FF8A213FCA3123F121F120F120013F8A21201EA03F01207EA1FE0
769EA7FC0EAFF80130012FC12700E17718A2C>44 D<007FB512F0B612F8A36C14F01D057994
7702C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED0F80A2
771151F16005D153E157E157CA215FC5D14015D14035D14075D140F5D141F92C7FC5C143EA2
772147E147C14FC5C13015C13035C13075C130F5C131F91C8FC5B133EA2137E137C13FC5B12
773015B12035B12075B120F5B121F90C9FCA25A123E127E127C12FC5AA2127021417BB92C>
774I<EB03F8EB0FFE90383FFF80497F90B57E3901FE0FF03903F803F848486C7EEBE0004848
775137EA248487FA248C7EA1F80A2003E140F007E15C0A3007C140700FC15E0AC6C140F007E
77615C0A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE00075CEBF0016C6C485A3901FE0FF0
7776CB55A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<1307497EA2131FA2133F137F13FF
7785A1207127FB5FC13DF139FEA7C1F1200B3AE007FB512E0B612F0A36C14E01C3477B32C>
779I<EB0FF890387FFF8048B512E00007804814FC391FF80FFE393FE001FF903880007F48C7
780EA3F80007E141F00FE15C0150F6C15E01507A3127E123CC8FCA2150F16C0151F1680153F
78116005D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7FC495A495A495AEB3FE0EB7F80
78249C8FC485A4848EB03C04848EB07E0EA1FE0485A48B6FCB7FCA36C15C023347CB32C>I<
783EB0FFC90387FFF8048B512E0000714F84880391FF807FEEBC0004848137F6D7F1680151F
784A26C5A6CC7FCC8FC153F16005D15FE14014A5AEC1FF890381FFFF0495BA215F86D7F9038
7850007FEEC00FF81ED3F80ED1FC0150FA216E01507A2123C127EB4FC150F16C0A248141F00
7867FEC3F806DEB7F006C6C5B391FF807FE6CB55A6C5C6C14E0C66C1380D90FFCC7FC23357C
787B32C>I<EC07F04A7E141F143FA2147EA214FCEB01F8A2EB03F0EB07E0A2EB0FC0EB1F80
788A2EB3F00137EA25B485AA2485A5B1207485AA2485A48C7FCA2127E5AB712FC16FEA36C15
789FCC8EAF800AA91387FFFF091B512F8A36E13F027347EB32C>I<000FB512FE4880A35D01
79080C8FCADEB83FE90389FFF8090B512E015F8819038FE03FE9038F000FF01C07F49EB3F80
79190C7121F6C15C0C8120FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC3F80007F
792EC7F006C6C5B6D485A391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF823347CB22C
793>I<EC3FC0903801FFF801077F011F7F497F90387FE07F9039FF003F804848137FEA03F8
794485A5B000FEC3F004848131E4990C7FC123F90C9FCA25A127EEB03FE90381FFF80D8FC7F
79513E000FDB57EB67E9038FE07FC9038F001FE9038C0007F49EB3F8090C7121F16C048140F
79616E01507A3127EA47E150F6D14C0001F141F6D1480000F143F6DEB7F003907F801FE3903
797FE07FC6CB55A6C5C6D5B011F1380D907FCC7FC23357CB32C>I<1278B712C016E0A316C0
79800FCC7EA3F80ED7F0015FE00785CC712014A5A4A5A5D140F5D4A5A143F92C7FC5C147E14
799FE5C13015CA2495AA213075CA3495AA4495AA5133F91C8FCAA131E23357CB32C>I<EB07
800FCEB3FFF90B512C0488048803907FC07F8390FF001FC48486C7ED83F80137E157F48C77E
801007EEC1F8012FE5AED0FC0A416E0A37E127E007F141F7E6D133F6C6C137F390FF001FF38
80207FC0F6CB6FC6C14F76C14C7013F130FD90FF813C090C7FCA2151F1680153F1600000F5C
803486C137E486C13FE4A5A4A5A14079038801FF0391FE07FE090B55A6C91C7FC6C5B000113
804F838007FC023357CB32C>57 D<14FE497EA4497FA214EFA2130781A214C7A2010F7FA314
805C390381F83F0A590383F01F8A490387E00FCA549137E90B512FEA34880A29038F8003FA3
8064848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C>65
807D<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2ED01F8A6ED03F0
808A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED07F0ED03F81501
809ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007FB612E016C0B712806CECFE
8100015F027337FB22C>I<02FF13700107EBE0F84913F9013F13FD4913FFEBFF813901FE00
8117F4848131FD807F0130F1507485A491303485A150148C7FCA25A007EEC00F01600A212FE
8125AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C130716E0D803FC131F
8136C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F00100138025357DB32C>I<007F
814B5FCB612C015F0816C803907E003FEEC00FFED7F80153FED1FC0ED0FE0A2150716F01503
81516F81501A4ED00FCACED01F8A3150316F0A2150716E0150FED1FC0153FED7F80EDFF00EC
81603FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007FB612F0B712F8A37E3903F000
81701A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA5163C167EA8007FB6
81812FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA37ED803F0C7FCA716781600A5
81915F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26337EB22C>I<90
8203901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC01497E4848137F4848
821133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8913803FFF84A13
822FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F6C7E6C6C13FF6D
8235A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB32C>I<D87FFEEB
824FFFCB54813FEA36C486C13FCD807E0EB0FC0B190B6FCA59038E0000FB3D87FFEEBFFFCB5
8254813FEA36C486C13FC27337EB22C>I<007FB512F8B612FCA36C14F839000FC000B3B3A5
826007FB512F8B612FCA36C14F81E3379B22C>I<D87FFCEB7FF8486CEBFFFCA36C48EB7FF8
827D807C0EB1F80153FED7F00157E5D4A5A14034A5A5D4A5A4A5A143F4AC7FC147E5CEBC1F8
82813C3EBC7FCA2EBCFFEEBDFBEEBFFBF141F01FE7F496C7E13F86E7EEBF00301E07FEBC001
829816E7EA2157E153E153F811680ED0FC0A2ED07E0D87FFCEB1FFC486CEB3FFEA36C48EB1F
830FC27337EB22C>75 D<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7
831FCA36C15F025337DB22C>I<D87FE0EB0FFC486CEB1FFEA26D133F007F15FC000F15E001
832BC137BA4019E13F3A3EB9F01A2018F13E3A21483A2018713C314C7A201831383A214EFA2
83301811303A214FFEB80FEA3147C14381400ACD87FF0EB1FFC486CEB3FFEA36C48EB1FFC27
834337EB22C>I<D87FF0EB7FFC486CEBFFFEA27F007FEC7FFCD807FEEB07C013DEA213DF13
835CFA2148013C714C0A213C314E0A213C114F0A213C014F8A2147CA3143EA2141E141FA214
8360F1587A2140715C7A2140315E71401A215F71400A215FFD87FFC137F487E153FA26C48EB
8371F8027337EB22C>I<EB7FFF0003B512E0000F14F848804880EBE003EB800048C7127FA2
838007E80A300FE158048141FB3A86C143FA2007E1500A3007F5CA26C6C13FEEBF00790B5FC
8396C5C6C5C000314E0C66C90C7FC21357BB32C>I<007FB512C0B612F88115FF6C15802603
840F00013C0153FED0FE0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90
841B61280160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>I<387FFFFCB6
8427E15E015F86C803907E007FE1401EC007F6F7E151FA26F7EA64B5AA2153F4BC7FCEC01FE
843140790B55A5D15E081819038E007FCEC01FE1400157F81A8160FEE1F80A5D87FFEEB1FBF
844B5ECFF00815E6C486D5AC8EA01F029347EB22C>82 D<90381FF80790B5EA0F804814CF00
8450714FF5A381FF01F383FC003497E48C7FC007E147F00FE143F5A151FA46CEC0F00007E91
846C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EBFFC06C14F06C6C7F01077F9038007FFE
847EC07FF02001380153FED1FC0A2ED0FE0A20078140712FCA56CEC0FC0A26CEC1F806D133F
84801E0EB7F009038FE01FF90B55A5D00F914F0D8F83F13C0D8700790C7FC23357CB32C>I<
849007FB612FCB712FEA43AFC007E007EA70078153CC71400B3AF90383FFFFCA2497F6D5BA2
85027337EB22C>I<3B7FFF803FFFC0B56C4813E0A36C496C13C03B03F00001F800B3AF6D13
8510300015DA26D130700005D6D130F017F495A6D6C485AECE0FF6DB5C7FC6D5B010313F86D
8525B9038003F802B3480B22C>I<D87FFCEB7FFC486CEBFFFEA36C48EB7FFCD80FC0EB07E0
8536D130F000715C0A36D131F00031580A36D133F00011500A36D5B0000147EA4017E5BA46D
854485AA490381F83F0A4010F5B14C7A301075BA214EFA201035BA214FFA26D90C7FCA46D5A
85527347EB22C>I<D87FF0EB07FF486C491380A36C486D1300001FC8127CA46C6C5CA76C6C
856495AA4143E147FA33A03E0FF83E0A214F7A201E113C3A3000101E35BA201F113C701F313
857E7A314C1A200005DA201F713F71480A301FF13FF017F91C7FC4A7EA4013E133E29347FB2
8582C>I<3A3FFF03FFE0484913F0148714076C6D13E03A01F800FE007F0000495A13FE017E
8595BEB7F03013F5B1487011F5B14CF010F5B14FF6D5BA26D90C7FCA26D5AA26D5AA2497EA2
860497EA2497F81EB0FCF81EB1FC7EC87F0EB3F83EC03F8EB7F01017E7FEBFE00497F000114
8617E49137F000380491480151FD87FFEEBFFFC6D5AB514FE6C15FC497E27337EB22C>I<D8
8627FFCEB7FFC486CEBFFFEA36C48EB7FFCD807F0EB0FC0151F000315806D133F12016DEB7F
8630012006D137E017E13FE017F5BEB3F01EC81F8131FEC83F0EB0FC314C7903807E7E0A201
864035B14EF6DB45AA292C7FC7F5C147EB0903807FFE0497FA36D5B27337EB22C>I<003FB6
86512C04815E0A4007EC7EA1FC0ED3F80A2ED7F00157E15FE4A5A003C5CC712034A5AA24A5A
8664A5AA24A5A4AC7FCA214FE495AA2495A495AA2495A495AA2495A49C8FCA213FE485AA248
86748EB03C049EB07E01207485A5B121F485AA248C7FCB7FCA46C15C023337CB22C>I<1270
86812F8A27E127C127E123E123F7EA27F120F7F12077F12037F12017F12007F137C137E133E
869A2133F7F80130F80130780130380130180130080147C147E143EA2143F8081140F811407
87081140381140181140081157CA2157E153E153F811680150FA2ED070021417BB92C>92
871D<007FB6FCB71280A46C150021067B7D2C>95 D<3801FFF0000713FE001F6D7E15E04880
8729038C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE131F90B5FC1203120F48EB
873807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383FE01F6CB612FC6C15FE6C
87414BF0001EBFE1F3A003FF007FC27247CA32C>97 D<EA7FF0487EA3127F1201AAEC1FE0EC
875FFF801FB13FE90B6FC16809138F07FC09138801FE091380007F049EB03F85BED01FC4913
87600A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091
877B51280160001FB5B01F813F83900F03FC027337FB22C>I<903803FFE0011F13F8017F13
878FE48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A127EA25AA8127EA2127F
8796C140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C6C6C5B011F13E00103
88090C7FC21247AA32C>I<EC0FFE4A7EA380EC003FAAEB07F8EB3FFE90B512BF4814FF5A38
88107FC0F380FF00348487E497E48487F90C7FC007E80A212FE5AA87E007E5CA2007F5C6C7E
8825C6C6C5A380FF0073807FC1F6CB612FC6CECBFFE6C143FEB3FFC90390FF01FFC27337DB2
8832C>I<EB03FE90381FFFC0017F13F048B57E48803907FE03FE390FF800FFD81FE0EB3F80
8845B4848EB1FC090C7120F5A007E15E015075AB7FCA416C000FCC9FC7E127EA2127F6CEC03
885C06DEB07E06C7ED80FF0130F6C6CEB3FC001FF13FF000190B512806C1500013F13FC010F
88613F00101138023247CA32C>I<EC0FF8EC3FFE91B5FC4914805B903807FC7F14F090390F
887E03F0014C092C7FCA6007FB512FEB7FCA36C5C26000FC0C7FCB3A8003FB512F04880A36C
8885C21337DB22C>I<ED03F8903907F80FFC90391FFE3FFE017FB6FC48B7FC48ECFE7F9038
889FC0FF82607F003133E3A0FE001FC1CD9C0001300001F8049137EA66D13FE000F5CEBE001
8906C6C485A3903FC0FF048B5FC5D481480D99FFEC7FCEB87F80180C8FCA37F6C7E90B512F0
8916C14FE48ECFF804815E04815F03A3FC0001FF848C7EA03FC007E1400007C157C00FC157E
89248153EA46C157E007E15FCD87F801303D83FE0EB0FF8D81FFCEB7FF06CB612E000031580
8936C1500D8003F13F8010713C028387EA42C>I<EA7FF0487EA3127F1201AAEC1FE0EC7FFC
8949038F9FFFE01FB7F90B6FC9138F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FC
895B500F11480A36C01E0140029337FB22C>I<1307EB1FC0A2497EA36D5AA20107C7FC90C8
896FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14FC1F3479B32C>I<14
8970EEC3F80A2EC7FC0A3EC3F80A2EC0E0091C7FCA748B512804814C0A37EC7120FB3B3A214
8981F003C1480007E133FB414005CEB01FEEBFFFC6C5B5C001F5B000790C7FC1A467CB32C>
899I<EA7FE0487EA3127F1201AA91381FFFF04A13F8A36E13F0913800FE004A5A4A5A4A5A4A
9005A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FCA2EC9F80EC0FC001FE7FEBFC07496C
9017E496C7E811400157E811680151F3A7FFFC0FFFCB500E113FEA36C01C013FC27337EB22C
902>I<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C158022337BB22C>I<3A7F
90383F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07FE1FFC3E01FCEBF83F49
9046C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F13FFD8FFFE6D13F8D87F
905FC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC9038F9FFFE01FB7F6CB6FC
90600019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0
907140029247FA32C>I<EB07FCEB1FFF017F13C048B512F048803907FC07FC390FF001FE48
908486C7E0180133F003F158090C7121F007EEC0FC0A348EC07E0A76C140F007E15C0A2007F
909141F6C15806D133F6C6CEB7F006D5B6C6C485A3907FC07FC6CB55A6C5C6C6C13C0011F90
910C7FCEB07FC23247CA32C>I<397FF01FE039FFF8FFF801FB13FE90B6FC6C158000019038
911F07FC09138801FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2
912ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F8EC
9133FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I<903903FC078090391FFF0FC0017F
91413CF48B512EF4814FF3807FE07380FF00148487E49137F4848133F90C7FC48141F127E15
9150F5AA87E007E141FA26C143F7F6C6C137F6D13FF380FF0033807FC0F6CB6FC6C14EF6C6C
916138F6D130FEB07F890C7FCAD0203B5FC4A1480A36E140029367DA32C>I<D87FFEEB3FC0
917B53801FFF0020713F8021F13FC6C5B39003F7FE1ECFF019138FC00F84A13704A13005CA2
9185C5CA391C8FCAF007FB512E0B67EA36C5C26247EA32C>I<90387FF8700003B512F8120F
9195A5A387FC00F387E00034813015AA36CEB00F0007F140013F0383FFFC06C13FE6CEBFF80
920000314E0C66C13F8010113FCEB0007EC00FE0078147F00FC143F151F7EA26C143F6D133E
9216D13FE9038F007FC90B5FC15F815E000F8148039701FFC0020247AA32C>I<131E133FA9
922007FB6FCB71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC800F011FEB1FC0ECE07F6D
923B51280160001035B6D13F89038003FE0232E7EAD2C>I<3A7FF003FF80486C487FA3007F
9247F0001EB000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15807F6D13CF902603FE07
925130029247FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A03E0000F80A26D131F00
926011500A26D5B0000143EA26D137E017C137CA2017E13FC013E5BA2EB3F01011F5BA21483
927010F5BA214C701075BA214EF01035BA214FF6D90C7FCA26D5A147C27247EA32C>I<D87F
928FFEB7FFF6EB5FCB515806C16004A7ED807C0EB01F0A66C6C495AA3143E147FA2D801F049
9295AECFF87A214F7A201F113C700005D9038F9E3CFA201FB13EFA3D97BC190C7FC017F13FF
930A21480A2013F5B90381F007C29247FA32C>I<3A3FFF03FFF048018713F8A36C010313F0
9313A00FC007E005D90387E01F8013F5BEB1F83EC87E090380FCFC0903807EF80EB03FF6D90
932C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB0FC7EC83E090381F01F0013F7F
933EB7E00017C137C49137E0001803A7FFF01FFFC1483B514FE6C15FC140127247EA32C>I<
9343A7FFF01FFFCB5008113FE148314816C010113FC3A03E0000F806C7E151F6D140012005D
9356D133E137C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2EB07C1ECC3E0A2EB03E3
936ECE7C0130114F75DEB00FFA292C7FC80A2143EA2147E147CA214FC5CA2EA0C01003F5BEA
9377F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027367EA32C>I<003FB612
938E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495AC7485A4A5A4A5A4A5A4A
9395A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848EB01E04848EB03F0485A485A48
9405A485A485AB7FCA46C15E024247DA32C>I E
941%EndDVIPSBitmapFont
942%DVIPSBitmapFont: Fn ecbx1000 10 29
943/Fn 29 122 df<BE12FCA35E0380975F>22 D<141E143E14FE1307137FB5FCA3138FEA00
9440FB3B3A5007FB61280A4213679B530>49 D<EB0FFE90387FFFC048B512F0000714FC390F
945E03FFF261F800F1380263F000313C0D87F8014E0EBE00100FF6D13F07FA2ED7FF8A46C5A
9466C5A0006C7FCC8FCEDFFF0A216E05C16C04A138016004A5A4A5AEC1FF05D4A5A4AC7FC14
947FE495AD903F01378495A495A495A49C712F8017C14F05B49130148B6FC5A5A5A5A5A4815
948E0B7FCA425367BB530>I<EB03FF011F13F0017F13FC3901FC07FF2603F003138048486C
94913C0496C13E0EA0FF86D14F0487EA66C4814E06C5A6C485AC714C04A138016004A5A4A5A
950EC3FF090380FFFC05D15F090380007FE913801FF806E13C016E0ED7FF016F8ED3FFCA216
951FEEA1FC0487E487E487EA416FCA249137F007F15F801C0EBFFF06C5A6C6C4813E0260FFC
9520713806CB61200000114FC6C6C13F0010790C7FC27377CB530>I<ED07C0150FA2151F15
9533F157F15FF5CA25C5C5C5C143E143C5C5C1301495A5C495A495A5B133E5B13785B485A12
95403485A5B48C7FC121E5A127C5AB81280A4C70001EBC000AA0103B61280A429367DB530>
955I<B812C017FC17FF18C028007FF000037F04007F717E717E171F84A2717EA74D5AA26017
9563F4D5A4D5A4C13C0040F5B91B600FCC7FCA2EFFF8002F0C713F0EF3FF8717E717E717E19
957807113C0A319E0A719C0A25F4D138019005FEF7FFE4C485AB912F018C095C7FC17F03B39
9587DB844>66 D<B612FCA439007FF800B3B3ADB612FCA41E397DB824>73
959D<B7FCA426007FF8C9FCB3ACEF0780A5170F1800A35FA25FA25F5F5E5EEE0FFE167FB8FC
960A431397DB839>76 D<EDFFF8020FEBFF80027F14F0903A01FFC01FFC010790380007FFD9
9611FFC010113C0D93FF06D6C7E49486E7E49486E7E48496E7E48834890C86C7EA248486F13
96280A248486F13C0A2003F18E0A348486F13F0A400FF18F8AC007F18F06D5DA3003F18E0A2
9636D5D001F18C0A26C6C4B13806C18006E5C6C6D4A5A6C5F6C6D4A5A6D6C4A5AD93FFC4948
9645A6DB401075B0107D9C01F90C7FC010190B512FC6D6C14F0020F1480020001F8C8FC3D3B
9657BB948>79 D<B8FC17F017FEEFFF8028007FF8000F13C0040113E07013F0EF7FF8EF3FFC
966A2EF1FFEA218FFA818FEA2EF3FFCA2EF7FF8EFFFF04C13E0040F13C091B7120017FC17E0
96702F8C9FCB3A4B612FCA438397DB841>I<D907FF130E013FEBE01E90B5EAF83E0003ECFE
9687E3A07FC01FFFE390FF0001F4848130F48481303491301007F140090C8FC167E5A163EA2
9697F161E7F7F6D91C7FC13FC387FFFE014FEECFFF06C14FE6F7E6C816C15F06C816C81C681
970133F010F801301D9000F1480EC007F030F13C01503818100F0157FA3163FA27E17807E16
9717F6C16007E6D14FE01E0495A01F813039039FF801FF800FC90B512E0D8F83F5CD8F00749
972C7FC39E0007FF02A3B7BB935>83 D<EB3FFE0003B512E0000F14F8391FF00FFE003FEB03
973FF6D6C7F6E7FA26F7EA26C5A6C5AEA0380C8FCA2EC3FFF010FB5FC137F3901FFF87F0007
9741380380FFE00EA3FF85B485A12FF5BA415FF6D5A127F263FF00713F83B1FFC1FBFFFC039
9750FFFFE1F0003EBF80F39003FE0032A257DA42E>97 D<903801FFC0010F13FC017F13FFD9
976FF8013802603FE0013C048485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7FC12
977FFA9127FA27F123FED01E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E006DB4
9785A010F13F00101138023257DA42A>99 D<EE7F80ED7FFFA4150381AF903801FF81010F13
979F1013F13FD9038FFC07F0003EB001FD807FC1307000F8048487F5B123FA2485AA312FFAA
980127FA27F123FA26C6C5B000F5C6C6C5B6C6C4913C02701FF80FD13FE39007FFFF9011F13
981E1010113012F3A7DB935>I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F80
9824848133F484814C0001FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8
983FCA4127FA36C7E1678121F6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB5
9841200010F13FC010113E025257DA42C>I<EC1FF0903801FFFC010713FF90391FF87F8090
985383FE0FFD9FFC113C0A2481381A24813016E1380A2ED3E0092C7FCA8B6FCA4000390C8FC
986B3ABB512FEA4223A7DB91D>I<161FD907FEEBFFC090387FFFE348B6EAEFE02607FE0713
9878F260FF801131F48486C138F003F15CF4990387FC7C0EEC000007F81A6003F5DA26D13FF
988001F5D6C6C4890C7FC3907FE07FE48B512F86D13E0261E07FEC8FC90CAFCA2123E123F7F
9896C7E90B512F8EDFF8016E06C15F86C816C815A001F81393FC0000F48C8138048157F5A16
9903FA36C157F6C16006D5C6C6C495AD81FF0EB07FCD807FEEB3FF00001B612C06C6C91C7FC
991010713F02B377DA530>I<13FFB5FCA412077EAFED7FC0913803FFF8020F13FE91381F03
992FFDA3C01138014784A7E4A14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>I<
993EA01F0EA07FC487EA2487EA56C5AA26C5AEA01F0C8FCA913FF127FA412077EB3A9B512F8
994A4153B7DBA1B>I<13FFB5FCA412077EB3B3ACB512FCA4163A7DB91B>108
995D<01FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C011380000713780003497E6D
9964814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>110
997D<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7E
998A2003F81491303007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C
9996C495A6C6C495A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<9039FF01
1000FF80B5000F13F0023F13FC9138FE07FFDAF00113800003496C13C00280EB7FE091C713F0
1001EE3FF8A2EE1FFCA3EE0FFEAA17FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF003
100213809139FC07FE0091383FFFF8020F13E0020390C7FC91C9FCACB512FCA42F357EA435>
1003I<9038FE03F000FFEB0FFEEC3FFF91387C7F809138F8FFC000075B6C6C5A5CA29138807F
100480ED3F00150C92C7FC91C8FCB3A2B512FEA422257EA427>114 D<90383FF0383903FFFE
1005F8000F13FF381FC00F383F0003007E1301007C130012FC15787E7E6D130013FCEBFFE06C
100613FCECFF806C14C06C14F06C14F81203C614FC131F9038007FFE140700F0130114007E15
10077E7E157C6C14FC6C14F8EB80019038F007F090B512C000F8140038E01FF81F257DA426>
1008I<130FA55BA45BA25B5BA25A1207001FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80
1009F014816CEBC3E090383FFFC06D1380903803FE001D357EB425>I<01FFEC3FC0B5EB3FFF
1010A4000714016C80B3A35DA25DA26C5C6E4813E06CD9C03E13FF90387FFFFC011F13F00103
1011138030257DA435>I<B539F01FFFF0A4000390398003F8006C01C013E06C1407D97FE05B
10126D6C485A6E48C7FC90381FFC3E010F5B903807FEFC6D6C5A5D6D5B6D5B6E7E6E7E814A7E
1013A24A7E903801F3FFD903E37FD907C17FEB0FC049486C7E4A6C7E013E80496D7E49130F00
1014016E7EB590383FFFF8A42D257EA432>120 D<B539F001FFF8A4000390C7EA1F00161E6E
1015133E6C153C6E137C6C15786E13F8017F5CECF001013F5C14F8011F495AA2ECFC07010F5C
1016ECFE0F010791C7FC6E5A6D131E15BE6D13BC15FC6D5BA36E5AA26E5AA26E5AA26E5AA292
1017C8FCA25C141E003F133E387F803C38FFC07C147814F8EBC1F0EBC3E06C485A387D1F80D8
10183FFFC9FCEA1FFCEA07F02D357EA432>I E
1019%EndDVIPSBitmapFont
1020%DVIPSBitmapFont: Fo ecrm0900 9 30
1021/Fo 30 122 df<14C01301EB0380EB0F00130E5B133C5B5BA2485A485AA212075B120F90
1022C7FC5AA2121E123EA3123C127CA55AB0127CA5123C123EA3121E121FA27E7F12077F1203
1023A26C7E6C7EA213787F131C7F130FEB0380EB01C01300124A79B71E>40
1024D<12C07E1270123C121C7E120F6C7E6C7EA26C7E6C7EA27F1378137C133C133EA2131E13
10251FA37F1480A5EB07C0B0EB0F80A514005BA3131E133EA2133C137C137813F85BA2485A48
10265AA2485A48C7FC120E5A123C12705A5A124A7CB71E>I<123C127E12FFA4127E123C0808
10277A8715>46 D<B512FEA3000113006C5AB3B3A7487EB512FEA317337EB21C>73
1028D<B512FEA3D803FEC9FC6C5AB3A9EE0180A416031700A45EA25E5E5E5E16FE00031407B7
1029FCA329337DB230>76 D<EC07FC91387FFFC0903901FC07F0903907E000FCD90F80133E01
10303FC76C7E017E6E7E496E7E48486E7E48486E7EA248486E7E000F8249157E001F167FA248
103148ED3F80A2007F17C0A290C9121FA24817E0AB6C17C06D153FA3003F17806D157FA2001F
103217006D5D000F5E6C6C4A5AA26C6C4A5A00015E6C6C4A5A017E4A5A6D4A5AD91FC0017FC7
1033FCD907E013FC903901FC07F09039007FFFC0DA07FCC8FC33377CB43C>79
1034D<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7FC003E80814880A20078
10358000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13FF6C14C06C14F0C68001
10363F7F01037F9038003FFF140302001380157F153FED1FC0150F12C0A21507A37EA26CEC0F
103780A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0011F138026C003FEC7FC
103822377CB42B>83 D<007FB712FEA390398007F001D87C00EC003E0078161E0070160EA200
103960160600E01607A3481603A6C71500B3AB4A7E011FB512FCA330337DB237>I<B5D8F007
1040B539800FFFF0A3000390C7273FF000011300D801FC6E48EB007C1A386D140F0000193083
10416D020715706D1860A26E496C14E0013F60A26ED919FC1301011F60A26ED930FE1303010F
104295C7FCA26ED9607F5B01071706A26E9039C03F800E0103170CA2913BFC01801FC01C0101
10431718A2913BFE03000FE03801001730A2DAFF06EB07F0027F5EA2038CEB03F8023F5EA203
1044D8EB01FC021FEDFD80A203F0EB00FF020F93C8FCA24B800207157EA24B143E0203153CA2
10454B141C020115184C357FB24F>87 D<EB7F803803FFF0380F80FC381C003E003F133F6D6C
10467E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13
1047004815C05AA3140FA26C131F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE00
10483C22237DA126>97 D<EA03F012FFA312071203AEEC3F80ECFFE09038F3C0F89038F7007E
104901FE7F49EB1F8049EB0FC05BED07E016F0A2150316F8AA16F0150716E0A2ED0FC07F6DEB
10501F8001ECEB3F0001CF137C90388381F8903801FFE0C76CC7FC25357EB32B>I<EB07F8EB
10513FFF9038FC07C03901F000E03903E003F03807C007120FEA1F80123F90380003E04890C7
1052FCA2127E12FEAA127FA26C14187F001F14386D1330000F14706C6C13E03903F001C03900
1053FC0F8090383FFE00EB07F01D237EA122>I<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEB
1054FC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C
10556C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>
1056I<EB0FE0EB7FFCEBF83F3903F00F80D807E013C0390FC007E0381F800315F0EA3F001401
10574814F8127EA212FEA2B6FCA248C8FCA5127E127FA26C1418A26C6C1338000F14306D1370
10586C6C13E03901F003C03900FC0F00EB3FFEEB07F01D237EA122>I<EB01FCEB07FF90381F
1059078090383E0FC0EB7C1F13FCEA01F8A20003EB070049C7FCACB512F0A3D803F0C7FCB3A7
1060487E387FFFE0A31A357FB417>I<151F90391FC07F809039FFF8E3C03901F07FC73907E0
10613F033A0FC01F83809039800F8000001F80EB00074880A66C5CEB800F000F5CEBC01F6C6C
106248C7FCEBF07C380EFFF8380C1FC0001CC9FCA3121EA2121F380FFFFEECFFC06C14F06C14
1063FC4880381F0001003EEB007F4880ED1F8048140FA56C141F007C15006C143E6C5C390FC0
106401F83903F007E0C6B51280D91FFCC7FC22337EA126>I<EA03F012FFA312071203AEEC1F
1065C0EC7FF09038F1E0FC9038F3807C9038F7007E13FE497FA25BA25BB3486CEB7F80B538C7
1066FFFCA326347EB32B>I<EA0780EA0FC0EA1FE0A4EA0FC0EA0780C7FCAAEA07E012FFA312
10670F1207B3A6EA0FF0B5FCA310337EB215>I<EB03C0EB07E0EB0FF0A4EB07E0EB03C090C7
1068FCAAEB03F013FFA313071303B3B01238127C00FE13E0130714C0130F007C138038381F00
1069EA1FFCEA07F0144384B217>I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB3
107015>108 D<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01
1071F02807F7003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE
10723FFFF0A33C217EA041>I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007E
1073EA03FE497FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038
1074FC1F803901F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E143F
1075A300FE1580A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC
10761F80D93FFEC7FCEB07F021237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F700
10777ED807FE7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16
1078C06D131F6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB5
107912C0A325307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA290
108038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>114 D<EBFF06000713CE381F00FE
1081003C133E48131E140E5A1406A27EA200FE90C7FC6C7EEA7FFC383FFFC014F0000F7F6C7F
1082C67FEB0FFF1300EC3F8000C0131F140F6C1307A37E15006C5B6C130E6C5B38F7807838E1
1083FFE038C07F8019237EA11E>I<1330A51370A313F0A21201A212031207381FFFFEB5FCA2
10843803F000AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>I<D8
108503F0133F00FFEB0FFFA30007EB007F000380B35DA35D12016D4813800000903803BFFC90
1086387E073FEB1FFED907F8130026227EA02B>I<B53A1FFF81FFF0A33C07F801FC003F8001
1087F049EB1E0000030100141C816C6C017C1318A26D017E1338000002FE1330A290267E01FF
10885B159F168090263F030F5BA216C0903A1F8607C180A202C613E390260FCC0390C7FCA2D9
108907FC13F6ECF80116FE6D486C5AA36D481378A36D48133034217F9F37>119
1090D<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C017E13
109118A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14FBEB01
1092FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA701CEA78
109338EA1FF0EA0FC025307F9F29>121 D E
1094%EndDVIPSBitmapFont
1095%DVIPSBitmapFont: Fp ecbx0900 9 7
1096/Fp 7 117 df<ED1F80A24B7EA24B7EA34B7EA24A7FA34A7FA24A7F15CFA2020F7F1587
1097021F801503023F80EC3E01A2027E80EC7C0002FC804A137FA20101814A133F0103814A13
10981FA249B67EA24981A290271F8000077F91C77EA24982013E80017E82017C80A201FC8249
1099157FB500F0013FB512F0A43C347DB343>65 D<EB7FFE0003B512E04814F8390FF00FFC39
11001FF803FF806E138016C0157F6C5A6C5AEA0180C8FCEC7FFF010FB5FC90B6FC0003EBF07F
1101000F1300EA1FF8485A485A485A5BA315FF7F007F5B6D4813E03A3FF80FBFFF000FB5121F
11020003EBFC0F39007FE00728217EA02B>97 D<EA01FC12FFA4120F1207ADEC0FF8EC7FFF01
1103FDB512C09039FFF01FF09138800FF84A6C7E496D7E496D7EA2178081A217C0A91780A25D
11041700A26D495A6D495A6E485A9039F7E03FF001E1B512C0D9C07F90C7FC9038801FF02A34
11057DB331>I<903807FF80013F13F090B512FC3903FE01FE4848487EEA0FF8EA1FF0EA3FE0
1106A2007F6D5A496C5A153000FF91C7FCA9127F7FA2003FEC07807F6C6C130F000FEC1F00D8
110707FE133E3903FF80FCC6EBFFF8013F13E0010790C7FC21217DA027>I<3901F81F8000FF
1108EB7FF0ECFFF89038F9E3FC9038FBC7FE380FFF876C1307A213FEEC03FCEC01F8EC006049
11091300B1B512F0A41F217EA024>114 D<9038FFE1C0000713FF5A383F803F387E000F1407
11105A14037EA26C6CC7FC13FCEBFFE06C13FC806CEBFF80000F14C06C14E0C6FC010F13F0EB
1111007F140F00F0130714037EA26C14E06C13076CEB0FC09038C01F8090B5120000F913FC38
1112E03FE01C217DA023>I<133CA5137CA313FCA21201A212031207001FB51280B6FCA3D807
1113FCC7FCB0EC03C0A79038FE078012033901FF0F006C13FEEB3FFCEB0FF01A2F7EAE22>I
1114E
1115%EndDVIPSBitmapFont
1116%DVIPSBitmapFont: Fq ecss0900 9 26
1117/Fq 26 122 df<12FEA70707798615>46 D<157015F8A2140115F0A2140315E0A2140715
1118C0A2140F1580A2141F1500A25C143EA2147E147CA214FC5CA213015CA213035CA213075C
1119A2130F5C131F91C7FCA25B133EA2137E137CA213FC5BA212015BA212035BA212075BA212
11200F5BA2121F90C8FCA25A123EA2127E127CA212FC5AA212701D4B7CB726>I<13035B131F
1121137FEA07FFB5FCA313BFEAF83F1200B3B2007FB51280A519337AB226>49
1122D<EB3FE0EBFFF8000313FE487F481480391FC07FC09038801FE0393F000FF0003E130748
1123EB03F8A248130115FC1278123014001210C8FC1401A215F8A2140315F0140715E0EC0FC0
1124141F1580EC3F00147E5C495A495A495AEB0F8049C7FC133E5B5B485A485A485A485A48C8
1125FC123E007FB512FCA51E337DB226>I<12FEA71200B312FEA7072179A015>58
1126D<EC07F8EC7FFF49B512C0010780498090391FF80FF890397FC003FC9038FF80004848C7
11277E49147E4848EB7E7F3A07F001FFBF260FE00713FF49481480001F5B9038803FC3003F49
1128C6FCD9007E137F4AEB3FC0127E4948131FA212FE484848130FAA6C6C6CEB1F80127EA26D
11296CEB3F007E027E137ED9807F13FE001F90383FC3FC6D6CB45A000F6D5B6D6C5B2607F001
113013802703F8007EC7FC6C6C90C8FC7F6C6C6CEB0FC06D6CEB3F80903A1FF803FF006DB55A
11316D14F801015C6D6C1380DA07FCC7FC2A387CB633>64 D<EB3FC03803FFF0000F13FC487F
1132809038C07F80381E001F001814C00010130FC713E01407A6EB03FF133F48B5FC1207001F
113313C7383FF007EA7F80EA7E005AA3140F7E007F133FEBC0FF90B5FC7E6C13E76C1387D803
1134FCC7FC1B247DA225>97 D<EB0FF8EB3FFF90B512E04814F05A3807F807390FE001E0391F
1135C0006049130048C8FCA2127EA35AA9127EA36C14106D1330001F14F0380FE001EBF80F6C
1136B5FC6C14E0C6148090387FFE00EB0FF01C247DA222>99 D<15FCB3A2EB3F80EBFFF00003
113713FC4813FE4813FFEBF81F381FE007383FC001138048C7FC127EA35AA9127EA3007F1301
1138EA3F801403381FE007380FF81F90B5FC6C13FC6C13F8C613E090383F80001E377DB528>
1139I<EB1FC0EB7FF848487E487F487F390FF07F80381FC01F90388007C0EA3F00EC03E0007E
11401301A2127C00FCEB00F0B6FCA500F8C8FCA27EA2127C127EA27E6D13106C6C1370390FE0
114101F0EBF80F6CB5FC6C14E0C6148090387FFE00EB0FF01C247DA222>I<EB01FCEB07FF13
11421F5B5BEBFE07EBFC013801F8005BA21203ACB512F0A53803F000B3AA18377FB617>I<90
1143391FC00F8090387FF0FF90B612C05A5A2607F07FC7FC390FC01F80EB800FA248486C7EA7
11446C6C485AA2EBC01F2607F07FC7FCEBFFFE485B5C486C5AEB1FC090C9FCA37F380FFFFEEC
1145FFE06C804814FC48805A397F8003FF007EC77E00FEEC3F8048141FA46C143F007FEC7F00
11466D5B393FF007FE6CB55A6C5C000314E0C61480D91FFCC7FC22337EA126>I<12FCB3A2EB
114707F0EB3FFE497E90B51280B6FC9038E07FC0EB801F9038000FE0A2481307A35AB3A41B36
11487AB528>I<12FEA71200AC127EB3AF07347BB313>I<12FCB3A3EC0FF0EC1FE0EC3FC0EC7F
114980ECFF00495A495A495A495A495A495A495A49C7FC12FDB57EA280EBE7E013C7EB83F0EB
115001F800FE7FEAFC00147E801580141FEC0FC0EC07E0A2EC03F0EC01F815FC1E367AB526>
1151107 D<12FCB3B3B206367AB513>I<D907F0EB3F803BFC3FFE01FFF0496C4813F890B500
11528713FCB6129F903AE07FDF03FE9039801FFC00496C48137FA2486D48133FA3485CB3A430
1153227AA13D>I<EB07F038FC3FFE497E90B51280B6FC9038E07FC0EB801F9038000FE0A248
11541307A35AB3A41B227AA128>I<EB07F0EB3FFE90B57E488048803907F80FF0390FE003F8
115548486C7EEB800048C7127EA2007E80A2007C8000FC1580A86C143F007E1500A2007F5C6C
1156147E6D13FE6C6C485A6C6C485AEBF80F6CB55A000114C06C5CD93FFEC7FCEB07F021247E
1157A226>I<EB03F838FC1FFEEB7FFF00FDB51280B612C09038E07FE0EB801F9038000FF048
1158130748EB03F8A2140115FC1400A8140115F8A2140315F06C13076CEB0FE0EB801F9038E0
11597FC090B5128000FD140000FC5BEB3FFCEB07E090C8FCAE1E317AA128>I<EB03C0EAF81F
1160133F13FF12F912FBEBFC00EAFFF013C05B90C7FCA25AA35AB312227AA11A>114
1161D<EBFF80000713F04813FC487F5AEA7F00007E131C48130C91C7FCA47EEA7F8013F86CB4
11627E6C13E06C13F800037FC67FEB0FFF1300EC3F80A2141FA312400060133F00781400B413
1163FFEBFFFE5C6C5B000F5B0001138019247EA21D>I<EA03F0AAB512FEA53803F000B3A37F
116414023801FC1E90B5FCA27EEB7FFCEB3FC0182C7FAA1C>I<00FCEB07E0B3A7140F141F6C
1165133F6C13FF6CB5FC14F76C13E76C1307D807F8C7FC1B227AA028>I<00FCD907F0EB1F80
11667E007E010FEC3F008115786C011F143E177EEC1E7C261F803E147C033C13FC153E000F01
11673C5CD9C07C1301151E151F2607E0785C02F81303ED0F8300035EEBF0F001F11487000191
11683807C7C014E0A201FBEB03CF00005E02C013EF1501017B92C7FCD97F8013FFA2013F6D5A
116991C7FC31217FA034>119 D<00FE143F007E147EA27E15FC7F001FEB01F813C0120FEC03
1170F0EA07E015E0EBF007120315C03801F80F15801200EBFC1F1500137CEB7E3E133EA2EB1F
11713C147CEB0F78A36D5AA26D5AA35C13075CA2130F91C7FC5B131EEA203EEA387CEA3FFC5B
1172A25BEA0FC020317FA023>121 D E
1173%EndDVIPSBitmapFont
1174%DVIPSBitmapFont: Fr ecrm1000 10 83
1175/Fr 83 184 df<486C1360000314E039070001C0000EEB038048EB070000181306003813
11760E0030130C0070131C00601318A200E01338481330A400CEEB338039FF803FE001C013F0
1177A3007F131FA2393F800FE0390E0003801C1981B91C>16 D<001C1307007FEB1FC039FF80
11783FE0A201C013F0A3007F131F001CEB073000001300A400011470491360A2000314E090C7
117912C048130100061480000E130348EB070048130E485B006013181C1980B91C>I<BD12C0
1180A25202809653>22 D<DA0FF813FC91397FFF07FF903B01F807DF83C0903A07E001FF0F90
11813B1F8007FE1FE090393F000FFC137E16F85B9338F007804848010790C7FC1503ACB812F8
1182A32801F80003F0C7FCB3AB486C497E267FFFE0B512F0A3333B7FBA30>27
1183D<EC0FF8EC7FFE903901F80780903907E001C090391F8000E090383F0007017E497EA25B
1184A2485A6F5AED018092C8FCA9ED03F0B7FCA33901F8000F1503B3AA486C497E267FFFE0B5
118512C0A32A3B7FBA2E>I<EC0FFC91387FFF70903901F803F0903807E00790381F800FEB3F
118600137EA25B150748481303ADB7FCA33901F80003B3AB486C497E267FFFE0B512C0A32A3B
11877FBA2E>I<DA0FF0EB1FF0DA7FFEEBFFFC903B01F80F83F00F903C07E001CFC00380903C
11881F8000FF0001C090273F0007FE130F017E4948497EA2495CA248485C03076E5A03030203
1189C7FC95C8FCA9F007E0BAFCA33C01F80003F0001F1807B3AA486C496C497E267FFFE0B500
1190C1B51280A3413B7FBA45>I<121C127FEAFF80A8EA7F00AB123EAB121CABC7FCA8121C12
11917FEAFF80A5EA7F00121C093C79BB17>33 D<007C137C00FE13FEEAFF01A3EAFE00A7007E
119213FC007C137CA8003C137800381338A700181330171E77BA2A>I<121C127FEAFF80A213
1193C0A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A1979B917>39
1194D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA212075B120F90C7FC
1195A25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C7EA26C7E
11961378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>I<12C07E12707E7E7E120F
11976C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7FA21480A3EB07C0A6EB03E0
1198B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A25BA2485A485AA2485A48C7
1199FC120E5A5A5A5A5A13527CBD20>I<121C127FEAFF80A213C0A3127F121C1200A4120113
120080A2120313005A1206120E5A5A5A12600A19798817>44 D<B512FCA516057F941C>I<12
12011C127FEAFF80A5EA7F00121C0909798817>I<1506A2150E150CA2151C151815381530A2
120215701560A215E015C0A214011580A2140315005C1406A2140E140CA2141C1418A2143814
120330A21470146014E05CA213015CA2130391C7FCA25B1306A2130E130C131C1318A2133813
120430A213701360A213E05BA212015B120390C8FCA25A1206A2120E120CA2121C1218A21238
1205123012701260A212E05AA21F537BBD2A>I<EB03F8EB1FFF90387E0FC09038F803E03901
1206E000F0484813780007147C48487FA248C77EA2481580A3007EEC0FC0A500FE15E0B3007E
120715C0A4007F141F6C1580A36C1500A26C6C133EA26C6C5B6C6C5BEBF0013900F803E09038
12087E0FC0D91FFFC7FCEB03F823397DB62A>I<EB01C013031307131F13FFB5FCA2131F1200
1209B3B3A7497E007FB512F0A31C3779B62A>I<EB0FF0EB7FFE48B57E3903E03FE0390F000F
1210F0001E6D7E001C6D7E486D7E5A6E7E126012FE6CEC7F807FA56CC7FC121CC8FCEDFF00A2
12115D14015D14035D4A5A4A5A5D4A5A4AC7FC147E5C495A14E0495A495A49C8FC011EEB0180
12125B5B49130348481400485A485A90C75A48B6FC5A5A485CB6FCA321377CB62A>I<EB07F8
1213EB3FFF90B512C03901F80FF03903C007F848486C7E390E0001FEEA0F80391FE000FF7FA5
12146C5A6C5AC7485AA25D14035D4A5A5DEC0F80027FC7FCEB1FFCECFF809038000FE06E7EEC
121501FC816E7EED7F80A216C0A2153F16E0A2121EEA7F80A2487EA316C0157F491480007EC7
1216FC0070ECFF006C495A121E390F8003F83907F00FF00001B512C06C6C90C7FCEB0FF82339
12177DB62A>I<1538A2157815F8A2140114031407A2140F141F141B14331473146314C31301
12181483EB030313071306130C131C131813301370136013C01201EA038013005A120E120C5A
1219123812305A12E0B712F8A3C73803F800AA4A7E0103B512F8A325387EB72A>I<0006140C
1220D80780133C9038F003F890B5FC5D5D158092C7FC14FC38067FE090C9FCAAEB07F8EB1FFE
12219038780F809038E007E03907C003F0496C7E130000066D7E81C8FC8181A21680A4121C12
12227F5A7FA390C713005D12FC00605C12704A5A6C5C6C1303001E495A6C6C485A3907E03F80
12230001B5C7FC38007FFCEB1FE021397CB62A>I<EC3FC0903801FFF0010713FC90380FE03E
122490383F800790387E001F49EB3F804848137F485A12075B000FEC3F0049131E001F91C7FC
12255B123FA3127F90C9FCEB01FC903807FF8039FF1E07E090383801F0496C7E01607F01E013
12267E497F16805BED1FC0A390C713E0A57EA47F123F16C0A2001FEC3F807F000F15006D5B00
12270714FE6C6C5B6C6C485A3900FE07F090387FFFC0011F90C7FCEB03FC23397DB62A>I<12
1228301238123E003FB612E0A316C05A168016000070C712060060140E5D5D00E01430481470
12295D5DC712014A5A4AC7FC1406140E5CA25C1478147014F05C1301A213035C1307A2130FA3
1230131F5CA2133FA5137FA96DC8FC131E233A7BB72A>I<EB03F8EB1FFF017F13C09038FC07
1231F03901E001F83903C0007C4848133C90C7123E48141E000E141F001E80A3121FA26D5B6D
1232131E7FD80FF85B6D137C01FF13786C6D5A6CEBE3E0ECF780C601FFC7FC6D5A6D6C7E010F
123313E0013F7F01F97F3901E07FFE48486C7E380F800F48486C1380001E010113C0487F007C
1234143F0078EC1FE0150F00F81407481403A21501A36C15C0A200781403007C15806C14076C
1235EC0F006C6C131ED807E0137C3903F803F0C6B55A013F1380D907FCC7FC23397DB62A>I<
1236EB03F8EB1FFF017F13C03901FC07E048486C7E3907E001F8000F6D7E4848137E5B003F80
1237A248C71380A25AED1FC0A516E0A56C143FA36C7E157F121F6C6C13FF6C6C13DF00031301
12383901F0039F3900FC0F1FD93FFC13C0EB07F090C7FCA2153F1680A216005D120F486C137E
1239486C5BA24A5A4A5A49485A381F000F001CEB1F80260F807FC7FC3807FFFE000113F83800
12403FC023397DB62A>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00
1241121C092479A317>I<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A213C0A3
1242127F121C1200A412011380A2120313005A1206120E5A5A5A12600A3479A317>I<EB3FE0
12433801FFFE3907C03F80390E000FC0003CEB07F000301303007014F8007C130100FE14FC7E
1244A4127E003CEB03F8C7FCEC07F0A2EC0FE0EC1F80EC3F00147E147C5C495A5C495A5CA249
1245C7FCA31306AA90C8FCA8130EEB3F80497EA56D5A010EC7FC1E3B7CBA27>63
1246D<EC03FF021F13E09138FC00FCD901E0131ED90780EB0780011EC7EA01E00138EC007049
124781498148488148488190C97E48D901FC1480000ED907FFEB01C0000C90391F03C000001C
124890267E00E013E000184901701360263801F86D13700030496D13300103EC0FE0267007E0
12490107133800601718495AA200E0171C484848150CAA6C6C7E1260A26D6C151C0070171826
12503003F0130F0101141F00386D013F1338261800FC01771330001C017E9038E3F070000C90
1251261F03C113E0000E903A07FF00FFC06CD901FCEB3F006C90CAFC7F6C7E6C7E13706D167C
1252011EED03FCD90780EC1FF0D901E0ECFF80D900FC90383FFC00021FB51280020301E0C7FC
1253363C7BBA41>I<1538A3157CA315FEA34A7EA34A6C7EA202077FEC063FA2020E7FEC0C1F
1254A2021C7FEC180FA202387FEC3007A202707FEC6003A202C07F1501A2D901807F81A249C7
12557F167FA20106810107B6FCA24981010CC7121FA2496E7EA3496E7EA3496E7EA213E0707E
12561201486C81D80FFC02071380B56C90B512FEA3373C7DBB3E>I<B712E016FC16FF000190
12573980007FC06C90C7EA1FE0707E707E707EA2707EA283A75F16035F4C5A4C5A4C5A4C5AEE
1258FF8091B500FCC7FCA291C7EA7F80EE1FE0EE07F0707E707E83707EA21880177F18C0A718
12598017FFA24C13005F16034C5AEE1FF8486DEB7FF0B812C094C7FC16F832397DB83B>I<91
12603A01FF800180020FEBE003027F13F8903A01FF807E07903A03FC000F0FD90FF0EB039F49
126148EB01DFD93F80EB00FF49C8127F01FE153F12014848151F4848150FA248481507A2485A
12621703123F5B007F1601A35B00FF93C7FCAD127F6DED0180A3123F7F001F160318006C7E5F
12636C7E17066C6C150E6C6C5D00001618017F15386D6C5CD91FE05C6D6CEB03C0D903FCEB0F
126480902701FF803FC7FC9039007FFFFC020F13F002011380313D7BBA3C>I<B712C016F816
1265FE000190398001FF806C90C7EA3FE0EE0FF0EE03F8707E707E177FA2EF3F8018C0171F18
1266E0170F18F0A3EF07F8A418FCAC18F8A4EF0FF0A218E0A2171F18C0EF3F80A2EF7F0017FE
12674C5A4C5AEE0FF0EE3FE0486DEBFF80B8C7FC16F816C036397DB83F>I<B812FEA3000190
1268388000076C90C8FC173F838383A383A31880170116C0A394C7FCA31501A21503150F91B5
1269FCA3EC000F15031501A21500A21860A318E093C712C0A41701A3EF0380A21707A2170F17
12703F177F486D903807FF00B9FCA333397EB838>I<B812F8A30001903880001F6C90C71201
1271EE00FC177C173C171CA2170CA4170E1706A2ED0180A21700A41503A21507151F91B5FCA3
1272EC001F15071503A21501A692C8FCAD4813C0B612C0A32F397DB836>I<DBFF8013C0020F
1273EBF001023F13FC9139FF803F03903A03FC000787D90FF0EB03CF4948EB00EF4948147F49
127448143F49C8121F485A4848150F48481507A248481503A2485A1701123F5B007F1600A448
1275481600AB93B6FCA26C7E9338007FE0EF3FC0A2123F7F121FA26C7EA26C7EA26C7E6C7E6C
12766C157F6D7E6D6C14FF6D6C14EFD90FF8EB03C7D903FEEB0783903A00FFC03F0191393FFF
1277FC00020F01F0130002001380383D7CBA41>I<B648B512FEA30001902680000313006C90
1278C76C5AB3A491B6FCA391C71201B3A6486D497EB648B512FEA337397DB83E>I<B612C0A3
1279C6EBC0006D5AB3B3AD497EB612C0A31A397EB81E>I<B649B5FCA3000101809038007FF0
12806C90C8EA3F80053EC7FC173C17385F5F4C5A4C5A4CC8FC160E5E5E5E5E4B5AED0780030E
1281C9FC5D153E157E15FF5C4A7F4A6C7E140E4A6C7E4A6C7E14704A6C7E4A6C7E14804A6C7E
12826F7EA26F7F707EA2707E707EA2707EA2707E707EA2707E707F8484486D497FB6011FEBFF
128380A339397DB841>75 D<B612E0A3000101C0C8FC6C90C9FCB3AD1718A517381730A31770
1284A317F0A216011603160FEE1FE0486D13FFB8FCA32D397DB834>I<B5933807FFF86E5DA2
12850001F0FC002600DFC0ED1BF8A2D9CFE01533A3D9C7F01563A3D9C3F815C3A2D9C1FCEC01
128683A3D9C0FEEC0303A2027F1406A36E6C130CA36E6C1318A26E6C1330A36E6C1360A26E6C
128713C0A3913901FC0180A3913900FE0300A2ED7F06A3ED3F8CA2ED1FD8A3ED0FF0A3486C6D
12885A487ED80FFC6D48497EB500C00203B512F8A2ED018045397DB84C>I<B5913807FFFE80
128980C69238007FE06EEC1F80D9DFF0EC0F001706EBCFF8EBC7FCA2EBC3FEEBC1FFA201C07F
12906E7EA26E7E6E7E81140F6E7E8114036E7E168080ED7FC016E0153FED1FF0ED0FF8A2ED07
1291FCED03FEA2ED01FF6F1386A2EE7FC6EE3FE6A2EE1FF6EE0FFEA216071603A216011600A2
1292177E486C153E487ED80FFC151EB500C0140EA2170637397DB83E>I<EC03FF021F13E091
129338FE01FC903901F8007ED907E0EB1F8049486D7ED93F80EB07F049C76C7E01FE6E7E4848
12946E7E49157E0003167F4848ED3F80A24848ED1FC0A2001F17E049150F003F17F0A3007F17
1295F8491507A300FF17FCAC007F17F86D150FA3003F17F0A26C6CED1FE0A36C6CED3FC00007
129617806D157F000317006C6C15FEA26C6C4A5A017F4A5A6D6C495A6D6C495AD907E0EB1F80
1297D903F8017FC7FC903900FE01FC91381FFFE0020390C8FC363D7BBA41>I<B712C016FC16
1298FF0001D9800013C06C90C7EA1FE0707EEE03F883707EA2707EA21880A71800A24C5AA24C
12995A5FEE0FF04C5AEEFF8091B548C7FC16F091CAFCB3A5487FB6FCA331397EB838>I<EC03
1300FF021F13E09138FE01FC903901F8007ED907E0EB1F8049486D7ED93F80EB07F049C76C7E
130101FE6E7E48486E7EA24848157F0007178049153F000F17C049151F001F17E0A24848ED0F
1302F0A3007F17F8A2491507A200FF17FCAC007F17F8A26D150FA2003F17F0A26C6CED1FE0A3
13036C6CED3FC00007027C14804AB4FC3C03F80383807F003B01FC0701C0FEEC0E002600FE0C
1304EBE1FC017FEC63F8D93F8CEB77F0D91FCCEB3FE0D907EE14806DB449C7FC0100D981FC13
13050CEC1FFF0203131C91C7001E131C161F183CEF807CEFC0F8EE0FFFA318F08218E07013C0
13067013809338007E00364B7BBA41>I<B612FEEDFFE016F8000190388007FE6C90C76C7EEE
13073FC0707E707E707EA2707EA283A65FA24C5AA24C5A4C5AEE3F8004FFC8FCED07FC91B512
1308E05E9138000FF0ED03F8ED00FE82707E707EA2161F83A583A6F00180A217F8160F180348
13096D01071400B66D6C5A04011306933800FE0ECAEA3FFCEF07F0393B7DB83D>I<D90FF813
1310C090383FFE0190B512813903F807E33907E000F74848137F4848133F48C7121F003E140F
1311007E1407A2007C140312FC1501A36C1400A37E6D14006C7E7F13F86CB47E6C13F8ECFF80
13126C14E06C14F86C14FEC680013F1480010714C0EB007F020713E0EC007FED3FF0151F150F
1313ED07F8A200C01403A21501A37EA216F07E15036C15E06C14076C15C06C140F6DEB1F80D8
1314FBF0EB3F00D8F0FE13FE39E03FFFF8010F13E0D8C00190C7FC253D7CBA2E>I<003FB812
1315E0A3D9C003EB001F273E0001FE130348EE01F00078160000701770A300601730A400E017
131638481718A4C71600B3B0913807FF80011FB612E0A335397DB83C>I<B6903807FFFEA300
13170101809038007FE06C90C8EA1F80EF0F001706B3B2170E6D150C80171C133F17186D6C14
1318385F6D6C14F06D6C5C6D6C495A6D6CEB07806D6C49C7FC91387F807E91381FFFF8020713
1319E09138007F80373B7DB83E>I<B500FC91387FFF80A30003018091380FFC006C90C8EA07
1320E0715A6C705A6E1403017F93C7FCA280013F1506A26E140E011F150C80010F5DA2800107
13215DA26E147001031560A26D6C5CA2806D4A5AA2ED8003027F91C8FCA291383FC006A215E0
1322021F5BA2EDF01C020F1318A26E6C5AA215FC02035BA2EDFEE002015BA26E6C5AA36FC9FC
1323A3153EA2151CA3393B7EB83E>I<B5D8FC07B5D8F001B5FCA30007902780001FFEC7EA1F
1324F86C48C7D80FF8EC07E000010307ED03C01B807F6C6F6C1500A26E5F017F6E6C1406A280
1325013F4A6C5CA280011F4A6D5BEE067FA26D6C010E6D5BEE0C3FA26D6C011C6D5BEE181FA2
13266D6C6F5BEE300FA26D6C6F485AEE6007A26D6C4CC7FC9338C003FCA203805D913B7F8180
132701FE06A203C1150EDA3FC3C7EAFF0CA203E3151CDA1FE6EC7F98A215F6DA0FFCEC3FF0A3
132802075E4B141FA202035E4B140FA202015E4B1407A2020093C8FC4B80503B7EB855>I<00
13297FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C5C6D
13306C13034CC8FC6D6C1306160E6D6C5B6DEB8018163891387FC0306E6C5A16E06E6C5A9138
13310FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8150F
133291380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E49486D7E130391
1333C76C7E01066E7E130E010C6E7E011C1401013C8101FE822607FF80010713E0B500E0013F
1334EBFF80A339397EB83E>I<B500FE91383FFFE0A3000301E0913807FE00C649EC03F0017F
13356F5A606D6C5D6D6C140395C7FC6D6C1406A26D6C5C6D6C141C17186D6C143817306D6D5B
13366E6C13E05F91383FE0015F91381FF003DA0FF890C8FC1606913807FC0E160C913803FE1C
1337913801FF185E6E13B016E0157F6F5AB3A24B7E023FB512C0A33B397FB83E>I<007FB812
133880B912C0A26C17803204797041>95 D<EA01801203EA0700120E5A121812381230127012
133960A212E05AA412CEEAFF8013C0A3127FA2EA3F80EA0E000A197AB917>I<EB1FE0EBFFFC
13403803E03F3907000F80390F8007E0486C6C7E13E06E7EA26E7E6C5A6C5AC8FCA4147FEB07
1341FFEB3FE0EBFE00EA03F8EA0FF0EA1FC0123F485A90C7FC160C12FEA31401A26C13036CEB
1342077C903980063E18383FC01E3A0FE0781FF03A03FFF00FE03A007F8007C026277DA52A>
1343I<EA03F012FFA3120F1203B0EC1FE0EC7FF89038F1E03E9039F3801F809039F7000FC001
1344FEEB07E049EB03F049EB01F85BED00FCA216FEA2167E167FAA167E16FEA216FC15016D14
1345F8ED03F07F01EEEB07E001C6EB0FC09039C7801F00903881E07E903800FFF8C7EA1FC028
13463B7EB92E>I<EB03FC90381FFF8090387E03E03901F80070484813F83907E001FC380FC0
134703A2EA1F80123F90380001F848EB00F01500A2127E12FEAA127E127FA26C14067F001F14
13480E6D130C000F141C6C6C13386C6C13706C6C13E039007C07C090381FFF00EB07F81F277D
1349A525>I<ED0FC0EC03FFA3EC003F150FB0EB03F8EB1FFF90387E078F9038F801EF3903F0
1350007F4848133F4848131FA24848130F123F90C7FC5AA2127E12FEAA127E127FA27EA26C6C
1351131FA26C6C133F6C6C137F6C6CEBEFF03A01F801CFFF39007C078F90381FFE0FD907F813
1352C0283B7DB92E>I<EB07F8EB1FFF90387C0FC03901F803E03903F001F0D807E013F8380F
1353C0004848137CA248C7127E153E5A153F127E12FEA3B7FCA248C8FCA5127EA2127FA26C14
1354037F001F14076C6C13060007140E6D131CD801F013386C6C137090387E03E090381FFF80
1355903803FC0020277EA525>I<147E903803FF8090380FC1E0EB1F8790383F0FF0137EA213
1356FCA23901F803C091C7FCADB512FCA3D801F8C7FCB3AB487E387FFFF8A31C3B7FBA19>I<
1357ED03F090390FF00FF890393FFC3C3C9039F81F707C3901F00FE03903E007C03A07C003E0
135810000FECF000A248486C7EA86C6C485AA200075C6C6C485A6D485A6D48C7FC38073FFC38
1359060FF0000EC9FCA4120FA213C06CB512C015F86C14FE6CECFF804815C03A0F80007FE048
1360C7EA0FF0003E140348140116F8481400A56C1401007C15F06CEC03E0003F1407D80F80EB
13610F80D807E0EB3F003901FC01FC39007FFFF0010790C7FC26387EA52A>I<EA03F012FFA3
1362120F1203B0EC0FF0EC3FFCECF03F9039F1C01F809039F3800FC0EBF70013FE496D7EA25B
1363A35BB3A3486C497EB500C1B51280A3293A7EB92E>I<EA0380EA0FE0487EA56C5AEA0380
1364C8FCAAEA03F012FFA312071203B3AA487EB512C0A312387EB717>I<EB01C0EB07F0EB0F
1365F8A5EB07F0EB01C090C7FCAAEB01F813FFA313071301B3B3A2123C127E00FF13F01303A2
136614E038FE07C0127C383C0F00EA0FFEEA03F8154984B719>I<EA03F012FFA3120F1203B1
1367913801FFFCA39138007FC01600157C15705D4A5A4A5A4AC7FC141E1438147814FC13F1EB
1368F3FEEBF73F01FE7FEBF81F496C7E8114076E7E6E7E811400157E157F811680ED1FC0486C
1369EB3FF0B500C0B5FCA3283A7EB92C>I<EA03F012FFA3120F1203B3B3AD487EB512C0A312
13703A7EB917>I<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903BF1C01F8380
13713F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3495CB3A348
13726C496CEB1FE0B500C1B50083B5FCA340257EA445>I<3903F00FF000FFEB3FFCECF03F90
137339F1C01F803A0FF3800FC03803F70013FE496D7EA25BA35BB3A3486C497EB500C1B51280
1374A329257EA42E>I<EB03FE90380FFF8090383E03E09038F800F84848137C48487F48487F
13754848EB0F80001F15C090C712074815E0A2007EEC03F0A400FE15F8A9007E15F0A2007F14
1376076C15E0A26C6CEB0FC0000F15806D131F6C6CEB3F006C6C137EC66C13F890387E03F090
1377381FFFC0D903FEC7FC25277EA52A>I<3903F01FE000FFEB7FF89038F1E07E9039F3801F
1378803A07F7000FC0D803FEEB07E049EB03F04914F849130116FC150016FEA3167FAA16FEA3
1379ED01FCA26DEB03F816F06D13076DEB0FE001F614C09039F7803F009038F1E07E9038F0FF
1380F8EC1FC091C8FCAB487EB512C0A328357EA42E>I<D903F813C090381FFE0190387E0781
13819038FC01C33903F000E3000714774848133749133F001F141F485A150F48C7FCA312FEAA
1382127FA37E6D131F121F6D133F120F6C6C137F6C6C13EF3901F801CF39007E078F90381FFE
13830FEB07F890C7FCABED1FE00203B5FCA328357DA42C>I<3807E01F00FFEB7FC09038E1E3
1384E09038E387F0380FE707EA03E613EE9038EC03E09038FC0080491300A45BB3A2487EB512
1385F0A31C257EA421>I<EBFF03000313E7380F80FF381E003F487F487F00707F12F0A2807E
1386A27EB490C7FCEA7FE013FF6C13E06C13F86C7F00037FC67F01071380EB007F141F00C0EB
13870FC01407A26C1303A37E15806C13077EEC0F00B4131E38F3C07C38E1FFF038C03F801A27
13887DA521>I<1318A51338A31378A313F8120112031207001FB5FCB6FCA2D801F8C7FCB215
1389C0A93800FC011580EB7C03017E13006D5AEB0FFEEB01F81A347FB220>I<D803F0EB07E0
139000FFEB01FFA3000FEB001F00031407B3A4150FA3151F12016D133F0000EC77F86D9038E7
1391FF8090383F03C790381FFF87903A03FC07E00029267EA42E>I<B538803FFEA33A0FF800
13920FF06C48EB07E00003EC03C06D148000011500A26C6C1306A26D130E017E130CA26D5BA2
1393EC8038011F1330A26D6C5AA214E001075BA2903803F180A3D901FBC7FCA214FF6D5AA214
13947CA31438A227257EA32C>I<B53A1FFFE03FFEA3260FF8009038000FF86C48017EEB03E0
139518C00003023EEB0180A26C6C013FEB0300A36C6CEC8006156FA2017E9038EFC00C15C717
13961CD93F01EBE01815830281EBF038D91F831430150102C3EBF87090260FC6001360A2D907
1397E66D5A02EC137CA2D903FCEB7F804A133FA2010192C7FC4A7FA20100141E4A130E026013
13980C37257EA33C>I<B538807FFFA33A03FE003FF00001EC1F80000092C7FC017E131C6D13
1399186D6C5AECC070010F5B6D6C5AECF180EB03FB6DB4C8FC6D5AA2147F804A7E8114CF9038
140001C7E090380383F090380703F8EB0601496C7E011C137E49137F01787F496D7E486C8000
14010FEC3FF0D8FFFE90B51280A329247FA32C>I<B538803FFEA33A0FF8000FF06C48EB07C0
14020003EC03806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070010F1360A2
14036D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214701460A25C
1404A2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357EA32C>I<00
14053FB512FCA2EB8003D83E0013F8003CEB07F00038EB0FE012300070EB1FC0EC3F80006013
14067F150014FE495AA2C6485A495AA2495A495A495AA290387F000613FEA2485A485A000714
14070E5B4848130C4848131CA24848133C48C7127C48EB03FC90B5FCA21F247EA325>I<143E
1408ECFF8090380180C0903803006001067FA56D5B6D6C5A6DB45A023EC8FC91C9FCA5D803F0
1409EB07E000FFEB01FFA3000FEB001F00031407B3A4150FA3151F12016D133F0000EC77F86D
14109038E7FF8090383F03C790381FFF87903A03FC07E00029387EB62E>183
1411D E
1412%EndDVIPSBitmapFont
1413%DVIPSBitmapFont: Fs ecss1440 14.4 32
1414/Fs 32 247 df<C11280A6710680A272>22 D<1406140E143E147EEB01FE1307133FEA07
1415FFB5FCA313F913C1EAF8011200B3B3B3A6007FB612F8A6255076CF39>49
1416D<EC7FE0903807FFFC011F13FF4914C04914F090B67E48814801007FD807F8EB1FFF4848
1417130701C001011380001F6E13C049147F48C8EA3FE0A2007EED1FF0160F127C12FC48ED07
1418F81278A21230A21210C9FCA417F0160FA3EE1FE0A217C0163F1780167FEEFF005E15014B
14195A4B5A5E4B5A4B5A4B5A157F4BC7FC4A5A4A5AEC07F04A5A4A5A4A5A4AC8FC14FE495A49
14205A495A495A495A495A91C9FC137E5B485A485A485A485A485A48CAFC48B712F8A72D507B
1421CF39>I<EC3FF0903801FFFE010F6D7E013F14E0498090B67E000381489038C01FFE3A0F
1422FE0007FF01F80101138048487FD83FC0EC7FC049143F48C8FC003E16E0161F121C121812
142308C9FCA3163F17C0A2167F178016FF17005D4B5A4B5A4B5AED7FF091380FFFE00103B55A
14245E4BC7FCA2EDFFC016F090C7EA3FF8ED07FCED01FE6F7EEE7F80EE3FC017E0161F17F016
14250F17F8A2160717FCA812400060ED0FF8A2127000F8ED1FF0A26C153F007F16E06D147F6C
14266CECFFC0D81FF0491380D80FFE010713003A07FFC03FFE6C90B5FC6C15F86C5D013F5C01
14270F1480010349C7FC9038003FF02E527BCF39>I<ED07FC150FA2151FA2153D157DA215F9
1428A2EC01F11403A2EC07E1A2EC0FC1A2EC1F81143F1501147F147E14FEEB01FCA2EB03F8A2
1429EB07F0A2EB0FE0131F14C0EB3F80A2EB7F005B5B12015B12035B485A120F5B121F5B485A
1430127F90C7FC5A90B812C0A6C8D801FCC7FCB3A4324E7DCD39>I<B77E16F816FF17C017F0
143117FC90268000037F9238003FFF040713C01601707FEF3FF0717E170F717EA21703841701
1432A64D5AA2170760170F4D5A4D5AEFFFC04C5B040790C7FCEE1FFE923801FFF890B75A17C0
14334CC8FCA2EEFFC017F8902680000F13FE9238003FFF040713C004017F706C7EEF1FF8717E
1434717E1703717EA2711380187FA219C0A2183FA4187FA2198018FFA24D13005F4D5A4D5A17
14353F4D5A4C485A040F5B93B55A90B8C7FC5F17F817E094C8FC16F03A5275D14C>66
1436D<923803FFF0031FEBFF8092B612F0020315FE020FEDFF80143F5C9127FFFE001F130049
143701F013014901C0EB003F4990C8120F49481503D91FF892C7FC495A495A495AA2485B4890
1438CBFC5B12075B120F5B121F5BA2123F5BA3485AA5485AAE6C7EA56C7EA37F121FA27F120F
14397F12077F12037F6C7F6C7FA26D7E6D6C16806D6C1503D90FFE15076D6C151F6D01C0EC3F
1440C06D01F0EB01FF6D01FE131F6EB712806EEDFE00020F5D020315F0020015C0031F91C7FC
1441030313F03A5678D349>I<EAFF80B3B3B3B3AA095275D120>73 D<B47EB3B3B3B3A390B7
144212F8A72D5275D13E>76 D<D8FFE0F0FFE0A36D5FA26D5FA200FE19EF6D1707A2017EEF0F
1443CFA36DEF1F8FA36D6CEE3F0FA26E167F010F177EA26E16FE010717FCA26E1501010317F8
14446E1503A2010117F06E1507A2010017E06E150F027E16C0027F151FA26E16806F143FA202
14451F16006F5CA26E6C14FEA202075D6F1301A202035D6F1303A26E6C495AA202005D6F130F
1446A2037E5C037F131FA26F5CEE803F031F91C7FCA2705A030F137EEEE0FEA203075B16F103
1447035BA3923801FBF0A26FB45AA3705AA3705A93C9FCA24B5274D164>I<923803FF80033F
144813F892B512FE02036E7E020F15E0023F15F84A48C67FDAFFF0EB1FFE010301C0903807FF
1449804990C700017FD90FFC6E6C7E49486F7E4A151F49486F7E49486F7E49486F7E91C91201
14504884484870138049177F000719C049173F000F19E049171F001F19F0A249170F003F19F8
1451A2491707A2007F19FCA3491703A200FF19FEAD6D1707007F19FCA56D170F003F19F8A26D
1452171F001F19F0A26D173F000F19E06D177F000719C06D17FF000319806D5E6C19006E5D6C
14536D4B5A6D6C4B5A6D6C4B5A6E153F6D6C4B5A6D6C4B5A6D6C4A5B6D01C001075B6D01F001
14541F90C7FC9026007FFEEBFFFC6EB65A020F15E06E5D02004AC8FC033F13F8030313804756
14557AD354>79 D<B712C016FC16FF17C017F083902680000113FE9238001FFF040713800401
145613C07013E0173FEF1FF0A2EF0FF8170718FC1703A218FEA21701A51703A218FCA2170718
1457F8170FEF1FF0A2EF3FE017FF4C13C004071380041F13004BB45A90B712F85F17C094C7FC
145816FC16C00180CAFCB3B1375275D149>I<913807FF80027F13F849B6FC010715C0011F15
1459F04915FC49819038FFF8004801C0130F4890C7EA03FC48481400D80FF8153C171C484815
14600C4992C7FC485AA3485AA77FA2123F7F7F6C7E7F6C7E7F6C13C06C13FC6CEBFF8015F86C
14616CEBFF806D14F06D14FC010714FF6D81D9007F80020F80020080030F7F03017F9238003F
1462FE160F707E7013808282EF7FC0A2173F18E0A2171FA8EF3FC0A30060EE7F80007016FF00
1463781700007E5DD87F804A5A486C4A5A01F8141F01FFEC7FF86C9039F003FFF0001F90B65A
146400075E6C93C7FCC66C5C011F14F8010114E09026001FFEC8FC33567BD33F>83
1465D<903803FF80011F13E090B512F8000380000F14FF481580D9FC0013C001E0137F0180EB
14663FE0001EC7EA1FF00018140F1210C8EA07F8A3ED03FCAAEC03FF91B5FC1307133F90B6FC
14674814830007EBE003380FFE00EA1FF8EA3FE05B485A90C7FC12FEA515076C140F6C7E6D13
14683F6D137F393FFC03FF90B6FC6C14FB6C14E36C14836CEBFC03C601C0C7FC26377AB537>
146997 D<EC1FFC91B512C0010314F0010F14FC4914FF49158090387FF0039039FF80007F48
147048C7EA1F00484814074848804991C7FC485A121F5B123F5BA248CAFCA412FEAB7E7EA37F
1471123FA26C7E7F000F16406D15C06C6C14036C6C14076D141F6C6C6C13FF6CEBE0076DB612
147280011FECFE006D5C010314F001001480DA1FF8C7FC2A377BB533>99
1473D<EE1FE0B3AEEC7F80903803FFF0010F13FC4913FF017F149F90B612DF489038F00FFF48
1474EB80034A7ED807FC7F4848147F49143F4848141FA2485A5BA2127F90C8FCA312FEAC127F
1475A46C7EA27F001F153F7F6C6C147F6D14FF6C6C5B6D5B6C6C6C5A6C9038E03FDF6C90B512
14769F6D141F6D13FE010F13F86D13E0010090C8FC2B567BD43B>I<EC7FC0903801FFF80107
147713FE011F7F498049809039FFC07FE0489038000FF0D803FC6D7E48481303496D7E484813
147800001F157E5B49143E003F153F90C87E5AA2127EEE0F80A2B8FCA600FCCAFCA37EA2127E
1479A3127F7E7FA26C7EA26C7E6D15806C6C14036C6C14076D141F6C6C6C13FF6CEBF00F6DB6
148012006D14FC010F5C010314E0010091C7FCEC1FF029377BB533>I<913801FFC0020F13F8
14815C147F91B5FC5B491300D907FC130802F01300495A495AA2495AA4137FB2B612FCA62600
14827F80C7FCB3B3AA25567ED523>I<DA3FC0EB1FC09139FFF001FF0103EBFC0F010FD9FF7F
148313E04991B5FC5B90267FE07FEBF0009126000FF8C7FC01FE6D5A48486D7E491301000381
1484491300A200078149147EA86D14FE00035DA26D130100015D6D13036C6C495A017F495A90
148538FFE07F4890B55A5E4892C8FC01E313FC01E013F00007EB3FC091CAFCA57F120313FC90
1486B612C06C15FE6C6F7E17E04816F80007824882D81FF8C7127F01E0EC07FF484802011380
14874848EC007F90C9123F18C000FE161FA6007FEE3F806D157F6D15FF6C6C4A1300D81FF8EC
148807FED80FFEEC1FFC3B07FFE001FFF86C90B65AC616C06D5D011F4AC7FC010314F0902600
14891FFEC8FC334E7DB439>I<B4FCB3AEEC0FF8EC7FFF49B512C0010714E04914F04914F890
1490383F807F90397E001FFC49130749EB03FE5B49130116FF497FA25BA490C8FCB3B0285577
1491D43B>I<EAFF80A9C7FCB2EA7F80B3B3B0094F78CE1B>I<EC3FE0A991C7FCB2EC1FE0B3B3
1492B3AAEC3FC0A20040137F0070EBFF80EA7801D8FF8F1300EBFFFEA26C5B001F5B000713E0
149338007F801B6787CE1E>I<12FFB3B3B3B3AD085577D41B>108 D<EC0FF8B4EB7FFF49B512
1494C0010714E04914F04914F890383F807F90397E001FFC49130749EB03FE5B49130116FF49
14957FA25BA490C8FCB3B0283577B43B>110 D<EC0FF091B5FC010314C0010F14F049804980
149690397FF00FFE9039FF8001FF4890C71380D803FCEC3FC04848EC1FE049140F4848EC07F0
1497A24848EC03F8491401003F16FCA248C912FEA3007E167E00FE167FAB6C16FF6C16FEA36D
14981401003F16FC6D1403001F16F86D14076C6CEC0FF0A26C6CEC1FE06C6CEC3FC001FF14FF
14996CD9C00313806CD9F00F13006DB55A011F14F86D5C010314C0010091C7FCEC1FF830377C
1500B539>I<EC1FF0B4EBFFFC010313FF010F804980017F8049C67F01FCEB3FF801F0EB0FFC
1501491307496D7E496D7E8190C8FCEE7F80A2EE3FC0A2161FA317E0160FAA161F17C0A3163F
15021780167FA2EEFF006D5B5E6D13036DEB0FFC6D495A6DEB7FF09039FE01FFE0017FB55A6D
15035C6D91C7FC01075B010113F89038003FC091C9FCB3A42B4C76B43B>I<EC03E000FE131F
1504147FEB01FF5B130F5B90383FFC0014E0EB7F8049C7FC6C5A5B5B5B5BA25BA25BA490C8FC
1505B3AC1B3577B427>114 D<903807FF80013F13F890B6FC4815C0000715E05AEBFC00D81F
1506E0EB0FC048481303491300160048C9FCA67FA26C7E13F0EA1FFCEBFFC06C13FE6CEBFFC0
15076C14F06C14FC6C6C7F6D7F01071480D9007F13C0020313E0EC007FED1FF0150FED07F8A2
15081503A60040EC07F012700078140F007E15E0D8FFC0133F9039FC01FFC090B612806C1500
1509001F5C00035CC66C13F0010790C7FC25377DB52C>I<EB7F80AFB71280A626007F80C7FC
1510B3B36E1340ED01C090383FE0039138F01FE091B5FC7F6D1480EDFE00010313F06D90C7FC
151123447EC229>I<B415FFB3B3A25DA25DA25D6D5B007F5C6D137F9038F803FE6CB55A5D6C
151214E06C14800003495AC601E01300283577B33B>I<00FE16FE7E6CED01FCA27F003FED03
1513F87F001F150717F06C7EEE0FE07F12076DEC1FC01203EE3F807F12016DEC7F00120016FE
1514137FA26E485A133F5E90381FC003A2010F5CECE0075EEB07F0150F01035C14F84B5A1301
151514FC010049C7FCA2147E157EA2EC3E7C143F141F5D140F5DA214075DA25D140FA25D141F
151692C8FC5CA2143E147E147C14FCA2495AA2383003F0EA3E07383FFFE05CA25C91C9FCEA07
1517FC2F4C7EB334>121 D<90397FC003FEA990CAFCACEC0FF091B5FC010314C0010F14F049
151880498090397FF00FFE9039FF8001FF4890C71380D803FCEC3FC04848EC1FE049140F4848
1519EC07F0A24848EC03F8491401003F16FCA248C912FEA3007E167E00FE167FAB6C16FF6C16
1520FEA36D1401003F16FC6D1403001F16F86D14076C6CEC0FF0A26C6CEC1FE06C6CEC3FC001
1521FF14FF6CD9C00313806CD9F00F13006DB55A011F14F86D5C010314C0010091C7FCEC1FF8
1522304C7CCA39>246 D E
1523%EndDVIPSBitmapFont
1524%DVIPSBitmapFont: Ft ecsi1200 12 8
1525/Ft 8 116 df<EA3FC0EA7F80A5EAFF00A20A0877871B>46 D<ED7F80913803FFF0020F
152613FC023F7F4A7F91B6128001031381903A07FC007FC04A133FD90FE0EB1FE04948130F49
15275AA249C7EA07F0137E13FE5B12015B1203A2485AA3485A17E0A249140F121FA44848EC1F
1528C0A448C8EA3F80A5EE7F0012FEA216FEA34B5AA34B5AA24B5AA24B5AA26C4A5A6C4A5A15
15297F6D49C7FC6C6C485A9038E007FC9038F81FF86CB55A6C5C6C5C6C91C8FCC613FCEB1FE0
15302C4577C231>48 D<ED03FE92381FFFC0037F13F04AB512E014075C91383FFC0391397FE0
15310060DAFF8013004990C8FCEB03FC495A495A5C131F495A495A91C9FC5B5B120149130800
153203903803FF80D9F81F13E00007017F7F49B57EEA0FF301F7809038EFE00F3A1FFF8003FE
1533EC0001498048487F5B5B5B007FED7F805BA24915005EA348C8FCA34B5AA35E1503A24B5A
1534A24B5A7E4B5A6D495A4B5A003F14FF6D4890C7FC6C6C485A9038F81FFC6CB512F06C5C6C
15355C6C91C8FC6C13FCEB1FE02C4577C231>54 D<49B612F04915FEEFFFC018F084498202F8
1536C76C7EEF0FFF0503138017004948ED7FC0A2F03FE0A34948151FA3183F19C0495A187F19
15378018FF49484A13004D5A17074D5AEF3FF849C8B45A040F13C091B75A4DC7FC17F84816E0
153894C8FC16FC9038FE0001484880A215008282484881A2163F83A24848141F83A2707EA248
15395A707EA21603484881A2160183A248486E7EA3717EA248C9FC717E3B4577C43F>82
1540D<EC0FFC91B51280010314C0011F14F04914F8A290397FE00FFC91380003FE1378016013
15410190C7FC16FF81A3ED01FEA5ED03FCEC0FFF49B5FC130F133F90B612F80003EBFC074813
154280380FFC00EA1FF0D83FC0EB0FF05B48C7FCA200FEEC1FE0A2153F7E15FFD9800313C038
15437FF01F90B6FCA26C143F6C9038FC7F806C13E0D803FEC8FC282F7AAD2F>97
1544D<EC07F8EC3FFE91B51280010314C04914E04914F090383FF81F90397FC007F89038FF80
1545039038FE0001485A4848EB00FC485AA2485A49147C121F5B48B612FC16F8A25AA3007EC9
1546FC12FEA8127FA36D14406C6CEB01C06D13076C6CEB3F80390FFC01FF90B6FC6C15006C14
1547FCC614F0013F1380D90FFCC7FC262F79AD2B>101 D<EB01FEA5EB03FCA4EB07F8A5EB0F
1548F0A5EB1FE0A5EB3FC0A4EB7F80A5EBFF00A5485AA4485AA5485AA5485AA5485AA4485AA5
1549485AA548C7FCA2174979C817>108 D<EC1FF891B5FC010314C0010F14F04914F84914F0
155090387FC01F9038FF000349EB00E0484814601600485AA47FA27FEBFFE06C13FEECFFC06C
155114F06D7F6D7F6D7F01077F1300020713801401EC007FA2153FA3ED7F00A21220003014FE
1552007C1301007F495A9038E01FF8B65A5D6C5C001F5C000749C7FC38007FE0252F7CAD25>
1553115 D E
1554%EndDVIPSBitmapFont
1555%DVIPSBitmapFont: Fu ecss2488 24.88 15
1556/Fu 15 122 df[<EAFFE0B3B3B3B3B3B3B3A490BB1280AA>73 140
1557108 267 102 76 D[<D8FFFE9A381FFFC06D65A36E64A36E99B5FCA26E63A201DF656E1B
15580301CF65A26E1B07A2D9C7FC515AA3D9C3FE515AA3D9C1FF515AA301C06D505AA26F1AFF
1559027F64A26F61023F64A26F61021F636F1907020F63A26F190F020763A26F191F0203636F
1560193FA26E6370187FA26E637018FF037F62A2705F033F97C7FC705FA2031F61701707A203
15610F6170170FA26F6C4D5AA203036170173FA26F6171167FA26F617116FF047F60715DA204
15623F95C8FC715DA2041F5F711507A2040F5F71150F04075F71151FA204035F71153FA2705F
156372147FA2705F7214FF057F5E725BA2053F93C9FC725BA2051F5D721307050F5DA272130F
156405075DA272131F05035D72133F715DA2F1807F715DA2F1C0FF067F5CA219E1063F91CAFC
1565A295381FF3FEA3060F5B19FFA2725BA2725BA3725BA3725B96CCFCA3>122
1566140 107 267 165 I[<95380FFFC04DB512FE050FECFFC0057F15F84CB712FE0407707E
1567041F17E0047F17F84BB912FE4B9126F8007F7F4B0280010780031F01FCC814E04B01E003
15681F7F4B018003077F4B48C900017F4A49707F4A01F0EF3FFF4A49717F4A49717F4A90CB00
1569037F4A48727F4A48727F4A48737E4B193F4949737E49884B854949737F4990CD6C7FA249
157048747F4948747FA24948757EA24948757E4A1B1F488AA24A1B0F488A4A87481F8091CF7E
1571A2481FC04988A2001F1FE0A24988A2003F1FF0A2491D7FA3007F1FF8A4491D3FA300FF1F
1572FCB06D1D7FA3007F1FF8A56D1DFFA2003F1FF0A36D64001F1FE0A26D64A26C1FC0A26E63
15736C1F806E63A26C1F006E63A26C6D515AA26C6D515AA26D6C515AA26D6C505BA26D6C505B
15746D6D4F5BA26D6D4F5B6F616D6D4F90C7FC6D6D4F5A6D646F19FF6E6C4E5B6E6C4E5B6E6D
15754D5B6E01E0051F5B6E6D4D5B6E6D4D90C8FC6E01FE4C485A6E6D4C5B6F01C0030F5B6F01
1576F0033F5B6F01FC92B55A0307D9FF80010714806F02F8017F91C9FC6F91B75A6F6C17F804
15771F17E00407178004014CCAFC706C15F8050F15C005014ACBFCDD000F13C0>118
1578146 118 270 139 79 D[<B912E018FF19E019FC19FF1AC01AF01AFC8601E0C96E7E0607
157980060080073F7F070F7F07037F07007F747E86080F13807413C07413E0A27413F0861CF8
15801B7FF33FFCA21B1F1CFEA21B0FA31CFFA287A763A21CFEA31B1FA21CFC1B3FA2F37FF81B
1581FF1CF0625013E0A25013C0501380083F130062505A07035B070F5B073F5B96B55A06075C
158295B65A90BA48C7FC621AF01AC097C8FC19FC19E096C9FC18E001E0CEFCB3B3B3A7>88
1583140 107 267 120 I[<933807FFF893B612E0030715FE033FEDFFC092B812F0020317FC
1584020F17FF4A18C0027F18F091BA12FC499126FC0007804902C0EB003F4949C812034901F0
158503005B4949161F49018016074948CA12034A17004948183C484918184A95C7FC485BA248
15865B91CEFC5A5BA2485AA4485AA97FA2121FA27FA26C7EA2806C7FA26C7F806C7F14FE6C7F
15876D7F6D13E015F86D13FE6DEBFFE06D14FC6DECFFC06D15FC6D6CECFF806E15F86EEDFF80
1588020716F0020116FC6E6C15FF031F16C0030382DB007F15F8040781DC007F8005076E7E05
15890081060F80060180F0003F070F7F737F07017F737F86081F1380A27413C0867413E0861C
1590F086A2F37FF8A31B3FA21CFC1B1FABF33FF8A4F37FF0A21BFF1CE062A200304F13C01278
1591007C4F1380007F6101C04E13006D4E5A01F8187FD8FFFE4E5A6D6C04035B02F04C5B6C01
1592FE041F5B001FD9FFC0037F5B6C02FC0203B55A0003DAFFF0013F91C7FCC692B75A6D6001
15931F18F001036001001880023F4CC8FC020716F8DA007F15E003074AC9FCDB001F13E0>86
1594146 120 270 105 83 D<ED7FFE021FB512E091B612F8010715FE013F8190B812C00003
159583000F834883DB00037F02E09038007FFE91C86C7ED80FF8030F138001E08101806F13C0
1596000EC9FC00087013E0CBFC19F0187FA2F03FF8A4F01FFCAFEF3FFF043FB5FC030FB6FC15
15977F0207B7FC141F91B8FC1303010F9138FC001F4991C7FC4913F090B512804801FCC8FC48
159813F04813C04890C9FC5B485A485A5B485A5BA212FF5BA4183FA36D167F18FF6C7E5F6D5D
15996D150FD83FFE5D6D6C147F6C01E00103B5FC02FE013F13DF6C90B7129F6CEEFE1F17FC6C
160016F06C16C06CEDFE00013F14F06D91C7FC010301C091C7FC3E5A75D85B>97
1601D<923803FF80033F13F892B512FE02036E7E020F15E0023F15F84A8191B77E49824949C6
1602804901E0011F7F49018001037F4990C77ED93FFC6E6C7E49486F7E4A151F49486F7E4849
160315074A6F7E4890C9FC4916010007717E5B000F84491880121F49173FA2484818C0191FA2
16045B127FA249EF0FE0A290BAFCBBFCA790CDFCA57FA3127FA37FA3123F7FA26C7EA36C7E7F
160512077F12037F6C6D17206E17606C6DEE01E06D6C16036E160F6D6CEE1FF06D6C167F6D6C
16066CEC01FF6D01E0140F03F8027F13E001019026FF800FB512C06D91B712006E5E6E16F802
16070F16E06E5E02014BC7FC6E6C14F8030F1480030001F0C8FC445A77D854>101
1608D[<EAFFE0B3B3B3A4EEFFF0030F13FF037F14E04AB612F84A81020F15FF4A16804A16C0
160991B812E001E1EBF00301E3902680003F13F04AC7000713F8D9E7F880D9EFF01400D9FFE0
1610ED7FFC5C4AED3FFE181F91C9FC49160FA24917FFA2845BA35BA45BB3B3B3A3>64
1611146 112 273 97 104 D[<EAFFE0B3B3B3B3B3B3B3B3A2>11 146
1612112 273 44 108 D<EEFFF0D8FFE0010F13FF037F14E04AB612F84A81020F15FF4A1680
16134A16C091B812E001E1EBF00301E3902680003F13F04AC7000713F8D9E7F880D9EFF01400
1614D9FFE0ED7FFC5C4AED3FFE181F91C9FC49160FA24917FFA2845BA35BA45BB3B3B3A34058
161570D761>110 D<EE7FF00307B5FC033F14E092B612F8020315FE020F6F7E4A82027F16F0
161691B87E49DA800F7F499026FC00017F4901E09038003FFF490180020F7F4948C800037F49
1617486F7F4A814948707E4948707E4A161F4849707E4890CA6C7E4917030007854983000F1A
1618804983A24848F07FC0A24848F03FE0A349181F007F1AF0A449180F00FF1AF8AD6D181FA2
1619007F1AF0A36D183FA2003F1AE0A26D187FA26C6CF0FFC0A26C6C4D1380A26D5F00071A00
16206D5F6C6D4C5A6C616E161F6C6D4C5A6D6C4C5A6E16FF6D6C4B5B6DB403075B6D01C0021F
16215B6D6D4A90C7FC6D01FC49B45A6D9026FF800F5B6D91B65A6E5E6E5E020F168002034BC8
1622FC020015F8033F14E0030791C9FC9238007FF04D5A78D85E>I<EE3FF8D8FFE00107B5FC
1623033F14C092B612F0020381020F81023F15FF4A8291B87E01E3EBF00301E7902680007F7F
1624D9EFFEC7000F7FD9FFF86E7F02E002017F4A804A6F7E91C9121F49834982497013808449
162518C084497013E0A2197F1AF0193FA3F11FF8A3190FA31AFCA21907AD190F1AF8A4191FA2
16261AF0193FA2197F1AE019FF1AC06D5EA26D4C1380606D4C1300A26D4C5A6D163F6E4B5A6E
16274A485A6E4A5B6E140FD9EFFC023F5BD9E7FF91B55A01E3D9E00F5C01E190B7C7FC01E05E
1628023F5D6E5D020715E06E1580020092C8FC031F13F8030113C092CBFCB3B3A3468070D761
1629>I<EC7FF0B3A7BAFCA9C7D87FF0C9FCB3B3B3A681A3023F16806F1401F007C06F141F18
16307F913A1FFF8001FFDCC01F13E06E90B6FCA26E1680F0FE006E15F86E15E06E92C7FC033F
163113F0DB0FFEC8FC3B717DEF44>116 D<D8FFE0EE07FFB3B3B3A860A360A260A2606D93B5
1632FC5F007F5E6D5D5F6DED3FF76CB4EDFFE702C0010313C76C01F8013F138791B712076C16
1633FE6C16F817E06C1680C6EDFE006D14F0011F1480010101F0C9FC405870D661>I<D8FFC0
1634F003FF7F007FF107FE7F003F190F6D19FCA2001FF11FF87F000F193F6D19F012076DF07F
1635E0A26C19FF6E18C07E6E4C13807E6E5E1B00137F6E4C5A133F6E160F011F60804F5A130F
16366E163F010760806D4D5A81A26D4D5A816D4C5B81147F4E90C7FC81023F5D6F5D141F6F4A
16375A140FA26F4A5A14076F4A5A80A26E6D495AA2705C6E15FFA26F6C485BA2DB3FF091C8FC
16385F151F04F85B1707DB0FFC5BA20307130F04FE5B15034D5A16FF814D5A6F13BF60EE7FFF
1639A2608295C9FC82A2705AA25F1607A24C5AA25F161FA24C5AA25F167FA24C5AA294CAFC5D
1640A24B5AA25E1507A24B5AA24B5AA24B5AA24B5AA24B5A001C5B261FE00790CBFC90B6FC5D
16415D5D7E15E05D00035C26000FFCCCFC50807DD657>121 D E
1642%EndDVIPSBitmapFont
1643end
1644%%EndProlog
1645%%BeginSetup
1646%%Feature: *Resolution 600dpi
1647TeXDict begin
1648%%PaperSize: A4
1649 end
1650%%EndSetup
1651%%Page: 1 1
1652TeXDict begin 1 0 bop 0 83 3901 9 v 1890 351 a Fu(Python)64
1653b(Op)5 b(enSSL)64 b(Manual)3443 520 y Ft(Release)33 b(0.6)3189
1654874 y Fs(Ma)m(rtin)k(Sj\366gren)3286 1229 y Fr(14th)28
1655b(Marc)n(h)e(2005)3301 1375 y Fq(ma)n(rtin@strakt.com)1781
16561597 y Fp(Abstract)208 1741 y Fo(This)32 b(mo)r(dule)f(is)h(a)g(rather)
1657g(thin)f(wrapp)r(er)h(around)g(\(a)g(subset)f(of)6 b(\))32
1658b(the)g(Op)r(enSSL)e(library)-6 b(.)52 b(With)32 b(thin)f(wrapp)r(er)
1659208 1833 y(I)d(mean)h(that)f(a)i(lot)f(of)h(the)f(ob)t(ject)h(metho)r
1660(ds)e(do)h(nothing)g(more)g(than)g(calling)h(a)g(corresp)r(onding)g
1661(function)f(in)g(the)208 1924 y(Op)r(enSSL)24 b(library)-6
1662b(.)0 2198 y Fs(Contents)0 2381 y Fn(1)77 b(In)m(tro)s(duction)3201
1663b(2)0 2564 y(2)77 b(Building)30 b(and)i(Installing)2765
1664b(2)125 2663 y Fr(2.1)83 b(Building)28 b(the)g(Mo)r(dule)g(on)f(a)g
1665(Unix)h(System)87 b(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
1666(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
1667134 b(2)125 2763 y(2.2)83 b(Building)28 b(the)g(Mo)r(dule)g(on)f(a)g
1668(Windo)n(ws)g(System)59 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
1669h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
1670b(3)0 2946 y Fn(3)77 b Fm(OpenSSL)28 b Fn(\026)33 b(Python)f(in)m
1671(terface)h(to)e(Op)s(enSSL)2030 b(3)125 3045 y Fr(3.1)83
1672b Fm(crypto)26 b Fr(\026)h(Generic)g(cryptographic)f(mo)r(dule)79
1673b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
1674h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(3)315
16753145 y(X509)27 b(ob)5 b(jects)73 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h
1676(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
1677h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
1678(.)h(.)134 b(5)315 3244 y(X509Name)27 b(ob)5 b(jects)57
1679b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
1680f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
1681(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)315 3344 y(X509Req)27
1682b(ob)5 b(jects)60 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
1683(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
1684f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
1685b(6)315 3444 y(X509Store)26 b(ob)5 b(jects)78 b(.)41
1686b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
1687(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
1688f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)315 3543 y(PKey)28 b(ob)5
1689b(jects)58 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
1690(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
1691f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
1692b(7)315 3643 y(PK)n(CS7)27 b(ob)5 b(jects)59 b(.)41 b(.)h(.)f(.)h(.)g
1693(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
1694h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
1695(.)h(.)f(.)h(.)134 b(7)315 3743 y(PK)n(CS12)27 b(ob)5
1696b(jects)81 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
1697(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
1698f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315
16993842 y(X509Extension)27 b(ob)5 b(jects)102 b(.)41 b(.)h(.)f(.)h(.)f(.)h
1700(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
1701f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
1702b(7)315 3942 y(Netscap)r(eSPKI)28 b(ob)5 b(jects)58 b(.)42
1703b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
1704(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
1705f(.)h(.)f(.)h(.)134 b(7)125 4041 y(3.2)83 b Fm(rand)26
1706b Fr(\026)i(An)g(in)n(terface)f(to)g(the)h(Op)r(enSSL)g(pseudo)f
1707(random)g(n)n(um)n(b)r(er)g(generator)50 b(.)41 b(.)h(.)f(.)h(.)g(.)f
1708(.)h(.)f(.)h(.)f(.)h(.)134 b(8)125 4141 y(3.3)83 b Fm(SSL)27
1709b Fr(\026)g(An)i(in)n(terface)d(to)i(the)g(SSL-sp)r(eci\034c)f(parts)g
1710(of)h(Op)r(enSSL)64 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
1711h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(8)315 4241 y(Con)n(text)28
1712b(ob)5 b(jects)98 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
1713(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
1714f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
1715b(10)315 4340 y(Connection)27 b(ob)5 b(jects)108 b(.)42
1716b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
1717(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
1718h(.)f(.)h(.)f(.)h(.)93 b(11)0 4523 y Fn(4)77 b(In)m(ternals)3310
1719b(13)125 4623 y Fr(4.1)83 b(Exceptions)i(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g
1720(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
1721h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
1722(.)h(.)f(.)h(.)93 b(13)125 4722 y(4.2)83 b(Callbac)n(ks)68
1723b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
1724g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
1725(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
1726b(13)125 4822 y(4.3)83 b(A)n(cessing)27 b(So)r(c)n(k)n(et)g(Metho)r(ds)
172782 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
1728(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
1729f(.)h(.)f(.)h(.)93 b(14)p 0 4969 V eop end
1730%%Page: 2 2
1731TeXDict begin 2 1 bop 0 85 a Fs(1)114 b(Intro)s(duction)0
1732314 y Fr(The)41 b(reason)f(this)i(mo)r(dule)g(exists)f(at)g(all)g(is)g
1733(that)h(the)g(SSL)f(supp)r(ort)g(in)h(the)g(so)r(c)n(k)n(et)e(mo)r
1734(dule)i(in)f(the)h(Python)g(2.1)0 414 y(distribution)28
1735b(\(whic)n(h)f(is)h(what)f(w)n(e)h(used,)f(of)h(course)e(I)i(cannot)f
1736(sp)r(eak)g(for)g(later)g(v)n(ersions\))f(is)h(sev)n(erely)f(limited.)0
1737561 y(When)g(asking)e(ab)r(out)i(SSL)f(on)g(the)h(comp.lang.p)n(ython)e
1738(newsgroup)g(\(or)h(on)g(p)n(ython-list@p)n(ython.org\))e(p)r(eople)j
1739(usually)0 660 y(p)r(oin)n(ted)37 b(y)n(ou)f(to)g(the)h(M2Crypto)f(pac)
1740n(k)-5 b(age.)62 b(The)37 b(M2Crypto.SSL)e(mo)r(dule)i(do)r(es)g
1741(implemen)n(t)g(a)f(lot)h(of)f(Op)r(enSSL's)0 760 y(functionalit)n(y)c
1742(but)g(unfortunately)f(its)h(error)d(handling)j(system)f(do)r(es)g(not)
1743h(seem)f(to)h(b)r(e)g(\034nished,)h(esp)r(ecially)e(for)g(non-)0
1744860 y(blo)r(c)n(king)f(I/O.)g(I)g(think)i(that)f(m)n(uc)n(h)f(of)h(the)
1745g(reason)e(for)h(this)h(is)g(that)g(M2Crypto)2659 830
1746y Fl(1)2725 860 y Fr(is)g(dev)n(elop)r(ed)f(using)h(SWIG)3647
1747830 y Fl(2)3684 860 y Fr(.)g(This)0 959 y(mak)n(es)22
1748b(it)i(a)n(wkw)n(ard)d(to)j(create)e(functions)i(that)f(e.g.)35
1749b(can)23 b(return)g(b)r(oth)h(an)f(in)n(teger)g(and)g(NULL)g(since)h
1750(\(as)f(far)f(as)h(I)h(kno)n(w\))0 1059 y(y)n(ou)30 b(basically)g
1751(write)g(C)h(functions)g(and)g(SWIG)g(mak)n(es)f(wrapp)r(er)f
1752(functions)i(that)h(parses)d(the)i(Python)g(argumen)n(t)f(list)0
17531159 y(and)d(calls)g(y)n(our)g(C)g(function,)h(and)g(\034nally)f
1754(transforms)f(y)n(our)g(return)i(v)-5 b(alue)27 b(to)g(a)h(Python)g(ob)
17555 b(ject.)0 1480 y Fs(2)114 b(Building)38 b(and)f(Installing)0
17561709 y Fr(These)27 b(instructions)g(can)g(also)g(b)r(e)h(found)g(in)g
1757(the)g(\034le)f Fm(INSTALL)p Fr(.)0 1856 y(I)j(ha)n(v)n(e)f(tested)h
1758(this)h(on)f(Debian)g(Lin)n(ux)g(systems)f(\(w)n(o)r(o)r(dy)h(and)g
1759(sid\),)h(Solaris)e(2.6)g(and)h(2.7.)43 b(Others)30 b(ha)n(v)n(e)f
1760(successfully)0 1956 y(compiled)e(it)h(on)g(Windo)n(ws)f(and)g(NT.)0
17612235 y Fk(2.1)97 b(Building)32 b(the)h(Mo)s(dule)f(on)g(a)h(Unix)f
1762(System)0 2436 y Fr(p)n(yOp)r(enSSL)27 b(uses)h(distutils,)g(so)f
1763(there)g(really)f(shouldn't)i(b)r(e)g(an)n(y)f(problems.)36
1764b(T)-7 b(o)27 b(build)h(the)g(library:)236 2674 y Fj(python)41
1765b(setup.py)g(build)0 2962 y Fr(If)30 b(y)n(our)f(Op)r(enSSL)h(header)f
1766(\034les)h(aren't)f(in)h Fm(/usr/include)p Fr(,)c(y)n(ou)j(ma)n(y)g
1767(need)h(to)g(supply)g(the)g Fm(-I)f Fr(\035ag)h(to)f(let)i(the)f(setup)
17680 3061 y(script)25 b(kno)n(w)g(where)f(to)i(lo)r(ok.)35
1769b(The)25 b(same)g(go)r(es)g(for)f(the)i(libraries)e(of)h(course,)g(use)
1770g(the)h Fm(-L)f Fr(\035ag.)35 b(Note)25 b(that)h Fm(build)d
1771Fr(w)n(on't)0 3161 y(accept)k(these)h(\035ags,)e(so)h(y)n(ou)g(ha)n(v)n
1772(e)f(to)i(run)f(\034rst)h Fm(build_ext)23 b Fr(and)28
1773b(then)g Fm(build)p Fr(!)35 b(Example:)236 3399 y Fj(python)41
1774b(setup.py)g(build_ext)g(-I/usr/local/ssl/include)j
1775(-L/usr/local/ssl/lib)236 3490 y(python)d(setup.py)g(build)0
17763777 y Fr(No)n(w)27 b(y)n(ou)f(should)h(ha)n(v)n(e)f(a)h(directory)f
1777(called)h Fm(OpenSSL)d Fr(that)k(con)n(tains)e(e.g.)36
1778b Fm(SSL.so)25 b Fr(and)i Fm(__init__.py)c Fr(somewhere)j(in)0
17793877 y(the)i(build)g(dicrectory)-7 b(,)26 b(so)h(just:)236
17804115 y Fj(python)41 b(setup.py)g(install)0 4402 y Fr(If)32
1781b(y)n(ou,)f(for)g(some)f(arcane)g(reason,)g(don't)i(w)n(an)n(t)e(the)i
1782(mo)r(dule)f(to)g(app)r(ear)f(in)i(the)f Fm(site-packages)26
1783b Fr(directory)-7 b(,)31 b(use)g(the)0 4502 y Fm(--prefix)24
1784b Fr(option.)0 4649 y(Y)-7 b(ou)28 b(can,)f(of)g(course,)g(do)236
17854887 y Fj(python)41 b(setup.py)g(--help)0 5174 y Fr(to)27
1786b(\034nd)h(out)g(more)f(ab)r(out)g(ho)n(w)g(to)h(use)f(the)h(script.)p
17870 5243 1560 4 v 92 5297 a Fi(1)127 5321 y Fh(See)c Fq(http://www.p)r
1788(ost1.com/home/ngps/m2/)92 5377 y Fi(2)127 5400 y Fh(See)g
1789Fq(http://swig.sourcefo)n(rge.net/)p 0 5549 3901 4 v
17900 5649 a Fg(2)2928 b(2)83 b(Building)27 b(and)g(Installing)p
1791eop end
1792%%Page: 3 3
1793TeXDict begin 3 2 bop 0 83 a Fk(2.2)97 b(Building)32
1794b(the)h(Mo)s(dule)f(on)g(a)h(Windo)m(ws)f(System)0 283
1795y Fr(Big)26 b(thanks)g(to)h(Itamar)e(Sh)n(tull-T)-7 b(rauring)25
1796b(and)i(Oleg)e(Orlo)n(v)g(for)h(their)g(help)h(with)g(Windo)n(ws)f
1797(build)h(instructions.)36 b(Same)0 383 y(as)27 b(for)g(Unix)h(systems,)
1798f(w)n(e)g(ha)n(v)n(e)f(to)i(separate)e(the)i Fm(build_ext)c
1799Fr(and)j(the)h Fm(build)p Fr(.)0 530 y(Building)f(the)h(library:)236
1800768 y Fj(setup.py)41 b(build_ext)g(-I)f(...\\openssl\\inc32)j(-L)d
1801(...\\openssl\\out32dll)236 860 y(setup.py)h(build)0
18021147 y Fr(Where)27 b Fm(...\\openssl)c Fr(is)28 b(of)f(course)g(the)h
1803(lo)r(cation)e(of)i(y)n(our)e(Op)r(enSSL)i(installation.)0
18041294 y(Installation)f(is)g(the)h(same)f(as)g(for)g(Unix)h(systems:)236
18051532 y Fj(setup.py)41 b(install)0 1819 y Fr(And)28 b(similarily)-7
1806b(,)27 b(y)n(ou)g(can)g(do)236 2057 y Fj(setup.py)41
1807b(--help)0 2344 y Fr(to)27 b(get)h(more)f(information.)0
18082666 y Fs(3)114 b Ff(OpenSSL)36 b Fs(\026)h(Python)h(interface)f(to)h
1809(Op)s(enSSL)0 2895 y Fr(This)25 b(pac)n(k)-5 b(age)24
1810b(pro)n(vides)g(a)h(high-lev)n(el)g(in)n(terface)f(to)i(the)g
1811(functions)f(in)h(the)g(Op)r(enSSL)f(library)-7 b(.)35
1812b(The)26 b(follo)n(wing)e(mo)r(dules)0 2995 y(are)j(de\034ned:)0
18133142 y Fm(crypto)208 3241 y Fr(Generic)g(cryptographic)e(mo)r(dule.)37
1814b(Note)28 b(that)g(if)g(an)n(ything)f(is)g(incomplete,)h(this)g(mo)r
1815(dule)f(is!)0 3388 y Fm(rand)208 3488 y Fr(An)h(in)n(terface)e(to)i
1816(the)g(Op)r(enSSL)g(pseudo)f(random)f(n)n(um)n(b)r(er)i(generator.)0
18173635 y Fm(SSL)208 3734 y Fr(An)g(in)n(terface)e(to)i(the)g(SSL-sp)r
1818(eci\034c)f(parts)g(of)h(Op)r(enSSL.)0 4014 y Fk(3.1)97
1819b Fe(crypto)34 b Fk(\026)e(Generic)i(cryptographic)e(mo)s(dule)0
18204214 y Fm(X509Type)208 4314 y Fr(A)27 b(Python)h(t)n(yp)r(e)g(ob)5
1821b(ject)28 b(represen)n(ting)d(the)j(X509)f(ob)5 b(ject)27
1822b(t)n(yp)r(e.)0 4461 y Fm(X509\(\))208 4561 y Fr(F)-7
1823b(actory)26 b(function)i(that)g(creates)e(an)i(X509)e(ob)5
1824b(ject.)0 4707 y Fm(X509NameType)208 4807 y Fr(A)27 b(Python)h(t)n(yp)r
1825(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(X509Name)f(ob)5
1826b(ject)27 b(t)n(yp)r(e.)0 4954 y Fm(X509Name\()p Fd(x509name)6
1827b Fm(\))208 5054 y Fr(F)-7 b(actory)26 b(function)i(that)g(creates)e(a)
1828h(cop)n(y)g(of)34 b Fd(x509name)6 b Fr(.)0 5200 y Fm(X509ReqType)208
18295300 y Fr(A)27 b(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28
1830b(represen)n(ting)d(the)j(X509Req)f(ob)5 b(ject)27 b(t)n(yp)r(e.)p
18310 5549 3901 4 v 0 5649 a Fg(2.2)82 b(Building)27 b(the)g(Mo)r(dule)g
1832(on)g(a)g(Windo)n(ws)g(System)2164 b(3)p eop end
1833%%Page: 4 4
1834TeXDict begin 4 3 bop 0 83 a Fm(X509Req\(\))208 183 y
1835Fr(F)-7 b(actory)26 b(function)i(that)g(creates)e(an)i(X509Req)e(ob)5
1836b(ject.)0 330 y Fm(X509StoreType)208 429 y Fr(A)27 b(Python)h(t)n(yp)r
1837(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(X509Store)e(ob)5
1838b(ject)27 b(t)n(yp)r(e.)0 576 y Fm(PKeyType)208 676 y
1839Fr(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
1840(PKey)g(ob)5 b(ject)27 b(t)n(yp)r(e.)0 823 y Fm(PKey\(\))208
1841922 y Fr(F)-7 b(actory)26 b(function)i(that)g(creates)e(a)h(PKey)h(ob)5
1842b(ject.)0 1069 y Fm(PKCS7Type)208 1169 y Fr(A)27 b(Python)h(t)n(yp)r(e)
1843g(ob)5 b(ject)28 b(represen)n(ting)d(the)j(PK)n(CS7)f(ob)5
1844b(ject)28 b(t)n(yp)r(e.)0 1316 y Fm(PKCS12Type)208 1415
1845y Fr(A)f(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
1846(PK)n(CS12)f(ob)5 b(ject)27 b(t)n(yp)r(e.)0 1562 y Fm(X509ExtensionTyp)
1847o(e)208 1662 y Fr(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28
1848b(represen)n(ting)d(the)j(X509Extension)f(ob)5 b(ject)27
1849b(t)n(yp)r(e.)0 1808 y Fm(X509Extension\()p Fd(typ)l(ename,)e(critic)l
1850(al,)31 b(value)6 b Fm(\))208 1908 y Fr(F)-7 b(actory)26
1851b(function)i(that)g(creates)e(a)h(X509Extension)g(ob)5
1852b(ject.)0 2055 y Fm(NetscapeSPKIType)208 2155 y Fr(A)27
1853b(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d(the)j
1854(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(t)n(yp)r(e.)0 2316
1855y Fm(NetscapeSPKI\()p Fc([)p Fd(enc)11 b Fc(])p Fm(\))208
18562415 y Fr(F)-7 b(actory)29 b(function)i(that)g(creates)e(a)h(Netscap)r
1857(eSPKI)g(ob)5 b(ject.)45 b(If)31 b(the)g Fd(enc)k Fr(argumen)n(t)30
1858b(is)g(presen)n(t,)h(it)f(should)h(b)r(e)f(a)208 2515
1859y(base64-enco)r(ded)25 b(string)i(represen)n(ting)f(a)h(Netscap)r
1860(eSPKI)h(ob)5 b(ject,)27 b(as)g(returned)g(b)n(y)g(the)h
1861Fm(b64_encode)c Fr(metho)r(d.)0 2662 y Fm(FILETYPE_PEM)0
18622762 y(FILETYPE_ASN1)208 2861 y Fr(File)j(t)n(yp)r(e)h(constan)n(ts.)0
18633008 y Fm(TYPE_RSA)0 3108 y(TYPE_DSA)208 3207 y Fr(Key)e(t)n(yp)r(e)i
1864(constan)n(ts.)0 3354 y Fn(exception)k Fm(Error)208 3454
1865y Fr(Generic)27 b(exception)g(used)g(in)h(the)g Fm(crypto)d
1866Fr(mo)r(dule.)0 3601 y Fm(dump_certificate)o(\()p Fd(t)o(yp)l(e,)g(c)l
1867(ert)8 b Fm(\))208 3700 y Fr(Dump)28 b(the)g(certi\034cate)f
1868Fd(c)l(ert)35 b Fr(in)n(to)27 b(a)h(bu\033er)f(string)g(enco)r(ded)h
1869(with)g(the)g(t)n(yp)r(e)f Fd(typ)l(e)6 b Fr(.)0 3847
1870y Fm(dump_certificate)o(_r)o(equ)o(es)o(t\()o Fd(typ)l(e,)25
1871b(r)l(e)l(q)7 b Fm(\))208 3947 y Fr(Dump)28 b(the)g(certi\034cate)f
1872(request)g Fd(r)l(e)l(q)35 b Fr(in)n(to)27 b(a)g(bu\033er)h(string)f
1873(enco)r(ded)g(with)h(the)g(t)n(yp)r(e)g Fd(typ)l(e)6
1874b Fr(.)0 4108 y Fm(dump_privatekey\()o Fd(typ)l(e,)25
1875b(pkey)7 b Fc([)p Fd(,)31 b(cipher,)h(p)l(assphr)l(ase)19
1876b Fc(])p Fm(\))208 4208 y Fr(Dump)39 b(the)f(priv)-5
1877b(ate)38 b(k)n(ey)h Fd(pkey)46 b Fr(in)n(to)38 b(a)g(bu\033er)g(string)
1878g(enco)r(ded)g(with)g(the)h(t)n(yp)r(e)f Fd(typ)l(e)6
1879b Fr(,)42 b(optionally)37 b(\(if)45 b Fd(typ)l(e)g Fr(is)208
18804307 y Fm(FILETYPE_PEM)p Fr(\))22 b(encrypting)27 b(it)h(using)h
1881Fd(cipher)38 b Fr(and)27 b Fd(p)l(assphr)l(ase)6 b Fr(.)208
18824440 y Fd(p)l(assphr)l(ase)35 b Fr(m)n(ust)28 b(b)r(e)g(either)f(a)g
1883(string)g(or)g(a)g(callbac)n(k)f(for)h(pro)n(viding)f(the)i(pass)f
1884(phrase.)0 4587 y Fm(load_certificate)o(\()p Fd(t)o(yp)l(e,)e(bu\033er)
18859 b Fm(\))208 4687 y Fr(Load)26 b(a)h(certi\034cate)g(\(X509\))g(from)h
1886(the)f(string)h Fd(bu\033er)37 b Fr(enco)r(ded)27 b(with)h(the)g(t)n
1887(yp)r(e)g Fd(typ)l(e)6 b Fr(.)0 4834 y Fm(load_certificate)o(_r)o(equ)o
1888(es)o(t\()o Fd(typ)l(e,)25 b(bu\033er)9 b Fm(\))208 4933
1889y Fr(Load)26 b(a)h(certi\034cate)g(request)g(\(X509Req\))g(from)g(the)h
1890(string)g Fd(bu\033er)37 b Fr(enco)r(ded)27 b(with)h(the)g(t)n(yp)r(e)g
1891Fd(typ)l(e)6 b Fr(.)0 5099 y Fm(load_privatekey\()o Fd(typ)l(e,)25
1892b(bu\033er)9 b Fc([)p Fd(,)29 b(p)l(assphr)l(ase)20 b
1893Fc(])p Fm(\))208 5199 y Fr(Load)43 b(a)h(priv)-5 b(ate)44
1894b(k)n(ey)f(\(PKey\))i(from)f(the)h(string)g Fd(bu\033er)53
1895b Fr(enco)r(ded)44 b(with)h(the)f(t)n(yp)r(e)h Fd(typ)l(e)51
1896b Fr(\(m)n(ust)45 b(b)r(e)f(one)g(of)208 5298 y Fm(FILETYPE_PEM)22
1897b Fr(and)28 b Fm(FILETYPE_ASN1)p Fr(\).)p 0 5549 3901
18984 v 0 5649 a Fg(4)2239 b(3)83 b Fm(OpenSSL)24 b Fg(\026)k(Python)f
1899(interface)h(to)f(Op)r(enSSL)p eop end
1900%%Page: 5 5
1901TeXDict begin 5 4 bop 208 83 a Fd(p)l(assphr)l(ase)35
1902b Fr(m)n(ust)28 b(b)r(e)g(either)f(a)g(string)g(or)g(a)g(callbac)n(k)f
1903(for)h(pro)n(viding)f(the)i(pass)f(phrase.)0 230 y Fm
1904(load_pkcs7_data\()o Fd(typ)l(e,)e(bu\033er)9 b Fm(\))208
1905330 y Fr(Load)26 b(pk)n(cs7)h(data)g(from)g(the)h(string)g
1906Fd(bu\033er)36 b Fr(enco)r(ded)28 b(with)g(the)g(t)n(yp)r(e)g
1907Fd(typ)l(e)6 b Fr(.)0 491 y Fm(load_pkcs12\()p Fd(bu\033er)j
1908Fc([)p Fd(,)24 b(p)l(assphr)l(ase)c Fc(])p Fm(\))208
1909590 y Fr(Load)30 b(pk)n(cs12)f(data)h(from)h(the)g(string)g
1910Fd(bu\033er)9 b Fr(.)47 b(If)31 b(the)h(pk)n(cs12)d(structure)h(is)h
1911(encrypted,)g(a)g Fd(p)l(assphr)l(ase)39 b Fr(m)n(ust)31
1912b(b)r(e)208 690 y(included.)0 953 y Fg(X509)c(objects)0
19131154 y Fr(X509)f(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e
1914(metho)r(ds:)0 1300 y Fm(get_issuer\(\))208 1400 y Fr(Return)f(a)g
1915Fd(b)l(orr)l(owe)l(d)j(r)l(efer)l(enc)l(e)g(to)f(a)h(X509Name)h(obje)l
1916(ct)f(r)l(epr)l(esenting)f(the)h(issuer)f(of)i(the)e(c)l(erti\034c)l
1917(ate.)38 b(When)28 b(the)208 1500 y(c)l(orr)l(esp)l(onding)i(X509)h(or)
1918f(X509R)l(e)l(q)g(obje)l(ct)h(is)f(destr)l(oye)l(d,)h(this)f(obje)l(ct)
1919h(wil)t(l)f(b)l(e)g(invalid!)0 1646 y Fm(get_pubkey\(\))208
19201746 y Fr(Return)d(a)g(PKey)h(ob)5 b(ject)27 b(represen)n(ting)f(the)i
1921(public)g(k)n(ey)f(of)g(the)h(certi\034cate.)0 1893 y
1922Fm(get_serial_numbe)o(r\()o(\))208 1993 y Fr(Return)f(the)h
1923(certi\034cate)f(serial)g(n)n(um)n(b)r(er.)0 2139 y Fm(get_subject\(\))
1924208 2239 y Fr(Return)32 b(a)g Fd(b)l(orr)l(owe)l(d)k(r)l(efer)l(enc)l
1925(e)e(to)h(a)f(X509Name)i(obje)l(ct)f(r)l(epr)l(esenting)f(the)h(subje)l
1926(ct)f(of)h(the)f(c)l(erti\034c)l(ate.)53 b(When)208 2339
1927y(the)29 b(c)l(orr)l(esp)l(onding)i(X509)g(or)f(X509R)l(e)l(q)g(obje)l
1928(ct)h(is)f(destr)l(oye)l(d,)h(this)f(obje)l(ct)g(wil)t(l)h(b)l(e)f
1929(invalid!)0 2486 y Fm(get_version\(\))208 2585 y Fr(Return)d(the)h
1930(certi\034cate)f(v)n(ersion.)0 2732 y Fm(gmtime_adj_notBe)o(fo)o(re\()o
1931Fd(time)6 b Fm(\))208 2832 y Fr(A)n(djust)28 b(the)g(timestamp)g(\(in)g
1932(GMT\))g(when)g(the)f(certi\034cate)g(starts)g(b)r(eing)h(v)-5
1933b(alid.)0 2979 y Fm(gmtime_adj_notAf)o(te)o(r\()p Fd(t)o(ime)6
1934b Fm(\))208 3078 y Fr(A)n(djust)28 b(the)g(timestamp)g(\(in)g(GMT\))g
1935(when)g(the)f(certi\034cate)g(stops)g(b)r(eing)h(v)-5
1936b(alid.)0 3225 y Fm(has_expired\(\))208 3325 y Fr(Chec)n(ks)32
1937b(the)h(certi\034cate's)f(time)i(stamp)f(against)f(curren)n(t)g(time.)
193854 b(Returns)33 b(true)g(if)g(the)h(certi\034cate)e(has)h(expired)208
19393424 y(and)27 b(false)g(otherwise.)0 3571 y Fm(set_issuer\()p
1940Fd(issuer)9 b Fm(\))208 3671 y Fr(Set)28 b(the)f(issuer)g(of)h(the)g
1941(certi\034cate)f(to)g Fd(issuer)9 b Fr(.)0 3818 y Fm(set_pubkey\()p
1942Fd(pkey)e Fm(\))208 3917 y Fr(Set)28 b(the)f(public)h(k)n(ey)f(of)h
1943(the)g(certi\034cate)f(to)g Fd(pkey)7 b Fr(.)0 4064 y
1944Fm(set_serial_numbe)o(r\()o Fd(serialno)e Fm(\))208 4164
1945y Fr(Set)28 b(the)f(serial)g(n)n(um)n(b)r(er)g(of)h(the)g
1946(certi\034cate)f(to)g Fd(serialno)5 b Fr(.)0 4311 y Fm(set_subject\()p
1947Fd(subje)l(ct)j Fm(\))208 4410 y Fr(Set)28 b(the)f(sub)5
1948b(ject)28 b(of)g(the)g(certi\034cate)f(to)g Fd(subje)l(ct)8
1949b Fr(.)0 4557 y Fm(set_version\()p Fd(version)e Fm(\))208
19504657 y Fr(Set)28 b(the)f(certi\034cate)g(v)n(ersion)f(to)i
1951Fd(version)6 b Fr(.)0 4804 y Fm(sign\()p Fd(pkey,)29
1952b(digest)8 b Fm(\))208 4903 y Fr(Sign)22 b(the)h(certi\034cate,)f
1953(using)g(the)h(k)n(ey)g Fd(pkey)31 b Fr(and)22 b(the)h(message)e
1954(digest)h(algorithm)f(iden)n(ti\034ed)i(b)n(y)f(the)h(string)f
1955Fd(digest)8 b Fr(.)0 5050 y Fm(subject_name_has)o(h\()o(\))208
19565150 y Fr(Return)27 b(the)h(hash)f(of)h(the)g(certi\034cate)f(sub)5
1957b(ject.)0 5297 y Fm(digest\()p Fd(digest_name)h Fm(\))208
19585396 y Fr(Return)27 b(a)g(digest)h(of)f(the)h(certi\034cate,)f(using)g
1959(the)h Fd(digest_name)35 b Fr(metho)r(d.)p 0 5549 3901
19604 v 0 5649 a Fg(3.1)82 b Fm(crypto)25 b Fg(\026)j(Generic)g
1961(cryptographic)e(mo)r(dule)2234 b(5)p eop end
1962%%Page: 6 6
1963TeXDict begin 6 5 bop 0 83 a Fm(add_extensions\()p Fd(ex)o(tensions)7
1964b Fm(\))208 183 y Fr(A)n(dd)27 b(the)h(extensions)f(in)h(the)g
1965(sequence)f Fd(extensions)34 b Fr(to)27 b(the)h(certi\034cate.)0
1966446 y Fg(X509Name)e(objects)0 646 y Fr(X509Name)g(ob)5
1967b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(mem)n(b)r(ers:)0
1968793 y Fm(countryName)208 893 y Fr(The)h(coun)n(try)g(of)g(the)h(en)n
1969(tit)n(y)-7 b(.)37 b Fm(C)27 b Fr(ma)n(y)g(b)r(e)h(used)g(as)f(an)g
1970(alias)f(for)h Fm(countryName)p Fr(.)0 1040 y Fm(stateOrProvinceN)o(am)
1971o(e)208 1139 y Fr(The)g(state)h(or)e(pro)n(vince)g(of)i(the)g(en)n(tit)
1972n(y)-7 b(.)37 b Fm(ST)27 b Fr(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g
1973(for)g Fm(stateOrProvince)o(Na)o(me)p Fr(\267)0 1286
1974y Fm(localityName)208 1386 y Fr(The)g(lo)r(calit)n(y)g(of)h(the)f(en)n
1975(tit)n(y)-7 b(.)37 b Fm(L)28 b Fr(ma)n(y)e(b)r(e)i(used)g(as)f(an)g
1976(alias)g(for)g Fm(localityName)p Fr(.)0 1532 y Fm(organizationName)208
19771632 y Fr(The)g(organization)e(name)j(of)f(the)h(en)n(tit)n(y)-7
1978b(.)37 b Fm(O)27 b Fr(ma)n(y)g(b)r(e)h(used)g(as)e(an)i(alias)e(for)h
1979Fm(organizationName)p Fr(.)0 1779 y Fm(organizationalUn)o(it)o(Nam)o(e)
1980208 1879 y Fr(The)g(organizational)e(unit)j(of)g(the)g(en)n(tit)n(y)-7
1981b(.)36 b Fm(OU)27 b Fr(ma)n(y)g(b)r(e)h(used)g(as)f(an)g(alias)f(for)h
1982Fm(organizationalUni)o(tN)o(am)o(e)p Fr(.)0 2025 y Fm(commonName)208
19832125 y Fr(The)g(common)g(name)h(of)f(the)h(en)n(tit)n(y)-7
1984b(.)37 b Fm(CN)27 b Fr(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
1985Fm(commonName)p Fr(.)0 2272 y Fm(emailAddress)208 2372
1986y Fr(The)g(e-mail)g(address)f(of)i(the)g(en)n(tit)n(y)-7
1987b(.)0 2635 y Fg(X509Req)26 b(objects)0 2835 y Fr(X509Req)g(ob)5
1988b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)0
19892982 y Fm(get_pubkey\(\))208 3082 y Fr(Return)h(a)g(PKey)h(ob)5
1990b(ject)27 b(represen)n(ting)f(the)i(public)g(k)n(ey)f(of)g(the)h
1991(certi\034cate)f(request.)0 3228 y Fm(get_subject\(\))208
19923328 y Fr(Return)32 b(a)g Fd(b)l(orr)l(owe)l(d)k(r)l(efer)l(enc)l(e)e
1993(to)h(a)f(X509Name)i(obje)l(ct)f(r)l(epr)l(esenting)f(the)h(subje)l(ct)
1994f(of)h(the)f(c)l(erti\034c)l(ate.)53 b(When)208 3428
1995y(the)29 b(c)l(orr)l(esp)l(onding)i(X509)g(or)f(X509R)l(e)l(q)g(obje)l
1996(ct)h(is)f(destr)l(oye)l(d,)h(this)f(obje)l(ct)g(wil)t(l)h(b)l(e)f
1997(invalid!)0 3575 y Fm(set_pubkey\()p Fd(pkey)7 b Fm(\))208
19983674 y Fr(Set)28 b(the)f(public)h(k)n(ey)f(of)h(the)g(certi\034cate)f
1999(request)g(to)g Fd(pkey)7 b Fr(.)0 3821 y Fm(sign\()p
2000Fd(pkey,)29 b(digest)8 b Fm(\))208 3921 y Fr(Sign)36
2001b(the)g(certi\034cate)g(request,)h(using)f(the)g(k)n(ey)h
2002Fd(pkey)45 b Fr(and)36 b(the)g(message)f(digest)g(algorithm)g(iden)n
2003(ti\034ed)i(b)n(y)f(the)208 4020 y(string)28 b Fd(digest)8
2004b Fr(.)0 4167 y Fm(verify\()p Fd(pkey)f Fm(\))208 4267
2005y Fr(V)-7 b(erify)27 b(a)g(certi\034cate)g(request)g(using)g(the)h
2006(public)g(k)n(ey)g Fd(pkey)7 b Fr(.)0 4530 y Fg(X509Sto)n(re)26
2007b(objects)0 4730 y Fr(The)i(X509Store)d(ob)5 b(ject)28
2008b(has)f(curren)n(tly)f(just)i(one)g(metho)r(d:)0 4877
2009y Fm(add_cert\()p Fd(c)l(ert)8 b Fm(\))208 4977 y Fr(A)n(dd)27
2010b(the)h(certi\034cate)f Fd(c)l(ert)36 b Fr(to)27 b(the)h(certi\034cate)
2011f(store.)p 0 5549 3901 4 v 0 5649 a Fg(6)2239 b(3)83
2012b Fm(OpenSSL)24 b Fg(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p
2013eop end
2014%%Page: 7 7
2015TeXDict begin 7 6 bop 0 83 a Fg(PKey)27 b(objects)0 283
2016y Fr(The)h(PKey)f(ob)5 b(ject)27 b(has)g(the)h(follo)n(wing)f(metho)r
2017(ds:)0 430 y Fm(bits\(\))208 530 y Fr(Return)g(the)h(n)n(um)n(b)r(er)f
2018(of)h(bits)g(of)f(the)h(k)n(ey)-7 b(.)0 677 y Fm(generate_key\()p
2019Fd(typ)l(e,)25 b(bits)7 b Fm(\))208 776 y Fr(Generate)22
2020b(a)h(public/priv)-5 b(ate)23 b(k)n(ey)f(pair)h(of)g(the)h(t)n(yp)r(e)f
2021Fd(typ)l(e)30 b Fr(\(one)23 b(of)30 b Fm(TYPE_RSA)19
2022b Fr(and)24 b Fm(TYPE_DSA)p Fr(\))c(with)j(the)h(size)f
2023Fd(bits)7 b Fr(.)0 923 y Fm(type\(\))208 1023 y Fr(Return)27
2024b(the)h(t)n(yp)r(e)g(of)f(the)h(k)n(ey)-7 b(.)0 1286
2025y Fg(PK)n(CS7)27 b(objects)0 1486 y Fr(PK)n(CS7)g(ob)5
2026b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)f(metho)r(ds:)0
20271633 y Fm(type_is_signed\(\))208 1733 y Fr(FIXME)0 1880
2028y Fm(type_is_envelope)o(d\()o(\))208 1979 y Fr(FIXME)0
20292126 y Fm(type_is_signedAn)o(dE)o(nve)o(lo)o(pe)o(d\(\))208
20302226 y Fr(FIXME)0 2373 y Fm(type_is_data\(\))208 2472
2031y Fr(FIXME)0 2619 y Fm(get_type_name\(\))208 2719 y Fr(Get)h(the)f(t)n
2032(yp)r(e)h(name)g(of)f(the)h(PK)n(CS7.)0 2982 y Fg(PK)n(CS12)e(objects)0
20333182 y Fr(PK)n(CS12)g(ob)5 b(jects)28 b(ha)n(v)n(e)e(the)i(follo)n
2034(wing)e(metho)r(ds:)0 3329 y Fm(get_certificate\()o(\))208
20353429 y Fr(Return)h(certi\034cate)g(p)r(ortion)g(of)h(the)g(PK)n(CS12)e
2036(structure.)0 3576 y Fm(get_privatekey\(\))208 3675 y
2037Fr(Return)h(priv)-5 b(ate)27 b(k)n(ey)g(p)r(ortion)g(of)h(the)g(PK)n
2038(CS12)e(structure)0 3822 y Fm(get_ca_certifica)o(te)o(s\(\))208
20393922 y Fr(Return)k(CA)g(certi\034cates)f(within)i(the)f(PK)n(CS12)f(ob)
20405 b(ject)30 b(as)f(a)g(tuple.)45 b(Returns)30 b(None)g(if)g(no)g(CA)g
2041(certi\034cates)f(are)208 4022 y(presen)n(t.)0 4285 y
2042Fg(X509Extension)c(objects)0 4485 y Fr(X509Extension)h(ob)5
2043b(jects)27 b(curren)n(tly)g(only)g(ha)n(v)n(e)f(one)i(metho)r(d:)0
20444632 y Fm(get_critical\(\))208 4732 y Fr(Return)f(the)h(critical)f
2045(\034eld)h(of)f(the)h(extension)f(ob)5 b(ject.)0 4995
2046y Fg(Netscap)r(eSPKI)27 b(objects)0 5195 y Fr(Netscap)r(eSPKI)h(ob)5
2047b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)e(metho)r(ds:)p
20480 5549 3901 4 v 0 5649 a Fg(3.1)82 b Fm(crypto)25 b Fg(\026)j(Generic)g
2049(cryptographic)e(mo)r(dule)2234 b(7)p eop end
2050%%Page: 8 8
2051TeXDict begin 8 7 bop 0 83 a Fm(b64_encode\(\))208 183
2052y Fr(Return)27 b(a)g(base64-enco)r(ded)f(string)h(represen)n(tation)e
2053(of)j(the)g(ob)5 b(ject.)0 330 y Fm(get_pubkey\(\))208
2054429 y Fr(Return)27 b(the)h(public)g(k)n(ey)f(of)h(ob)5
2055b(ject.)0 576 y Fm(set_pubkey\()p Fd(key)i Fm(\))208
2056676 y Fr(Set)28 b(the)f(public)h(k)n(ey)f(of)h(the)g(ob)5
2057b(ject)27 b(to)h Fd(key)7 b Fr(.)0 823 y Fm(sign\()p
2058Fd(key,)29 b(digest_name)6 b Fm(\))208 922 y Fr(Sign)27
2059b(the)h(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(using)g(the)h(giv)n(en)f
2060Fd(key)35 b Fr(and)28 b Fd(digest_name)6 b Fr(.)0 1069
2061y Fm(verify\()p Fd(key)h Fm(\))208 1169 y Fr(V)-7 b(erify)27
2062b(the)h(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(using)g(the)h(giv)n(en)f
2063Fd(key)7 b Fr(.)0 1448 y Fk(3.2)97 b Fe(rand)34 b Fk(\026)e(An)h
2064(interface)g(to)g(the)g(Op)s(enSSL)f(pseudo)h(random)g(numb)s(er)g
2065(generato)m(r)0 1649 y Fr(This)28 b(mo)r(dule)f(handles)h(the)f(Op)r
2066(enSSL)h(pseudo)f(random)g(n)n(um)n(b)r(er)g(generator)f(\(PRNG\))j
2067(and)e(declares)f(the)i(follo)n(wing:)0 1796 y Fm(add\()p
2068Fd(string,)g(entr)l(opy)7 b Fm(\))208 1895 y Fr(Mix)22
2069b(b)n(ytes)g(from)g Fd(string)30 b Fr(in)n(to)22 b(the)h(PRNG)h(state.)
207035 b(The)22 b Fd(entr)l(opy)30 b Fr(argumen)n(t)22 b(is)g(\(the)h(lo)n
2071(w)n(er)e(b)r(ound)i(of)6 b(\))23 b(an)f(estimate)208
20721995 y(of)f(ho)n(w)g(m)n(uc)n(h)h(randomness)e(is)h(con)n(tained)g(in)h
2073Fd(string)7 b Fr(,)23 b(measured)e(in)h(b)n(ytes.)34
2074b(F)-7 b(or)21 b(more)g(information,)h(see)g(e.g.)34
2075b(RF)n(C)208 2094 y(1750.)0 2241 y Fm(egd\()p Fd(p)l(ath)6
2076b Fc([)p Fd(,)29 b(bytes)19 b Fc(])p Fm(\))208 2341 y
2077Fr(Query)29 b(the)j(En)n(trop)n(y)e(Gathering)g(Daemon)1629
20782311 y Fl(3)1697 2341 y Fr(on)h(so)r(c)n(k)n(et)f Fd(p)l(ath)38
2079b Fr(for)30 b Fd(bytes)38 b Fr(b)n(ytes)31 b(of)g(random)f(data)g(and)h
2080(and)g(uses)208 2441 y Fm(add)26 b Fr(to)h(seed)h(the)g(PRNG.)g(The)g
2081(default)g(v)-5 b(alue)27 b(of)34 b Fd(bytes)h Fr(is)27
2082b(255.)0 2602 y Fm(load_file\()p Fd(p)l(ath)6 b Fc([)p
2083Fd(,)26 b(bytes)19 b Fc(])p Fm(\))208 2701 y Fr(Read)29
2084b Fd(bytes)38 b Fr(b)n(ytes)30 b(\(or)f(all)h(of)g(it,)i(if)37
2085b Fd(bytes)g Fr(is)31 b(negativ)n(e\))e(of)h(data)g(from)g(the)g
2086(\034le)h Fd(p)l(ath)37 b Fr(to)30 b(seed)g(the)h(PRNG.)g(The)208
20872801 y(default)d(v)-5 b(alue)27 b(of)34 b Fd(bytes)h
2088Fr(is)27 b(-1.)0 2948 y Fm(screen\(\))208 3048 y Fr(A)n(dd)g(the)h
2089(curren)n(t)f(con)n(ten)n(ts)g(of)g(the)h(screen)f(to)g(the)h(PRNG)h
2090(state.)37 b(A)-9 b(v)k(ailabilit)n(y:)36 b(Windo)n(ws.)0
20913194 y Fm(seed\()p Fd(string)7 b Fm(\))208 3294 y Fr(This)27
2092b(is)h(equiv)-5 b(alen)n(t)27 b(to)g(calling)h Fm(add)f
2093Fr(with)h Fd(entr)l(opy)35 b Fr(as)27 b(the)h(length)f(of)h(the)g
2094(string.)0 3441 y Fm(status\(\))208 3541 y Fr(Returns)f(true)g(if)i
2095(the)e(PRNG)i(has)e(b)r(een)h(seeded)f(with)h(enough)f(data,)g(and)h
2096(false)f(otherwise.)0 3687 y Fm(write_file\()p Fd(p)l(ath)6
2097b Fm(\))208 3787 y Fr(W)-7 b(rite)34 b(a)g(n)n(um)n(b)r(er)g(of)h
2098(random)e(b)n(ytes)h(\(curren)n(tly)g(1024\))f(to)h(the)h(\034le)f
2099Fd(p)l(ath)6 b Fr(.)59 b(This)34 b(\034le)h(can)f(then)g(b)r(e)h(used)g
2100(with)208 3887 y Fm(load_file)23 b Fr(to)28 b(seed)f(the)h(PRNG)h
2101(again.)0 4166 y Fk(3.3)97 b Fe(SSL)33 b Fk(\026)f(An)h(interface)h(to)
2102e(the)h(SSL-sp)s(eci\034c)h(pa)m(rts)f(of)f(Op)s(enSSL)0
21034367 y Fr(This)c(mo)r(dule)f(handles)h(things)f(sp)r(eci\034c)h(to)f
2104(SSL.)h(There)f(are)f(t)n(w)n(o)h(ob)5 b(jects)27 b(de\034ned:)38
2105b(Con)n(text,)27 b(Connection.)0 4514 y Fm(SSLv2_METHOD)0
21064613 y(SSLv3_METHOD)0 4713 y(SSLv23_METHOD)0 4813 y(TLSv1_METHOD)208
21074912 y Fr(These)g(constan)n(ts)f(represen)n(t)h(the)h(di\033eren)n(t)f
2108(SSL)h(metho)r(ds)g(to)f(use)h(when)f(creating)g(a)g(con)n(text)g(ob)5
2109b(ject.)0 5059 y Fm(VERIFY_NONE)0 5159 y(VERIFY_PEER)p
21100 5220 1560 4 v 92 5274 a Fi(3)127 5297 y Fh(See)24 b
2111Fq(http://www.lotha)n(r.com/tech/crypto/)p 0 5549 3901
21124 v 0 5649 a Fg(8)2239 b(3)83 b Fm(OpenSSL)24 b Fg(\026)k(Python)f
2113(interface)h(to)f(Op)r(enSSL)p eop end
2114%%Page: 9 9
2115TeXDict begin 9 8 bop 0 83 a Fm(VERIFY_FAIL_IF_N)o(O_)o(PEE)o(R_)o(CE)o
2116(RT)208 183 y Fr(These)27 b(constan)n(ts)f(represen)n(t)h(the)h(v)n
2117(eri\034cation)e(mo)r(de)h(used)h(b)n(y)f(the)h(Con)n(text)f(ob)5
2118b(ject's)27 b Fm(set_verify)d Fr(metho)r(d.)0 330 y Fm(FILETYPE_PEM)0
2119429 y(FILETYPE_ASN1)208 529 y Fr(File)41 b(t)n(yp)r(e)g(constan)n(ts)f
2120(used)h(with)g(the)h Fm(use_certificate)o(_f)o(ile)34
2121b Fr(and)41 b Fm(use_privatekey_f)o(il)o(e)35 b Fr(metho)r(ds)41
2122b(of)208 628 y(Con)n(text)27 b(ob)5 b(jects.)0 775 y
2123Fm(OP_SINGLE_DH_USE)0 875 y(OP_EPHEMERAL_RSA)0 975 y(OP_NO_SSLv2)0
21241074 y(OP_NO_SSLv3)0 1174 y(OP_NO_TLSv1)208 1273 y Fr(Constan)n(ts)30
2125b(used)i(with)g Fm(set_options)26 b Fr(of)32 b(Con)n(text)f(ob)5
2126b(jects.)48 b Fm(OP_SINGLE_DH_USE)25 b Fr(means)31 b(to)g(alw)n(a)n(ys)
2127f(create)g(a)208 1373 y(new)19 b(k)n(ey)f(when)h(using)g(ephemeral)f
2128(Di\036e-Hellman.)34 b Fm(OP_EPHEMERAL_RSA)13 b Fr(means)18
2129b(to)h(alw)n(a)n(ys)e(use)i(ephemeral)g(RSA)208 1473
2130y(k)n(eys)f(when)h(doing)f(RSA)i(op)r(erations.)33 b
2131Fm(OP_NO_SSLv2)p Fr(,)16 b Fm(OP_NO_SSLv3)f Fr(and)k
2132Fm(OP_NO_TLSv1)14 b Fr(means)19 b(to)g(disable)f(those)208
21331572 y(sp)r(eci\034c)29 b(proto)r(cols.)39 b(This)29
2134b(is)g(in)n(teresting)g(if)g(y)n(ou're)f(using)g(e.g.)41
2135b Fm(SSLv23_METHOD)24 b Fr(to)29 b(get)g(an)f(SSLv2-compatible)208
21361672 y(handshak)n(e,)e(but)i(don't)g(w)n(an)n(t)f(to)g(use)h(SSLv2.)0
21371819 y Fm(ContextType)208 1918 y Fr(A)f(Python)h(t)n(yp)r(e)g(ob)5
2138b(ject)28 b(represen)n(ting)d(the)j(Con)n(text)g(ob)5
2139b(ject)27 b(t)n(yp)r(e.)0 2065 y Fm(Context\()p Fd(metho)l(d)9
2140b Fm(\))208 2165 y Fr(F)-7 b(actory)34 b(function)i(that)g(creates)f(a)
2141g(new)h(Con)n(text)f(ob)5 b(ject)36 b(giv)n(en)e(an)i(SSL)g(metho)r(d.)
214261 b(The)36 b(metho)r(d)g(should)g(b)r(e)208 2265 y Fm(SSLv2_METHOD)p
2143Fr(,)22 b Fm(SSLv3_METHOD)p Fr(,)h Fm(SSLv23_METHOD)f
2144Fr(or)27 b Fm(TLSv1_METHOD)p Fr(.)0 2411 y Fm(ConnectionType)208
21452511 y Fr(A)g(Python)h(t)n(yp)r(e)g(ob)5 b(ject)28 b(represen)n(ting)d
2146(the)j(Connection)f(ob)5 b(ject)28 b(t)n(yp)r(e.)0 2658
2147y Fm(Connection\()p Fd(c)l(ontext,)c(so)l(cket)8 b Fm(\))208
21482758 y Fr(F)-7 b(actory)26 b(fucnction)i(that)g(creates)e(a)h(new)h
2149(Connection)f(ob)5 b(ject)27 b(giv)n(en)g(an)g(SSL)h(con)n(text)f(and)h
2150(a)f(so)r(c)n(k)n(et)3538 2727 y Fl(4)3603 2758 y Fr(ob)5
2151b(ject.)0 2904 y Fn(exception)32 b Fm(Error)208 3004
2152y Fr(This)i(exception)g(is)h(used)f(as)g(a)h(base)e(class)h(for)g(the)h
2153(other)f(SSL-related)g(exceptions,)i(but)f(ma)n(y)f(also)f(b)r(e)i
2154(raised)208 3104 y(directly)-7 b(.)208 3236 y(Whenev)n(er)36
2155b(this)h(exception)g(is)g(raised)f(directly)-7 b(,)40
2156b(it)d(has)g(a)f(list)i(of)f(error)e(messages)h(from)g(the)i(Op)r
2157(enSSL)f(error)208 3336 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
2158(tuple)h Fm(\()p Fd(lib)5 b Fm(,)44 b Fd(function)6 b
2159Fm(,)43 b Fd(r)l(e)l(ason)6 b Fm(\))p Fr(.)70 b(Here)38
2160b Fd(lib)5 b Fr(,)43 b Fd(function)h Fr(and)39 b Fd(r)l(e)l(ason)45
2161b Fr(are)37 b(all)208 3436 y(strings,)26 b(describing)h(where)g(and)g
2162(what)h(the)g(problem)f(is.)36 b(See)28 b Fd(err)p Fr(\(3\))g(for)f
2163(more)g(information.)0 3583 y Fn(exception)32 b Fm(ZeroReturnError)208
21643682 y Fr(This)g(exception)g(matc)n(hes)g(the)h(error)d(return)i(co)r
2165(de)h Fm(SSL_ERROR_ZERO_)o(RE)o(TUR)o(N)p Fr(,)26 b(and)33
2166b(is)f(raised)f(when)i(the)g(SSL)208 3782 y(Connection)c(has)g(b)r(een)
2167h(closed.)43 b(In)29 b(SSL)h(3.0)f(and)h(TLS)g(1.0,)f(this)h(only)f(o)r
2168(ccurs)g(if)h(a)g(closure)e(alert)h(has)g(o)r(ccurred)208
21693881 y(in)g(the)g(proto)r(col,)f(i.e.)41 b(the)29 b(connection)f(has)g
2170(b)r(een)i(closed)e(cleanly)-7 b(.)40 b(Note)29 b(that)g(this)g(do)r
2171(es)f(not)h(necessarily)e(mean)208 3981 y(that)g(the)h(transp)r(ort)f
2172(la)n(y)n(er)f(\(e.g.)36 b(a)28 b(so)r(c)n(k)n(et\))e(has)h(b)r(een)h
2173(closed.)208 4114 y(It)k(ma)n(y)f(seem)h(a)f(little)i(strange)e(that)h
2174(this)g(is)g(an)g(exception,)g(but)h(it)f(do)r(es)g(matc)n(h)g(an)f
2175Fm(SSL_ERROR)e Fr(co)r(de,)j(and)g(is)208 4214 y(v)n(ery)26
2176b(con)n(v)n(enien)n(t.)0 4360 y Fn(exception)32 b Fm(WantReadError)208
21774460 y Fr(The)i(op)r(eration)e(did)j(not)f(complete;)j(the)d(same)g
2178(I/O)f(metho)r(d)h(should)g(b)r(e)g(called)g(again)f(later,)i(with)f
2179(the)h(same)208 4560 y(argumen)n(ts.)g(An)n(y)28 b(I/O)e(metho)r(d)i
2180(can)f(lead)h(to)f(this)h(since)f(new)h(handshak)n(es)e(can)h(o)r(ccur)
2181g(at)g(an)n(y)g(time.)0 4707 y Fn(exception)32 b Fm(WantWriteError)208
21824806 y Fr(See)27 b Fm(WantReadError)p Fr(.)0 4953 y Fn(exception)32
2183b Fm(WantX509LookupE)o(rr)o(or)208 5053 y Fr(The)24 b(op)r(eration)g
2184(did)h(not)g(complete)f(b)r(ecause)g(an)h(application)f(callbac)n(k)f
2185(has)h(ask)n(ed)g(to)g(b)r(e)h(called)g(again.)34 b(The)25
2186b(I/O)208 5152 y(metho)r(d)f(should)h(b)r(e)f(called)g(again)g(later,)g
2187(with)h(the)g(same)e(argumen)n(ts.)35 b(Note:)g(This)24
2188b(w)n(on't)h(o)r(ccur)e(in)i(this)g(v)n(ersion,)p 0 5222
21891560 4 v 92 5275 a Fi(4)127 5299 y Fh(A)n(ctually)-6
2190b(,)25 b(all)e(that)j(is)d(required)j(is)e(an)g(ob)t(ject)h(that)h
2191Fb(b)l(ehaves)e Fh(lik)n(e)g(a)h(so)r(c)n(k)n(et,)g(y)n(ou)g(could)g
2192(ev)n(en)g(use)f(\034les,)g(ev)n(en)i(though)f(it'd)f(b)r(e)h(tric)n
2193(ky)g(to)0 5377 y(get)g(the)f(handshak)n(es)h(righ)n(t!)p
21940 5549 3901 4 v 0 5649 a Fg(3.3)82 b Fm(SSL)26 b Fg(\026)i(An)g
2195(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)
21961652 b(9)p eop end
2197%%Page: 10 10
2198TeXDict begin 10 9 bop 208 83 a Fr(as)26 b(there)i(are)e(no)i(suc)n(h)f
2199(callbac)n(ks)f(in)i(this)f(v)n(ersion.)0 230 y Fn(exception)32
2200b Fm(SysCallError)208 330 y Fr(The)25 b Fm(SysCallError)20
2201b Fr(o)r(ccurs)k(when)i(there's)e(an)h(I/O)g(error)e(and)i(Op)r
2202(enSSL's)g(error)e(queue)i(do)r(es)g(not)g(con)n(tain)g(an)n(y)208
2203429 y(information.)59 b(This)36 b(can)f(mean)g(t)n(w)n(o)g(things:)52
2204b(An)36 b(error)d(in)j(the)g(transp)r(ort)e(proto)r(col,)i(or)f(an)g
2205(end)h(of)f(\034le)h(that)208 529 y(violates)26 b(the)i(proto)r(col.)36
2206b(The)27 b(parameter)f(to)i(the)g(exception)f(is)g(alw)n(a)n(ys)f(a)h
2207(pair)g Fm(\()p Fd(errnum)6 b Fm(,)42 b Fd(errstr)9 b
2208Fm(\))p Fr(.)0 792 y Fg(Context)27 b(objects)0 992 y
2209Fr(Con)n(text)g(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e
2210(metho)r(ds:)0 1139 y Fm(check_privatekey)o(\(\))208
22111255 y Fr(Chec)n(k)k(if)i(the)g(priv)-5 b(ate)31 b(k)n(ey)f(\(loaded)h
2212(with)h Fm(use_privatekey)p Fc([)p Fm(_)o(fi)o(le)11
2213b Fc(])p Fr(\))26 b(matc)n(hes)k(the)i(certi\034cate)f(\(loaded)g(with)
2214208 1383 y Fm(use_certificate)o Fc([)p Fm(_)o(fil)o(e)11
2215b Fc(])p Fr(\).)31 b(Returns)d(true)f(if)h(they)g(matc)n(h,)f(false)h
2216(otherwise.)0 1530 y Fm(get_app_data\(\))208 1630 y Fr(Retriev)n(e)e
2217(application)h(data)g(as)g(set)h(b)n(y)g Fm(set_app_data)p
2218Fr(.)0 1776 y Fm(get_cert_store\(\))208 1876 y Fr(Retriev)n(e)34
2219b(the)i(certi\034cate)f(store)f(\(a)h(X509Store)f(ob)5
2220b(ject\))35 b(that)h(the)f(con)n(text)g(uses.)60 b(This)35
2221b(can)g(b)r(e)h(used)f(to)g(add)208 1976 y("trusted")26
2222b(certi\034cates)h(without)h(using)f(the.)37 b Fm(load_verify_loca)o
2223(tio)o(ns)o(\(\))21 b Fr(metho)r(d.)0 2123 y Fm(get_timeout\(\))208
22242222 y Fr(Retriev)n(e)26 b(session)h(timeout,)h(as)f(set)g(b)n(y)i
2225Fm(set_timeout)p Fr(.)j(The)c(default)g(is)f(300)f(seconds.)0
22262369 y Fm(get_verify_depth)o(\(\))208 2469 y Fr(Retriev)n(e)g(the)i
2227(Con)n(text)f(ob)5 b(ject's)28 b(v)n(erify)e(depth,)j(as)d(set)i(b)n(y)
2228g Fm(set_verify_depth)p Fr(.)0 2616 y Fm(get_verify_mode\()o(\))208
22292715 y Fr(Retriev)n(e)e(the)i(Con)n(text)f(ob)5 b(ject's)28
2230b(v)n(erify)e(mo)r(de,)i(as)f(set)h(b)n(y)g Fm(set_verify_mode)p
2231Fr(.)0 2862 y Fm(load_client_ca\()p Fd(p)l(em\034le)6
2232b Fm(\))208 2962 y Fr(Read)33 b(a)g(\034le)h(with)g(PEM-formatted)g
2233(certi\034cates)f(that)h(will)g(b)r(e)g(sen)n(t)f(to)h(the)g(clien)n(t)
2234f(when)h(requesting)f(a)g(clien)n(t)208 3061 y(certi\034cate.)0
22353208 y Fm(load_verify_loca)o(ti)o(ons)o(\()p Fd(p)l(em\034le)6
2236b Fm(\))208 3308 y Fr(Sp)r(ecify)24 b(where)f(CA)g(certi\034cates)g
2237(for)g(v)n(eri\034cation)f(purp)r(oses)h(are)f(lo)r(cated.)35
2238b(These)23 b(are)g(trusted)g(certi\034cates.)35 b(Note)208
22393407 y(that)27 b(the)h(certi\034cates)f(ha)n(v)n(e)f(to)i(b)r(e)g(in)g
2240(PEM)g(format.)0 3554 y Fm(load_tmp_dh\()p Fd(dh\034le)6
2241b Fm(\))208 3654 y Fr(Load)26 b(parameters)g(for)h(Ephemeral)g
2242(Di\036e-Hellman)h(from)g Fd(dh\034le)6 b Fr(.)0 3801
2243y Fm(set_app_data\()p Fd(data)g Fm(\))208 3900 y Fr(Asso)r(ciate)25
2244b Fd(data)33 b Fr(with)27 b(this)f(Con)n(text)f(ob)5
2245b(ject.)36 b Fd(data)e Fr(can)25 b(b)r(e)i(retriev)n(ed)d(later)i
2246(using)f(the)i Fm(get_app_data)21 b Fr(metho)r(d.)0 4047
2247y Fm(set_cipher_list\()o Fd(ciphers)7 b Fm(\))208 4147
2248y Fr(Set)28 b(the)g(list)h(of)f(ciphers)f(to)h(b)r(e)g(used)g(in)g
2249(this)h(con)n(text.)37 b(See)28 b(the)h(Op)r(enSSL)f(man)n(ual)f(for)h
2250(more)f(information)g(\(e.g.)208 4247 y(ciphers\(1\)\))0
22514393 y Fm(set_info_callbac)o(k\()o Fd(c)l(al)t(lb)l(ack)9
2252b Fm(\))208 4493 y Fr(Set)33 b(the)f(information)g(callbac)n(k)f(to)i
2253Fd(c)l(al)t(lb)l(ack)9 b Fr(.)54 b(This)32 b(function)h(will)g(b)r(e)g
2254(called)f(from)g(time)h(to)g(time)g(during)f(SSL)208
22554593 y(handshak)n(es.)208 4726 y Fd(c)l(al)t(lb)l(ack)j
2256Fr(should)24 b(tak)n(e)g(three)g(argumen)n(ts:)34 b(a)25
2257b(Connection)f(ob)5 b(ject)24 b(and)g(t)n(w)n(o)g(in)n(tegers.)35
2258b(The)24 b(\034rst)h(in)n(teger)e(sp)r(eci\034es)208
22594825 y(where)29 b(in)i(the)g(SSL)g(handshak)n(e)e(the)i(function)g(w)n
2260(as)e(called,)i(and)f(the)h(other)f(the)h(return)f(co)r(de)g(from)g(a)g
2261(\(p)r(ossibly)208 4925 y(failed\))d(in)n(ternal)g(function)h(call.)0
22625072 y Fm(set_options\()p Fd(options)7 b Fm(\))208 5171
2263y Fr(A)n(dd)27 b(SSL)h(options.)36 b(Options)27 b(y)n(ou)g(ha)n(v)n(e)g
2264(set)g(b)r(efore)g(are)g(not)h(cleared!)208 5304 y(This)f(metho)r(d)h
2265(should)f(b)r(e)h(used)g(with)g(the)g Fm(OP_*)e Fr(constan)n(ts.)p
22660 5549 3901 4 v 0 5649 a Fg(10)2197 b(3)83 b Fm(OpenSSL)24
2267b Fg(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
2268end
2269%%Page: 11 11
2270TeXDict begin 11 10 bop 0 90 a Fm(set_passwd_cb\()p Fd(c)l(al)t(lb)l
2271(ack)9 b Fc([)p Fd(,)25 b(user)l(data)19 b Fc(])p Fm(\))208
2272189 y Fr(Set)42 b(the)g(passphrase)f(callbac)n(k)f(to)i
2273Fd(c)l(al)t(lb)l(ack)9 b Fr(.)82 b(This)42 b(function)h(will)f(b)r(e)g
2274(called)g(when)g(a)g(priv)-5 b(ate)42 b(k)n(ey)f(with)h(a)208
2275289 y(passphrase)25 b(is)j(loaded.)208 422 y Fd(c)l(al)t(lb)l(ack)54
2276b Fr(should)43 b(tak)n(e)f(a)h(b)r(o)r(olean)g(argumen)n(t)f
2277Fd(r)l(ep)l(e)l(at)51 b Fr(and)43 b(an)g(arbitrary)e(argumen)n(t)h
2278Fd(data)51 b Fr(and)43 b(return)g(the)208 521 y(passphrase)33
2279b(en)n(tered)i(b)n(y)f(the)i(user.)59 b(If)42 b Fd(r)l(ep)l(e)l(at)h
2280Fr(is)36 b(true)f(then)g Fd(c)l(al)t(lb)l(ack)46 b Fr(should)35
2281b(ask)g(for)f(the)i(passphrase)d(t)n(wice)208 621 y(and)d(mak)n(e)g
2282(sure)g(that)h(the)g(t)n(w)n(o)f(en)n(tries)g(are)g(equal.)46
2283b(The)31 b Fd(data)38 b Fr(argumen)n(t)29 b(is)i(the)g
2284Fd(user)l(data)38 b Fr(v)-5 b(ariable)29 b(passed)h(to)208
2285721 y(the)j Fm(set_passwd_cb)27 b Fr(metho)r(d.)54 b(If)33
2286b(an)g(error)e(o)r(ccurs,)j Fd(c)l(al)t(lb)l(ack)43 b
2287Fr(should)33 b(return)f(a)h(false)g(v)-5 b(alue)32 b(\(e.g.)53
2288b(an)33 b(empt)n(y)208 820 y(string\).)0 967 y Fm(set_session_id\()p
2289Fd(n)o(ame)6 b Fm(\))208 1067 y Fr(Set)33 b(the)h(con)n(text)f
2290Fd(name)39 b Fr(within)34 b(whic)n(h)f(a)g(session)f(can)h(b)r(e)h
2291(reused)e(for)h(this)g(Con)n(text)g(ob)5 b(ject.)54 b(This)33
2292b(is)g(needed)208 1166 y(when)e(doing)g(session)g(resumption,)h(b)r
2293(ecause)g(there)f(is)h(no)f(w)n(a)n(y)g(for)g(a)g(stored)g(session)f
2294(to)i(kno)n(w)f(whic)n(h)g(Con)n(text)208 1266 y(ob)5
2295b(ject)27 b(it)h(is)f(asso)r(ciated)g(with.)37 b Fd(name)d
2296Fr(ma)n(y)27 b(b)r(e)h(an)n(y)e(binary)h(data.)0 1413
2297y Fm(set_timeout\()p Fd(time)l(out)8 b Fm(\))208 1512
2298y Fr(Set)29 b(the)g(timeout)h(for)e(newly)h(created)f(sessions)g(for)h
2299(this)g(Con)n(text)g(ob)5 b(ject)28 b(to)h Fd(time)l(out)8
2300b Fr(.)41 b Fd(time)l(out)36 b Fr(m)n(ust)29 b(b)r(e)h(giv)n(en)208
23011612 y(in)f(\(whole\))f(seconds.)40 b(The)29 b(default)g(v)-5
2302b(alue)28 b(is)h(300)e(seconds.)40 b(See)29 b(the)g(Op)r(enSSL)g(man)n
2303(ual)f(for)g(more)g(information)208 1712 y(\(e.g.)36
2304b(SSL_CTX_set_timeout\(3\)\).)0 1859 y Fm(set_verify\()p
2305Fd(mo)l(de,)26 b(c)l(al)t(lb)l(ack)9 b Fm(\))208 1958
2306y Fr(Set)28 b(the)h(v)n(eri\034cation)e(\035ags)g(for)h(this)h(Con)n
2307(text)f(ob)5 b(ject)28 b(to)g Fd(mo)l(de)36 b Fr(and)28
2308b(sp)r(ecify)h(that)f Fd(c)l(al)t(lb)l(ack)39 b Fr(should)28
2309b(b)r(e)h(used)g(for)208 2058 y(v)n(eri\034cation)23
2310b(callbac)n(ks.)34 b Fd(mo)l(de)e Fr(should)25 b(b)r(e)g(one)g(of)31
2311b Fm(VERIFY_NONE)20 b Fr(and)25 b Fm(VERIFY_PEER)p Fr(.)20
2312b(If)32 b Fm(VERIFY_PEER)20 b Fr(is)25 b(used,)208 2157
2313y Fd(mo)l(de)k Fr(can)22 b(b)r(e)h(OR:ed)f(with)h Fm(VERIFY_FAIL_IF_)o
2314(NO_)o(PE)o(ER)o(_CE)o(RT)16 b Fr(and)22 b Fm(VERIFY_CLIENT_ON)o(CE)16
2315b Fr(to)22 b(further)g(con)n(trol)208 2257 y(the)28 b(b)r(eha)n(viour.)
2316208 2390 y Fd(c)l(al)t(lb)l(ack)34 b Fr(should)24 b(tak)n(e)g(\034v)n
2317(e)f(argumen)n(ts:)34 b(A)24 b(Connection)g(ob)5 b(ject,)24
2318b(an)g(X509)f(ob)5 b(ject,)25 b(and)e(three)h(in)n(teger)f(v)-5
2319b(ariables,)208 2489 y(whic)n(h)28 b(are)g(in)h(turn)g(p)r(oten)n(tial)
2320g(error)e(n)n(um)n(b)r(er,)i(error)e(depth)i(and)g(return)g(co)r(de.)40
2321b Fd(c)l(al)t(lb)l(ack)g Fr(should)28 b(return)h(true)g(if)208
23222589 y(v)n(eri\034cation)d(passes)g(and)h(false)h(otherwise.)0
23232736 y Fm(set_verify_depth)o(\()p Fd(depth)6 b Fm(\))208
23242836 y Fr(Set)36 b(the)g(maxim)n(um)f(depth)h(for)g(the)g
2325(certi\034cate)f(c)n(hain)g(v)n(eri\034cation)f(that)i(shall)f(b)r(e)h
2326(allo)n(w)n(ed)e(for)i(this)f(Con)n(text)208 2935 y(ob)5
2327b(ject.)0 3082 y Fm(use_certificate\()o Fd(c)l(ert)j
2328Fm(\))208 3182 y Fr(Use)27 b(the)h(certi\034cate)f Fd(c)l(ert)35
2329b Fr(whic)n(h)28 b(has)f(to)g(b)r(e)h(a)f(X509)g(ob)5
2330b(ject.)0 3329 y Fm(use_certificate_)o(ch)o(ain)o(_f)o(il)o(e\()p
2331Fd(\034)o(le)h Fm(\))208 3428 y Fr(Load)26 b(a)h(certi\034cate)g(c)n
2332(hain)g(from)h Fd(\034le)34 b Fr(whic)n(h)27 b(m)n(ust)h(b)r(e)g(PEM)g
2333(enco)r(ded.)0 3575 y Fm(use_privatekey\()p Fd(pkey)7
2334b Fm(\))208 3675 y Fr(Use)27 b(the)h(priv)-5 b(ate)27
2335b(k)n(ey)h Fd(pkey)36 b Fr(whic)n(h)28 b(has)f(to)g(b)r(e)h(a)f(PKey)h
2336(ob)5 b(ject.)0 3836 y Fm(use_certificate_)o(fi)o(le\()o
2337Fd(\034le)h Fc([)p Fd(,)24 b(format)d Fc(])p Fm(\))208
23383936 y Fr(Load)i(the)h(\034rst)g(certi\034cate)f(found)h(in)h
2339Fd(\034le)6 b Fr(.)36 b(The)24 b(certi\034cate)f(m)n(ust)h(b)r(e)h(in)f
2340(the)g(format)g(sp)r(eci\034ed)g(b)n(y)h Fd(format)8
2341b Fr(,)25 b(whic)n(h)208 4035 y(is)i(either)g Fm(FILETYPE_PEM)c
2342Fr(or)k Fm(FILETYPE_ASN1)p Fr(.)k(The)d(default)g(is)f
2343Fm(FILETYPE_PEM)p Fr(.)0 4182 y Fm(use_privatekey_f)o(il)o(e\()p
2344Fd(\034)o(le)6 b Fc([)p Fd(,)25 b(format)20 b Fc(])p
2345Fm(\))208 4282 y Fr(Load)31 b(the)h(\034rst)g(priv)-5
2346b(ate)31 b(k)n(ey)g(found)i(in)f Fd(\034le)6 b Fr(.)50
2347b(The)32 b(priv)-5 b(ate)32 b(k)n(ey)f(m)n(ust)h(b)r(e)g(in)h(the)f
2348(format)f(sp)r(eci\034ed)i(b)n(y)f Fd(format)8 b Fr(,)208
23494381 y(whic)n(h)27 b(is)g(either)h Fm(FILETYPE_PEM)22
2350b Fr(or)27 b Fm(FILETYPE_ASN1)p Fr(.)32 b(The)27 b(default)h(is)g
2351Fm(FILETYPE_PEM)p Fr(.)0 4644 y Fg(Connection)e(objects)0
23524845 y Fr(Connection)h(ob)5 b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n
2353(wing)f(metho)r(ds:)0 4992 y Fm(accept\(\))208 5091 y
2354Fr(Call)33 b(the)g Fm(accept)e Fr(metho)r(d)j(of)f(the)h(underlying)f
2355(so)r(c)n(k)n(et)f(and)h(set)h(up)g(SSL)f(on)g(the)h(returned)f(so)r(c)
2356n(k)n(et,)h(using)f(the)208 5191 y(Con)n(text)22 b(ob)5
2357b(ject)22 b(supplied)h(to)f(this)h(Connection)f(ob)5
2358b(ject)22 b(at)h(creation.)34 b(Returns)22 b(a)g(pair)g
2359Fm(\()p Fd(c)l(onn)6 b Fm(,)43 b Fd(addr)l(ess)7 b Fm(\))p
2360Fr(.)36 b(where)208 5291 y Fd(c)l(onn)d Fr(is)28 b(the)g(new)f
2361(Connection)g(ob)5 b(ject)28 b(created,)e(and)i Fd(addr)l(ess)35
2362b Fr(is)28 b(as)f(returned)g(b)n(y)g(the)h(so)r(c)n(k)n(et's)e
2363Fm(accept)p Fr(.)p 0 5549 3901 4 v 0 5649 a Fg(3.3)82
2364b Fm(SSL)26 b Fg(\026)i(An)g(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h
2365(pa)n(rts)f(of)h(Op)r(enSSL)1611 b(11)p eop end
2366%%Page: 12 12
2367TeXDict begin 12 11 bop 0 83 a Fm(bind\()p Fd(addr)l(ess)7
2368b Fm(\))208 183 y Fr(Call)27 b(the)h Fm(bind)e Fr(metho)r(d)i(of)f(the)
2369h(underlying)f(so)r(c)n(k)n(et.)0 330 y Fm(close\(\))208
2370429 y Fr(Call)i(the)h Fm(close)e Fr(metho)r(d)i(of)g(the)g(underlying)f
2371(so)r(c)n(k)n(et.)43 b(Note:)e(If)31 b(y)n(ou)e(w)n(an)n(t)g(correct)f
2372(SSL)i(closure,)f(y)n(ou)g(need)h(to)208 529 y(call)d(the)h
2373Fm(shutdown)c Fr(metho)r(d)k(\034rst.)0 676 y Fm(connect\()p
2374Fd(addr)l(ess)7 b Fm(\))208 775 y Fr(Call)31 b(the)h
2375Fm(connect)e Fr(metho)r(d)i(of)g(the)g(underlying)g(so)r(c)n(k)n(et)e
2376(and)i(set)g(up)g(SSL)h(on)e(the)i(so)r(c)n(k)n(et,)f(using)f(the)h
2377(Con)n(text)208 875 y(ob)5 b(ject)27 b(supplied)h(to)f(this)h
2378(Connection)f(ob)5 b(ject)27 b(at)h(creation.)0 1022
2379y Fm(connect_ex\()p Fd(addr)l(ess)7 b Fm(\))208 1121
2380y Fr(Call)24 b(the)g Fm(connect_ex)c Fr(metho)r(d)25
2381b(of)f(the)h(underlying)f(so)r(c)n(k)n(et)f(and)h(set)g(up)h(SSL)f(on)g
2382(the)h(so)r(c)n(k)n(et,)f(using)g(the)g(Con)n(text)208
23831221 y(ob)5 b(ject)35 b(supplied)g(to)h(this)f(Connection)g(ob)5
2384b(ject)36 b(at)f(creation.)59 b(Note)36 b(that)f(if)h(the)g
2385Fm(connect_ex)31 b Fr(metho)r(d)36 b(of)g(the)208 1321
2386y(so)r(c)n(k)n(et)26 b(do)r(esn't)i(return)f(0,)g(SSL)h(w)n(on't)f(b)r
2387(e)h(initialized.)0 1468 y Fm(do_handshake\(\))208 1567
2388y Fr(P)n(erform)49 b(an)h(SSL)g(handshak)n(e)f(\(usually)h(called)g
2389(after)f Fm(renegotiate)d Fr(or)j(one)h(of)57 b Fm(set_accept_stat)o(e)
239044 b Fr(or)208 1667 y Fm(set_accept_stat)o(e)p Fr(\).)31
2391b(This)d(can)f(raise)f(the)i(same)f(exceptions)g(as)g
2392Fm(send)f Fr(and)h Fm(recv)p Fr(.)0 1814 y Fm(fileno\(\))208
23931913 y Fr(Retriev)n(e)f(the)i(\034le)g(descriptor)e(n)n(um)n(b)r(er)i
2394(for)f(the)h(underlying)e(so)r(c)n(k)n(et.)0 2060 y Fm(listen\()p
2395Fd(b)l(acklo)l(g)7 b Fm(\))208 2160 y Fr(Call)27 b(the)h
2396Fm(listen)d Fr(metho)r(d)j(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
23972307 y Fm(get_app_data\(\))208 2406 y Fr(Retriev)n(e)f(application)h
2398(data)g(as)g(set)h(b)n(y)g Fm(set_app_data)p Fr(.)0 2553
2399y Fm(get_cipher_list\()o(\))208 2653 y Fr(Retriev)n(e)23
2400b(the)h(list)g(of)g(ciphers)g(used)g(b)n(y)f(the)i(Connection)e(ob)5
2401b(ject.)36 b(W)-9 b(ARNING:)25 b(This)f(API)h(has)e(c)n(hanged.)35
2402b(It)24 b(used)208 2752 y(to)j(tak)n(e)g(an)g(optional)g(parameter)f
2403(and)h(just)h(return)g(a)f(string,)g(but)h(not)f(it)h(returns)f(the)h
2404(en)n(tire)f(list)h(in)g(one)f(go.)0 2899 y Fm(get_context\(\))208
24052999 y Fr(Retriev)n(e)f(the)i(Con)n(text)f(ob)5 b(ject)28
2406b(asso)r(ciated)e(with)i(this)g(Connection.)0 3146 y
2407Fm(get_peer_certifi)o(ca)o(te\()o(\))208 3245 y Fr(Retriev)n(e)e(the)i
2408(other)f(side's)g(certi\034cate)g(\(if)i(an)n(y\))0 3392
2409y Fm(getpeername\(\))208 3492 y Fr(Call)e(the)h Fm(getpeername)23
2410b Fr(metho)r(d)28 b(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
24113639 y Fm(getsockname\(\))208 3738 y Fr(Call)g(the)h
2412Fm(getsockname)23 b Fr(metho)r(d)28 b(of)f(the)h(underlying)f(so)r(c)n
2413(k)n(et.)0 3902 y Fm(getsockopt\()p Fd(level,)f(optname)6
2414b Fc([)p Fd(,)31 b(bu\035en)18 b Fc(])p Fm(\))208 4002
2415y Fr(Call)27 b(the)h Fm(getsockopt)23 b Fr(metho)r(d)28
2416b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)0 4148 y Fm(pending\(\))208
24174248 y Fr(Retriev)n(e)f(the)i(n)n(um)n(b)r(er)g(of)f(b)n(ytes)g(that)h
2418(can)f(b)r(e)h(safely)f(read)g(from)g(the)h(SSL)g(bu\033er.)0
24194395 y Fm(recv\()p Fd(bufsize)6 b Fm(\))208 4495 y Fr(Receiv)n(e)30
2420b(data)h(from)g(the)h(Connection.)47 b(The)31 b(return)g(v)-5
2421b(alue)31 b(is)h(a)e(string)h(represen)n(ting)f(the)h(data)g(receiv)n
2422(ed.)47 b(The)208 4594 y(maxim)n(um)27 b(amoun)n(t)g(of)g(data)h(to)f
2423(b)r(e)h(receiv)n(ed)e(at)i(once,)f(is)g(sp)r(eci\034ed)h(b)n(y)h
2424Fd(bufsize)6 b Fr(.)0 4741 y Fm(renegotiate\(\))208 4841
2425y Fr(Renegotiate)26 b(the)i(SSL)g(session.)36 b(Call)27
2426b(this)h(if)g(y)n(ou)f(wish)g(to)h(c)n(hange)e(cipher)h(suites)h(or)e
2427(an)n(ything)h(lik)n(e)g(that.)0 4988 y Fm(send\()p Fd(string)7
2428b Fm(\))208 5087 y Fr(Send)27 b(the)h Fd(string)35 b
2429Fr(data)27 b(to)h(the)g(Connection.)0 5234 y Fm(sendall\()p
2430Fd(string)7 b Fm(\))208 5334 y Fr(Send)30 b(all)f(of)h(the)g
2431Fd(string)37 b Fr(data)29 b(to)g(the)h(Connection.)43
2432b(This)30 b(calls)f Fm(send)f Fr(rep)r(eatedly)h(un)n(til)h(all)f(data)
2433h(is)f(sen)n(t.)43 b(If)30 b(an)p 0 5549 3901 4 v 0 5649
2434a Fg(12)2197 b(3)83 b Fm(OpenSSL)24 b Fg(\026)k(Python)f(interface)h
2435(to)f(Op)r(enSSL)p eop end
2436%%Page: 13 13
2437TeXDict begin 13 12 bop 208 83 a Fr(error)25 b(o)r(ccurs,)i(it's)h(imp)
2438r(ossible)f(to)g(tell)h(ho)n(w)f(m)n(uc)n(h)h(data)f(has)g(b)r(een)h
2439(sen)n(t.)0 230 y Fm(set_accept_state)o(\(\))208 330
2440y Fr(Set)20 b(the)g(connection)f(to)h(w)n(ork)e(in)i(serv)n(er)e(mo)r
2441(de.)34 b(The)20 b(handshak)n(e)f(will)h(b)r(e)g(handled)g
2442(automatically)e(b)n(y)i(read/write.)0 476 y Fm(set_app_data\()p
2443Fd(data)6 b Fm(\))208 576 y Fr(Asso)r(ciate)39 b Fd(data)47
2444b Fr(with)40 b(this)g(Connection)g(ob)5 b(ject.)73 b
2445Fd(data)47 b Fr(can)39 b(b)r(e)i(retriev)n(ed)d(later)h(using)h(the)g
2446Fm(get_app_data)208 676 y Fr(metho)r(d.)0 823 y Fm(set_connect_stat)o
2447(e\()o(\))208 922 y Fr(Set)21 b(the)g(connection)g(to)g(w)n(ork)e(in)i
2448(clien)n(t)g(mo)r(de.)35 b(The)21 b(handshak)n(e)f(will)h(b)r(e)g
2449(handled)g(automatically)f(b)n(y)h(read/write.)0 1069
2450y Fm(setblocking\()p Fd(\035ag)7 b Fm(\))208 1169 y Fr(Call)27
2451b(the)h Fm(setblocking)23 b Fr(metho)r(d)28 b(of)f(the)h(underlying)f
2452(so)r(c)n(k)n(et.)0 1316 y Fm(setsockopt\()p Fd(level,)f(optname,)31
2453b(value)6 b Fm(\))208 1415 y Fr(Call)27 b(the)h Fm(setsockopt)23
2454b Fr(metho)r(d)28 b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)0
24551562 y Fm(shutdown\(\))208 1662 y Fr(Send)35 b(the)h(sh)n(utdo)n(wn)f
2456(message)f(to)h(the)h(Connection.)60 b(Returns)35 b(true)g(if)h(the)g
2457(sh)n(utdo)n(wn)e(message)g(exc)n(hange)g(is)208 1761
2458y(completed)25 b(and)g(false)h(otherwise)e(\(in)i(whic)n(h)g(case)e(y)n
2459(ou)h(call)g Fm(recv\(\))e Fr(or)i Fm(send\(\))e Fr(when)j(the)g
2460(connection)f(b)r(ecomes)208 1861 y(readable/writeable.)0
24612008 y Fm(sock_shutdown\()p Fd(how)9 b Fm(\))208 2107
2462y Fr(Call)27 b(the)h Fm(shutdown)c Fr(metho)r(d)k(of)g(the)g
2463(underlying)e(so)r(c)n(k)n(et.)0 2254 y Fm(state_string\(\))208
24642354 y Fr(Retriev)n(e)g(a)i(v)n(erb)r(ose)e(string)g(detailing)i(the)g
2465(state)f(of)h(the)f(Connection.)0 2501 y Fm(want_read\(\))208
24662600 y Fr(Chec)n(ks)f(if)i(more)f(data)g(has)g(to)h(b)r(e)g(read)e
2467(from)i(the)f(transp)r(ort)g(la)n(y)n(er)f(to)h(complete)h(an)f(op)r
2468(eration.)0 2747 y Fm(want_write\(\))208 2847 y Fr(Chec)n(ks)f(if)i
2469(there)g(is)f(data)g(to)h(write)f(to)g(the)h(transp)r(ort)f(la)n(y)n
2470(er)f(to)h(complete)h(an)f(op)r(eration.)0 3169 y Fs(4)114
2471b(Internals)0 3398 y Fr(W)-7 b(e)25 b(ran)g(in)n(to)f(three)h(main)g
2472(problems)f(dev)n(eloping)g(this:)36 b(Exceptions,)25
2473b(callbac)n(ks)f(and)h(accessing)e(so)r(c)n(k)n(et)h(metho)r(ds.)36
2474b(This)0 3497 y(is)27 b(what)h(this)g(c)n(hapter)e(is)i(ab)r(out.)0
24753777 y Fk(4.1)97 b(Exceptions)0 3977 y Fr(W)-7 b(e)52
2476b(realized)f(early)g(that)h(most)g(of)g(the)g(exceptions)f(w)n(ould)h
2477(b)r(e)g(raised)f(b)n(y)h(the)g(I/O)f(functions)h(of)g(Op)r(enSSL,)0
24784077 y(so)d(it)i(felt)f(natural)f(to)h(mimic)g(Op)r(enSSL's)g(error)e
2479(co)r(de)i(system,)55 b(translating)48 b(them)j(in)n(to)e(Python)i
2480(exceptions.)0 4177 y(This)30 b(naturally)e(giv)n(es)h(us)h(the)g
2481(exceptions)f Fm(SSL.ZeroReturnEr)o(ro)o(r)p Fr(,)24
2482b Fm(SSL.WantReadError)o Fr(,)h Fm(SSL.WantWriteEr)o(ro)o(r)p
2483Fr(,)0 4276 y Fm(SSL.WantX509Look)o(up)o(Err)o(or)c Fr(and)27
2484b Fm(SSL.SysCallError)p Fr(.)0 4423 y(F)-7 b(or)27 b(more)g
2485(information)g(ab)r(out)g(this,)h(see)f(section)g(3.3.)0
24864703 y Fk(4.2)97 b(Callbacks)0 4903 y Fr(There)34 b(are)f(a)h(n)n(um)n
2487(b)r(er)g(of)h(problems)e(with)i(callbac)n(ks.)56 b(First)34
2488b(of)g(all,)i(Op)r(enSSL)f(is)f(written)h(as)e(a)h(C)h(library)-7
2489b(,)34 b(it's)h(not)0 5003 y(mean)n(t)26 b(to)g(ha)n(v)n(e)e(Python)j
2490(callbac)n(ks,)d(so)i(a)f(w)n(a)n(y)g(around)g(that)h(is)g(needed.)36
2491b(Another)26 b(problem)f(is)h(thread)g(supp)r(ort.)36
2492b(A)26 b(lot)0 5103 y(of)h(the)g(Op)r(enSSL)g(I/O)e(functions)i(can)g
2493(blo)r(c)n(k)f(if)h(the)g(so)r(c)n(k)n(et)f(is)g(in)h(blo)r(c)n(king)f
2494(mo)r(de,)h(and)g(then)g(y)n(ou)f(w)n(an)n(t)g(other)g(Python)0
24955202 y(threads)c(to)g(b)r(e)h(able)f(to)g(do)g(other)g(things.)35
2496b(The)22 b(real)g(trouble)g(is)g(if)h(y)n(ou'v)n(e)e(released)g(the)h
2497(thread)g(lo)r(c)n(k)g(to)g(do)g(a)g(p)r(oten)n(tially)p
24980 5549 3901 4 v 3817 5649 a Fg(13)p eop end
2499%%Page: 14 14
2500TeXDict begin 14 13 bop 0 83 a Fr(blo)r(c)n(king)27 b(op)r(eration,)f
2501(and)i(the)g(op)r(eration)e(calls)h(a)g(callbac)n(k.)35
2502b(Then)28 b(w)n(e)f(m)n(ust)h(tak)n(e)f(the)h(thread)f(lo)r(c)n(k)g
2503(bac)n(k)3475 53 y Fl(5)3511 83 y Fr(.)0 230 y(There)d(are)f(t)n(w)n(o)
2504g(solutions)h(to)g(the)h(\034rst)f(problem,)g(b)r(oth)h(of)f(whic)n(h)g
2505(are)f(necessary)-7 b(.)34 b(The)25 b(\034rst)f(solution)f(to)h(use)h
2506(is)f(if)g(the)h(C)0 330 y(callbac)n(k)i(allo)n(ws)f(\021userdata\021)
250733 b(to)28 b(b)r(e)h(passed)e(to)h(it)g(\(an)g(arbitrary)e(p)r(oin)n
2508(ter)i(normally\).)37 b(This)28 b(is)g(great!)37 b(W)-7
2509b(e)28 b(can)g(set)g(our)0 429 y(Python)i(function)g(ob)5
2510b(ject)29 b(as)f(the)i(real)f(userdata)f(and)h(em)n(ulate)g(userdata)f
2511(for)h(the)h(Python)f(function)h(in)g(another)e(w)n(a)n(y)-7
2512b(.)0 529 y(The)24 b(other)g(solution)g(can)g(b)r(e)h(used)g(if)g(an)f
2513(ob)5 b(ject)24 b(with)h(an)f(\021app_data\021)29 b(system)c(alw)n(a)n
2514(ys)d(is)j(passed)e(to)h(the)h(callbac)n(k.)35 b(F)-7
2515b(or)0 628 y(example,)26 b(the)h(SSL)f(ob)5 b(ject)26
2516b(in)h(Op)r(enSSL)f(has)g(app_data)f(functions)i(and)f(in)h(e.g.)36
2517b(the)26 b(v)n(eri\034cation)f(callbac)n(ks,)g(y)n(ou)g(can)0
2518728 y(retriev)n(e)i(the)i(related)f(SSL)h(ob)5 b(ject.)39
2519b(What)29 b(w)n(e)g(do)f(is)g(to)h(set)f(our)g(wrapp)r(er)g
2520Fm(Connection)c Fr(ob)5 b(ject)28 b(as)g(app_data)g(for)g(the)0
2521828 y(SSL)g(ob)5 b(ject,)27 b(and)h(w)n(e)f(can)g(easily)g(\034nd)h
2522(the)g(Python)g(callbac)n(k.)0 975 y(The)42 b(other)g(problem)g(is)g
2523(also)f(partially)h(solv)n(ed)f(b)n(y)h(app_data.)80
2524b(Since)43 b(w)n(e're)e(asso)r(ciating)g(our)g(wrapp)r(er)h(ob)5
2525b(jects)0 1074 y(with)44 b(the)f(\021real\021)49 b(ob)5
2526b(jects,)46 b(w)n(e)d(can)g(easily)f(access)g(data)g(from)h(the)h
2527Fm(Connection)39 b Fr(ob)5 b(ject.)83 b(The)43 b(solution)g(then)g(is)0
25281174 y(to)35 b(simply)h(include)g(a)f Fm(PyThreadState)c
2529Fr(v)-5 b(ariable)34 b(in)i(the)g Fm(Connection)31 b
2530Fr(declaration,)37 b(and)e(write)g(macros)f(similar)h(to)0
25311273 y Fm(Py_BEGIN_ALLOW_T)o(HR)o(EAD)o(S)26 b Fr(and)33
2532b Fm(Py_END_ALLOW_TH)o(REA)o(DS)26 b Fr(that)33 b(allo)n(ws)e(sp)r
2533(ecifying)h(of)h(the)g Fm(PyThreadState)27 b Fr(v)-5
2534b(ari-)0 1373 y(able)23 b(to)g(use.)35 b(No)n(w)23 b(w)n(e)g(can)g
2535(simply)g(\021b)r(egin)g(allo)n(w)f(threads\021)29 b(b)r(efore)23
2536b(a)g(p)r(oten)n(tially)g(blo)r(c)n(king)f(op)r(eration,)h(and)g
2537(\021end)g(allo)n(w)0 1473 y(threads\021)33 b(b)r(efore)28
2538b(calling)e(a)i(callbac)n(k.)0 1752 y Fk(4.3)97 b(A)m(cessing)35
2539b(So)s(ck)m(et)e(Metho)s(ds)0 1953 y Fr(W)-7 b(e)27 b(quic)n(kly)e(sa)n
2540(w)h(the)g(b)r(ene\034t)h(of)g(wrapping)e(so)r(c)n(k)n(et)g(metho)r(ds)
2541h(in)h(the)g Fm(SSL.Connection)20 b Fr(class,)26 b(for)g(an)g(easy)f
2542(transition)0 2052 y(in)n(to)e(using)f(SSL.)h(The)g(problem)f(here)h
2543(is)f(that)h(the)h Fm(socket)c Fr(mo)r(dule)j(lac)n(ks)f(a)g(C)h(API,)h
2544(and)e(all)h(the)g(metho)r(ds)g(are)f(declared)0 2152
2545y(static.)36 b(One)27 b(approac)n(h)d(w)n(ould)i(b)r(e)h(to)f(ha)n(v)n
2546(e)g Fm(OpenSSL)d Fr(as)j(a)g(submo)r(dule)h(to)f(the)h
2547Fm(socket)d Fr(mo)r(dule,)j(placing)f(all)g(the)h(co)r(de)0
25482252 y(in)j(`)p Fq(so)r(ck)n(etmo)r(dule.c)p Fr(',)h(but)f(this)g(is)g
2549(ob)n(viously)e(not)i(a)f(go)r(o)r(d)g(solution,)h(since)g(y)n(ou)f
2550(migh)n(t)g(not)h(w)n(an)n(t)f(to)h(imp)r(ort)g(tonnes)f(of)0
25512351 y(extra)f(stu\033)h(y)n(ou're)e(not)i(going)e(to)i(use)f(when)h
2552(imp)r(orting)f(the)i Fm(socket)c Fr(mo)r(dule.)40 b(The)29
2553b(other)f(approac)n(h)e(is)j(to)f(someho)n(w)0 2451 y(get)33
2554b(a)g(p)r(oin)n(ter)g(to)h(the)f(metho)r(d)h(to)g(b)r(e)f(called,)i
2555(either)e(the)h(C)g(function,)h(or)e(a)g(callable)f(Python)i(ob)5
2556b(ject.)54 b(This)34 b(is)f(not)0 2551 y(really)26 b(a)i(go)r(o)r(d)f
2557(solution)g(either,)g(since)g(there's)h(a)f(lot)g(of)h(lo)r(okups)f(in)
2558n(v)n(olv)n(ed.)0 2697 y(The)h(w)n(a)n(y)f(it)h(w)n(orks)e(is)i(that)h
2559(y)n(ou)e(ha)n(v)n(e)g(to)g(supply)h(a)g(\020)7 b Fm(socket)p
2560Fr(-lik)n(e\021)31 b(transp)r(ort)c(ob)5 b(ject)28 b(to)f(the)i
2561Fm(SSL.Connection)p Fr(.)j(The)0 2797 y(only)24 b(requiremen)n(t)f(of)i
2562(this)f(ob)5 b(ject)24 b(is)h(that)f(it)h(has)f(a)g Fm(fileno\(\))d
2563Fr(metho)r(d)k(that)f(returns)g(a)g(\034le)g(descriptor)f(that's)i(v)-5
2564b(alid)24 b(at)0 2897 y(the)g(C)g(lev)n(el)f(\(i.e.)36
2565b(y)n(ou)23 b(can)h(use)f(the)i(system)e(calls)g(read)g(and)h(write\).)
256635 b(If)25 b(y)n(ou)e(w)n(an)n(t)g(to)h(use)f(the)h Fm(connect\(\))c
2567Fr(or)j Fm(accept\(\))0 2996 y Fr(metho)r(ds)29 b(of)h(the)f
2568Fm(SSL.Connection)24 b Fr(ob)5 b(ject,)29 b(the)h(transp)r(ort)e(ob)5
2569b(ject)29 b(has)f(to)h(supply)h(suc)n(h)f(metho)r(ds)g(to)r(o.)41
2570b(Apart)29 b(from)0 3096 y(them,)c(an)n(y)e(metho)r(d)h(lo)r(okups)f
2571(in)h(the)f Fm(SSL.Connection)18 b Fr(ob)5 b(ject)24
2572b(that)f(fail)h(are)f(passed)f(on)i(to)f(the)h(underlying)f(transp)r
2573(ort)0 3196 y(ob)5 b(ject.)0 3342 y(F)-7 b(uture)25 b(c)n(hanges)f
2574(migh)n(t)h(b)r(e)g(to)g(allo)n(w)f(Python-lev)n(el)g(transp)r(ort)g
2575(ob)5 b(jects,)25 b(that)g(instead)g(of)g(ha)n(ving)g
2576Fm(fileno\(\))d Fr(metho)r(ds,)0 3442 y(ha)n(v)n(e)h
2577Fm(read\(\))g Fr(and)h Fm(write\(\))e Fr(metho)r(ds,)k(so)e(more)f(adv)
2578-5 b(anced)24 b(features)h(of)f(Python)h(can)g(b)r(e)g(used.)35
2579b(This)25 b(w)n(ould)f(probably)0 3542 y(en)n(tail)36
2580b(some)g(sort)g(of)g(Op)r(enSSL)h(\020BIOs\021,)g(but)g(con)n(v)n
2581(erting)e(Python)i(strings)e(bac)n(k)h(and)g(forth)g(is)h(exp)r(ensiv)n
2582(e,)h(so)e(this)0 3641 y(shouldn't)f(b)r(e)h(used)f(unless)g(necessary)
2583-7 b(.)57 b(Other)35 b(nice)g(things)g(w)n(ould)g(b)r(e)g(to)g(b)r(e)h
2584(able)e(to)h(pass)g(in)g(di\033eren)n(t)g(transp)r(ort)0
25853741 y(ob)5 b(jects)41 b(for)g(reading)f(and)h(writing,)j(but)e(then)g
2586(the)g Fm(fileno\(\))c Fr(metho)r(d)k(of)47 b Fm(SSL.Connection)36
2587b Fr(b)r(ecomes)41 b(virtually)0 3841 y(useless.)36 b(Also,)27
2588b(should)h(the)g(metho)r(d)g(resolution)e(b)r(e)i(used)g(on)f(the)h
2589(read-transp)r(ort)d(or)i(the)h(write-transp)r(ort?)p
25900 5323 1560 4 v 92 5376 a Fi(5)127 5400 y Fh(I'm)22 b(not)j(sure)f(wh)n
2591(y)g(this)g(is)f(necessary)-6 b(,)25 b(but)f(otherwise)h(I)f(get)h(a)e
2592(segmen)n(tation)i(violation)f(on)g Fa(PyEval_CallObject)p
25930 5549 3901 4 v 0 5649 a Fg(14)3368 b(4)83 b(Internals)p
2594eop end
2595%%Trailer
2596
2597userdict /end-hook known{end-hook}if
2598%%EOF