1 |
%!PS-Adobe-2.0 |
2 |
%%Creator: dvips, version 5.41 (C) 1986-90 Radical Eye Software |
3 |
%%Title: socket++.dvi |
4 |
%%Pages: 56 1 |
5 |
%%BoundingBox: 0 0 612 792 |
6 |
%%EndComments |
7 |
%%BeginProcSet: tex.pro |
8 |
/TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch |
9 |
load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{ |
10 |
isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale |
11 |
Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get |
12 |
round 4 exch put dup dup 5 get round 5 exch put setmatrix}B /@letter{/vsize 10 |
13 |
N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{ |
14 |
/vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{ |
15 |
statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N |
16 |
/FBB[0 0 0 0]N /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 |
17 |
0 sf neg 0 0]N df-tail}B /df-tail{/nn 8 dict N nn begin /FontType 3 N |
18 |
/FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar |
19 |
{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 |
20 |
nn put /ctr 0 N[}B /E{pop nn dup definefont setfont}B /ch-image{ch-data dup |
21 |
type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /ch-width{ch-data dup length |
22 |
5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup |
23 |
length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ |
24 |
ch-data dup length 1 sub get}B /ctr 0 N /CharBuilder{save 3 1 roll S dup /base |
25 |
get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff |
26 |
ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width |
27 |
ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}imagemask |
28 |
restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr put nn |
29 |
/BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put |
30 |
}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook known{ |
31 |
bop-hook}if /SI save N @rigin 0 0 moveto}B /eop{clear SI restore showpage |
32 |
userdict /eop-hook known{eop-hook}if}B /@start{userdict /start-hook known{ |
33 |
start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N |
34 |
0 1 255{IE S 1 string dup 0 3 index put cvn put}for}B /p /show load N /RMat[1 |
35 |
0 0 -1 0 0]N /BDot 260 string N /v{/ruley X /rulex X V}B /V{gsave TR -.1 -.1 |
36 |
TR 1 ruley scale rulex 1 false RMat{BDot}imagemask grestore}B /a{moveto}B |
37 |
/delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail} |
38 |
B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B |
39 |
/k{4 M}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w} |
40 |
B /s{p 3 w}B /t{p 4 w}B /w{0 rmoveto}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos |
41 |
{/SS save N}B /eos{clear SS restore}B end |
42 |
%%EndProcSet |
43 |
TeXDict begin 1000 300 300 @start /Fa 1 59 df<70F8F8F87005057C840D>58 |
44 |
D E /Fb 1 59 df<78FCFCFCFC7806067B8510>58 D E /Fc 8 118 df<000C0000001E000000 |
45 |
1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00007FFFFF80 |
46 |
FFFFFFC0FFFFFFC07FFFFF80001E0000001E0000001E0000001E0000001E0000001E0000001E00 |
47 |
00001E0000001E0000001E0000000C00001A1A7E9E1F>43 D<7F800000FF8000007F8000000780 |
48 |
0000078000000780000007800000078000000780000007800000078000000787C000079FF80007 |
49 |
FFFC0007F83E0007E00F0007C0078007C00780078003C0078003C0078001E0078001E0078001E0 |
50 |
078001E0078001E0078001E0078001E0078001E0078003C007C003C007C0078007E00F8007E01F |
51 |
0007F83E0007FFFC00079FF000038FC0001B257FA41F>98 D<007FC001FFF007FFF80F80F81F00 |
52 |
F83E00703C0000780000780000F00000F00000F00000F00000F00000F00000F00000F000007800 |
53 |
007800003C00783E00781F00F80F81F007FFE001FFC0007F00151A7B991F>I<0003F0000FFC00 |
54 |
1FFE003E3E003C3E00781C0078000078000078000078000078007FFFFCFFFFFCFFFFFC00780000 |
55 |
780000780000780000780000780000780000780000780000780000780000780000780000780000 |
56 |
78000078000078000078000078000078007FFFF87FFFF87FFFF817257EA41F>102 |
57 |
D<FF800000FF800000FF8000000780000007800000078000000780000007800000078000000780 |
58 |
0000078000000787FFE0078FFFE00787FFE007807E000780FC000781F8000783F0000787E00007 |
59 |
8FC000079F800007BF000007FF000007FF800007FFC00007F3C00007E3E00007C1F0000780F000 |
60 |
0780F80007807C0007803C0007801E0007801F00FFF87FF0FFFCFFF0FFF87FF01C257FA41F> |
61 |
107 D<00FC0003FF0007FF801F87E01E01E03C00F07C00F8780078780078F0003CF0003CF0003C |
62 |
F0003CF0003CF0003CF0003CF8007C7800787800787C00F83C00F01E01E01F87E007FF8003FF00 |
63 |
00FC00161A7C991F>111 D<03FC700FFFF03FFFF07C03F07001F0E000F0E000F0E000F0F000F0 |
64 |
7C00003FE0001FFF0007FFC000FFF00003F800007870003CF0001CF0001CF8001CF8001CFC0038 |
65 |
FF00F0FFFFF0E7FFC0E1FE00161A7C991F>115 D<7F81FE00FF83FE007F81FE0007801E000780 |
66 |
1E0007801E0007801E0007801E0007801E0007801E0007801E0007801E0007801E0007801E0007 |
67 |
801E0007801E0007801E0007801E0007801E0007801E0007803E0007807E0003C0FE0003FFFFE0 |
68 |
01FFDFF0007F1FE01C1A7F991F>117 D E /Fd 35 127 df<00C001C0030006000C001C003800 |
69 |
3000700070006000E000E000E000E000E000E000E000600070007000300038001C000C00060003 |
70 |
0001C000C00A1D7A9914>40 D<8000C0006000300018001C000E00060007000700030003800380 |
71 |
0380038003800380038003000700070006000E001C00180030006000C0008000091D7C9914>I< |
72 |
038003800380638CF39EFFFE3FF80FE00FE03FF8FFFEF39E638C0380038003800F107E9214>I< |
73 |
01C00001C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF8001C00001C00001C000 |
74 |
01C00001C00001C00001C00011117F9314>I<FFFEFFFEFFFE0F037E8C14>45 |
75 |
D<70F8F8F87000000000000070F8F8F8700510798F14>58 D<FFFF80FFFF807FFF800000000000 |
76 |
000000007FFF80FFFF80FFFF8011097F8F14>61 D<4000E000F8007C001E000F8007C001F000F8 |
77 |
003E001E003E00F801F007C00F801E007C00F800E00040000F157E9514>I<01C00003E00003E0 |
78 |
000360000360000770000770000770000770000630000E38000E38000E38000E38000E38001FFC |
79 |
001FFC001C1C001C1C003C1E00380E00FE3F80FE3F8011177F9614>65 D<FFFFFFFF3807380738 |
80 |
07380738003800387038703FF03FF0387038703800380038003800380038003800FF00FF001017 |
81 |
7E9614>70 D<1FC0007FF000707800201800001C00001C0007FC001FFC003C1C00701C00E01C00 |
82 |
E01C00E01C00707C003FFF800F8F8011107E8F14>97 D<FC0000FC00001C00001C00001C00001C |
83 |
00001C00001CF8001DFE001F07001E03001C03801C01C01C01C01C01C01C01C01C01C01C01C01C |
84 |
03801E03001F0E001DFC000CF8001217809614>I<03F80FFC1C1C380870006000E000E000E000 |
85 |
E00060007000380E1C1E0FFC03F00F107E8F14>I<007E00007E00000E00000E00000E00000E00 |
86 |
000E0007CE000FFE001C3E00301E00700E00E00E00E00E00E00E00E00E00E00E00E00E00700E00 |
87 |
301E00383E001FEFC007CFC012177F9614>I<07E00FF01C38301C700CE00EE00EFFFEFFFEE000 |
88 |
60007000380E1C1E0FFC03F00F107E8F14>I<007C00FE01CE03840380038003807FFEFFFE0380 |
89 |
038003800380038003800380038003800380038003807FFC7FFC0F177F9614>I<07CF001FFF80 |
90 |
383B80301800701C00701C00701C003018003838003FF00037C0007000007000003FF8001FFC00 |
91 |
3FFE00700F00E00380E00380E00380E003807007003C1E001FFC0007F00011197F8F14>I<FC00 |
92 |
00FC00001C00001C00001C00001C00001C00001C78001DFE001F86001E07001C07001C07001C07 |
93 |
001C07001C07001C07001C07001C07001C07001C0700FF8FE0FF8FE01317809614>I<03000780 |
94 |
0780030000000000000000007F807F800380038003800380038003800380038003800380038003 |
95 |
80FFFCFFFC0E187D9714>I<FC0000FC00001C00001C00001C00001C00001C00001DFF801DFF80 |
96 |
1C3C001C78001CF0001DE0001FC0001FC0001FE0001EF0001C70001C38001C38001C1C00FE3F80 |
97 |
FE3F8011177F9614>107 D<FF80FF800380038003800380038003800380038003800380038003 |
98 |
800380038003800380038003800380FFFEFFFE0F177E9614>I<FB8E00FFDF003CF3803CF38038 |
99 |
E38038E38038E38038E38038E38038E38038E38038E38038E38038E380FEFBE0FE79E01310808F |
100 |
14>I<FC7800FDFE001F86001E07001C07001C07001C07001C07001C07001C07001C07001C0700 |
101 |
1C07001C0700FF8FE0FF8FE01310808F14>I<07C01FF03C78701C701CE00EE00EE00EE00EE00E |
102 |
E00E701C783C3C781FF007C00F107E8F14>I<FCF800FDFE001F07001E03001C03801C01C01C01 |
103 |
C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC001CF8001C00001C00001C00001C00 |
104 |
001C00001C0000FF8000FF80001218808F14>I<FE1F00FE7F800EE3800F81000F00000F00000E |
105 |
00000E00000E00000E00000E00000E00000E00000E0000FFF000FFF00011107F8F14>114 |
106 |
D<0FD83FF86038C038C038F0007F803FF007F8001C6006E006F006F81CFFF8CFE00F107E8F14> |
107 |
I<030007000700070007007FFCFFFC07000700070007000700070007000700070E070E070E070C |
108 |
03FC00F00F157F9414>I<FC3F00FC3F001C07001C07001C07001C07001C07001C07001C07001C |
109 |
07001C07001C07001C07001C1F000FFFE003E7E01310808F14>I<FE3F80FE3F801C1C001C1C00 |
110 |
1C1C001C1C000E38000E38000E380006300007700007700007700003E00003E00003E00011107F |
111 |
8F14>I<FF7F80FF7F80380E00380E00380E00380E0039CE0039CE0019CC001B6C001B6C001A6C |
112 |
001A6C001E7C000E78000E780011107F8F14>I<7E3F007E3F001E38000E780007700007E00003 |
113 |
E00001C00003C00003E0000770000E78000E38001C1C00FE3F80FE3F8011107F8F14>I<FE3F80 |
114 |
FE3F801C1C001C1C001C1C000E1C000E38000E380007380007300007300003700003700001E000 |
115 |
01E00001E00001C00001C00001C0000380007380007700007E00003C000011187F8F14>I<3FFF |
116 |
7FFF700E701C7038007000E001C0038007000E001C0738077007FFFFFFFF10107F8F14>I<1C10 |
117 |
3F38E7E041C00D047D9614>126 D E /Fe 1 59 df<60F0F06004047D830B>58 |
118 |
D E /Ff 38 122 df<00FC7C0183C607078E0607040E07000E07000E07000E07000E07000E0700 |
119 |
FFFFF00E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E07000E0700 |
120 |
0E07000E07007F0FF0171A809916>11 D<00FF000387000707000607000E07000E07000E07000E |
121 |
07000E07000E0700FFFF000E07000E07000E07000E07000E07000E07000E07000E07000E07000E |
122 |
07000E07000E07000E07000E07007F9FE0131A809915>13 D<60F0F07010101020204080040B7D |
123 |
830B>44 D<078018603030303060186018E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C |
124 |
E01C6018601870383030186007800E187E9713>48 D<03000700FF000700070007000700070007 |
125 |
0007000700070007000700070007000700070007000700070007000700FFF00C187D9713>I<0F |
126 |
80106020304038803CC01CE01C401C003C003800380070006000C0018001000200040408041004 |
127 |
30083FF87FF8FFF80E187E9713>I<0F8010E02070607870382038007800700070006000C00F80 |
128 |
00E000700038003C003CE03CE03CC03C4038407030E00F800E187E9713>I<00300030007000F0 |
129 |
00F001700370027004700C7008701070307020704070C070FFFF00700070007000700070007007 |
130 |
FF10187F9713>I<30183FF03FE03FC02000200020002000200027C03860203000380018001C00 |
131 |
1C401CE01CE01C80184038403030E00F800E187E9713>I<01E006100C18183830383000700060 |
132 |
00E000E7C0E860F030F018E018E01CE01CE01C601C601C701830183030186007C00E187E9713> |
133 |
I<40007FFE7FFC7FFC400880108010802000400040008001800180010003000300030003000700 |
134 |
0700070007000700070002000F197E9813>I<078018603030201860186018601870103C303E60 |
135 |
0F8007C019F030F86038401CC00CC00CC00CC00C6008201018600FC00E187E9713>I<07801860 |
136 |
303070306018E018E018E01CE01CE01C601C603C303C185C0F9C001C0018001800387030706060 |
137 |
4021801F000E187E9713>I<000C0000000C0000000C0000001E0000001E0000003F0000002700 |
138 |
00002700000043800000438000004380000081C0000081C0000081C0000100E0000100E00001FF |
139 |
E000020070000200700006007800040038000400380008001C0008001C001C001E00FF00FFC01A |
140 |
1A7F991D>65 D<003F0201C0C603002E0E001E1C000E1C0006380006780002700002700002F000 |
141 |
00F00000F00000F00000F00000F000007000027000027800023800041C00041C00080E00080300 |
142 |
3001C0C0003F00171A7E991C>67 D<3F8070C070E020700070007007F01C7030707070E070E071 |
143 |
E071E0F171FB1E3C10107E8F13>97 D<FC00001C00001C00001C00001C00001C00001C00001C00 |
144 |
001C00001C00001CF8001F0E001E07001C03801C01801C01C01C01C01C01C01C01C01C01C01C01 |
145 |
C01C03801C03001E07001B0C0010F000121A7F9915>I<07F80C1C381C30087000E000E000E000 |
146 |
E000E000E0007000300438080C1807E00E107F8F11>I<007E00000E00000E00000E00000E0000 |
147 |
0E00000E00000E00000E00000E0003CE000C3E00380E00300E00700E00E00E00E00E00E00E00E0 |
148 |
0E00E00E00E00E00600E00700E00381E001C2E0007CFC0121A7F9915>I<07C01C303018701860 |
149 |
0CE00CFFFCE000E000E000E0006000300438080C1807E00E107F8F11>I<01F0031807380E100E |
150 |
000E000E000E000E000E00FFC00E000E000E000E000E000E000E000E000E000E000E000E000E00 |
151 |
0E007FE00D1A80990C>I<0FCE187330307038703870387038303018602FC02000600070003FF0 |
152 |
3FFC1FFE600FC003C003C003C0036006381C07E010187F8F13>I<FC00001C00001C00001C0000 |
153 |
1C00001C00001C00001C00001C00001C00001CF8001D0C001E0E001E0E001C0E001C0E001C0E00 |
154 |
1C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E00FF9FC0121A7F9915>I<18003C003C |
155 |
001800000000000000000000000000FC001C001C001C001C001C001C001C001C001C001C001C00 |
156 |
1C001C001C00FF80091A80990A>I<FC00001C00001C00001C00001C00001C00001C00001C0000 |
157 |
1C00001C00001C3F801C1E001C18001C10001C20001C40001DC0001FE0001CE0001C70001C7800 |
158 |
1C38001C1C001C1E001C1F00FF3FC0121A7F9914>107 D<FC001C001C001C001C001C001C001C |
159 |
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091A |
160 |
80990A>I<FC7C1F001D8E63801E0781C01E0781C01C0701C01C0701C01C0701C01C0701C01C07 |
161 |
01C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C0FF9FE7F81D107F8F20>I<FCF8 |
162 |
001D0C001E0E001E0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E |
163 |
001C0E00FF9FC012107F8F15>I<07E01C38300C700E6006E007E007E007E007E007E007600670 |
164 |
0E381C1C3807E010107F8F13>I<FCF8001F0E001E07001C03801C03801C01C01C01C01C01C01C |
165 |
01C01C01C01C01C01C03801C03001E07001F0C001CF0001C00001C00001C00001C00001C00001C |
166 |
0000FF800012177F8F15>I<FCE01D701E701E201C001C001C001C001C001C001C001C001C001C |
167 |
001C00FFC00C107F8F0F>114 D<1F2060E04020C020C020F0007F003FC01FE000F080708030C0 |
168 |
30C020F0408F800C107F8F0F>I<0400040004000C000C001C003C00FFC01C001C001C001C001C |
169 |
001C001C001C001C201C201C201C201C200E4003800B177F960F>I<FC7E001C0E001C0E001C0E |
170 |
001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C1E000C2E0007CFC01210 |
171 |
7F8F15>I<FF1F803C06001C04001C04001E0C000E08000E080007100007100007900003A00003 |
172 |
A00001C00001C00001C00000800011107F8F14>I<FF3F9F803C0E0700380E06001C1604001C17 |
173 |
04001E170C000E2308000E2388000F239800074190000741D00003C1E0000380E0000380E00001 |
174 |
80C0000100400019107F8F1C>I<FF3F803C1C001C18000E100007200007600003C00001C00001 |
175 |
E00003E000027000043800083800181C00381E00FC3FC012107F8F14>I<FF1F803C06001C0400 |
176 |
1C04001E0C000E08000E080007100007100007900003A00003A00001C00001C00001C000008000 |
177 |
008000010000010000E10000E20000E4000078000011177F8F14>I E /Fg |
178 |
25 121 df<3C7EFFFFFFFF7E3C08087C8711>46 D<007F800003FFF00007E1F8000F807C001F00 |
179 |
3E003F003F003E001F007E001F807E001F807E001F807E001F80FE001FC0FE001FC0FE001FC0FE |
180 |
001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0 |
181 |
7E001F807E001F807E001F807E001F803F003F003F003F001F003E000F807C0007E1F80003FFF0 |
182 |
00007F80001A237EA21F>48 D<001C00003C0000FC00FFFC00FFFC0000FC0000FC0000FC0000FC |
183 |
0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC |
184 |
0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC007FFFFC7FFF |
185 |
FC16237CA21F>I<01FF0007FFC01E07F03803F86001FC7C00FEFE00FEFE00FFFE007FFE007F7C |
186 |
007F3800FF0000FF0000FE0000FE0001FC0001F80003F00007E0000780000F00001E00003C0000 |
187 |
700000E00301C0030380070700060600060FFFFE1FFFFE3FFFFE7FFFFCFFFFFCFFFFFC18237DA2 |
188 |
1F>I<01FF0007FFE01E03F03801F83C01FC7E00FE7E00FE7E00FE3E00FE1C01FE0001FC0001FC |
189 |
0003F80007F0000FC001FF0001FF000007E00001F00001F80000FC0000FE0000FF0000FF1000FF |
190 |
7C00FFFE00FFFE00FFFE00FEFE00FE7C01FC7001F83E07F00FFFC001FF0018237DA21F>I<00FF |
191 |
8003FFE00F01F81C007C38003C38001E78001E78001E7C001E7E001E7F803C7FE03C3FF8781FFC |
192 |
F01FFFC00FFFC003FFE003FFF80FFFFC1E1FFC3C07FE7801FE7800FFF0003FF0001FF0000FF000 |
193 |
0FF0000FF0000E78000E78001C3E00381F80F007FFE000FF0018237DA21F>56 |
194 |
D<0000FF8008000FFFF018003FC03C7800FE0006F801F80003F803F00001F807E00000F80FC000 |
195 |
00781FC00000783F800000383F800000387F800000187F000000187F00000018FF00000000FF00 |
196 |
000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000007F |
197 |
000000007F000000187F800000183F800000183F800000181FC00000300FC000003007E0000060 |
198 |
03F00000C001F800018000FE000700003FC01E00000FFFF8000000FFC00025257DA42C>67 |
199 |
D<07FF00001FFFC0003E03E0003F01F0003F01F8003F00FC001E00FC000000FC000000FC000000 |
200 |
FC00003FFC0003FCFC000FC0FC003F00FC007E00FC007E00FC00FC00FC00FC00FC00FC00FC00FC |
201 |
017C007E017C003F067C001FFC3FE007F01FE01B187E971E>97 D<007FE003FFF807C07C1F80FC |
202 |
1F00FC3F00FC7E00787E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00007E0000 |
203 |
7F00003F000C1F800C1FC01807E07003FFE0007F0016187E971B>99 D<0001FF800001FF800000 |
204 |
1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000 |
205 |
001F8000001F80007F1F8003FFDF8007E0FF801F803F803F001F803F001F807E001F807E001F80 |
206 |
FE001F80FE001F80FE001F80FE001F80FE001F80FE001F80FE001F80FE001F807E001F807E001F |
207 |
803F001F803F003F801F807F800FC0FF8003FF9FF800FE1FF81D267EA522>I<007F0003FFC007 |
208 |
C1F00F80F81F00F83F007C7E007C7E007EFE007EFE007EFFFFFEFFFFFEFE0000FE0000FE00007E |
209 |
00007E00007E00063F00061F000C0F801807E07003FFE0007F8017187E971C>I<FFC00000FFC0 |
210 |
00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F |
211 |
C000000FC000000FC000000FC1F8000FC7FE000FCC3F000FD01F000FF01F800FE01F800FE01F80 |
212 |
0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F |
213 |
800FC01F800FC01F800FC01F800FC01F800FC01F80FFFCFFF8FFFCFFF81D267DA522>104 |
214 |
D<0F001F803FC03FC03FC03FC01F800F000000000000000000000000000000FFC0FFC00FC00FC0 |
215 |
0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFF8FF |
216 |
F80D277EA611>I<FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC000 |
217 |
000FC000000FC000000FC000000FC000000FC000000FC000000FC07FC00FC07FC00FC01E000FC0 |
218 |
18000FC030000FC060000FC0C0000FC380000FC700000FCF00000FDF80000FFFC0000FE7C0000F |
219 |
C7E0000F83F0000F81F0000F80F8000F80FC000F807E000F803E000F803F000F801F80FFF8FFF0 |
220 |
FFF8FFF01C267EA520>107 D<FFC0FFC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0 |
221 |
0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F |
222 |
C00FC00FC00FC0FFFCFFFC0E267EA511>I<FF81FC01FC00FF87FF07FF000F8C1F8C1F800F980F |
223 |
980F800FB00FF00FC00FA00FE00FC00FA00FE00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0 |
224 |
0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F |
225 |
C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFFCFFFCFFFC |
226 |
FFFCFFFCFFFC2E187D9733>I<FF81F800FF87FE000F8C3F000F901F000FB01F800FA01F800FA0 |
227 |
1F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800F |
228 |
C01F800FC01F800FC01F800FC01F800FC01F800FC01F80FFFCFFF8FFFCFFF81D187D9722>I<00 |
229 |
7F800003FFF00007C0F8001F807E003F003F003F003F007E001F807E001F80FE001FC0FE001FC0 |
230 |
FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC07E001F807E001F803F003F003F003F |
231 |
001F807E000FC0FC0003FFF000007F80001A187E971F>I<FFC3F800FFCFFE000FF83F800FE00F |
232 |
C00FC00FE00FC007E00FC007F00FC003F00FC003F80FC003F80FC003F80FC003F80FC003F80FC0 |
233 |
03F80FC003F80FC003F80FC007F00FC007F00FC007E00FC00FC00FE01FC00FF83F000FDFFE000F |
234 |
C7F0000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 |
235 |
FFFC0000FFFC00001D237E9722>I<FF87C0FF8FF00F98F80FB1F80FA1F80FA1F80FE0F00FC000 |
236 |
0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000 |
237 |
0FC000FFFE00FFFE0015187E9719>114 D<07F9801FFF803C0F80700380F00180F00180F00180 |
238 |
FC0000FF80007FFC007FFE003FFF800FFFC003FFC0001FE00003E0C001E0C001E0E001E0E001C0 |
239 |
F003C0FC0780EFFF00C3FC0013187E9718>I<00600000600000600000600000E00000E00001E0 |
240 |
0001E00003E00007E0001FE000FFFFC0FFFFC007E00007E00007E00007E00007E00007E00007E0 |
241 |
0007E00007E00007E00007E00007E00007E06007E06007E06007E06007E06007E06003E0C003F0 |
242 |
C001FF80007E0013237FA218>I<FFC1FF80FFC1FF800FC01F800FC01F800FC01F800FC01F800F |
243 |
C01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F80 |
244 |
0FC01F800FC01F800FC03F800FC03F8007C07F8007E0DF8003FF9FF800FE1FF81D187D9722>I< |
245 |
FFF9FFE0FF80FFF9FFE0FF801FC03F001C000FC01F0018000FC01F80180007E01F80300007E01F |
246 |
80300007F01FC0700003F037C0600003F037C0600001F877E0C00001F863E0C00001FC63F1C000 |
247 |
00FCC1F1800000FCC1F18000007FC1FB0000007F80FB0000007F80FF0000003F007E0000003F00 |
248 |
7E0000001F007C0000001E003C0000001E003C0000000C0018000029187F972C>119 |
249 |
D<FFF83FF0FFF83FF00FC00F0007E00C0003F01C0003F8380001FC700000FCE000007EC000003F |
250 |
8000003F8000001F8000000FC000001FE000001FF0000033F8000071F80000E0FC0001C07E0003 |
251 |
807F0003003F000F001F80FFC07FF8FFC07FF81D187F9720>I E /Fh 6 |
252 |
121 df<003F8000E0E001C0700780700F00780E00381E003C3C003C3C003C7C003C7C007CFFFF |
253 |
F8F80000F80000F80000F80000F80000F80000F800007800107800103800201C00400C00800707 |
254 |
0001F800161A7C991A>101 D<0038007C00FC00FC007C00780000000000000000000000000000 |
255 |
0000000000F00FF00FF001F001F001E001E001E001E001E001E003C003C003C003C003C003C007 |
256 |
80078007800780078007800F80FFF0FFF00E297EA811>105 D<00F07F000FF183801FF201C001 |
257 |
F401E001F801E001F001E001F001E001E001E001E001E001E001E001E001E003C003C003C003C0 |
258 |
03C003C003C003C003C003C003C003C00780078007800780078007800780078007800780078007 |
259 |
800F800F80FFF8FFF8FFF8FFF81D1A7E9921>110 D<00200000200000200000600000400000C0 |
260 |
0000C00001C00001C00003C0000780001FFF80FFFF800780000780000780000F00000F00000F00 |
261 |
000F00000F00000F00001E00001E00001E00001E00001E01001E01003C02003C02003C02003C02 |
262 |
003C04001C04001C08000E100003E00011257BA417>116 D<078007807F807F80FF80FF800F80 |
263 |
0F800F800F800F000F000F000F000F000F000F000F000F000F000F000F001E001E001E001E001E |
264 |
001E001E001E001E001E001E001E003C003C003C003C003C003C003C007C003C007C003C00BC00 |
265 |
1C017C000E067FC003F87FC01A1A7B9921>I<0FFF03FF0FFF07FF00FC01F0007801C0003C0100 |
266 |
003C0200001E0400001E0800000F1000000FB0000007E0000007C0000003C0000003E0000003E0 |
267 |
000004F0000008F000001078000020780000403C0000803E0001801E0003001F001F801F80FFC0 |
268 |
7FF8FFC07FF8201A7F991F>120 D E /Fi 37 121 df<1C3E7E7E3A0202040408081020C0070E |
269 |
7D840D>44 D<FFC0FFC00A027D8A0F>I<0E1F1F1E0C000000000000000000003078F878700814 |
270 |
7C930D>58 D<0000100000001800000038000000380000007800000078000000FC000001BC0000 |
271 |
013C0000033C0000023C0000063C0000043E0000081E0000081E0000101E0000101E0000201E00 |
272 |
00200F0000400F0000400F0000FFFF0000800F0001000F80010007800200078002000780040007 |
273 |
80040007800C0007C03E0007C0FF807FFC1E207E9F22>65 D<07FFFF00007C01E0003C00F0003C |
274 |
00780078003C0078003C0078001E0078001E0078001E0078001F00F0001F00F0001F00F0001F00 |
275 |
F0001F00F0001F00F0001F01E0001E01E0003E01E0003E01E0003E01E0003C01E0007C03C00078 |
276 |
03C000F003C000F003C001E003C003C003C0078007800F0007803C00FFFFE000201F7E9E23>68 |
277 |
D<07FFFFF8007C0078003C0038003C001800780018007800080078000800780008007800080078 |
278 |
080800F0100000F0100000F0100000F0300000FFF00000F0700001E0200001E0200001E0200001 |
279 |
E0200001E0000801E0001003C0001003C0001003C0002003C0002003C0006003C000C0078001C0 |
280 |
078007C0FFFFFF801D1F7E9E1F>I<07FFFFF8007C0078003C0038003C00180078001800780008 |
281 |
0078000800780008007800080078000800F0100000F0100000F0100000F0300000F0700000FFF0 |
282 |
0001E0600001E0200001E0200001E0200001E0200001E0000003C0000003C0000003C0000003C0 |
283 |
000003C0000003C000000780000007C00000FFFE00001D1F7E9E1E>I<0001FC04000F030C003C |
284 |
009C0070007C00E0003C01C0003803800018078000180F0000181F0000181E0000183E0000103C |
285 |
0000007C0000007C0000007C0000007C000000F8000000F8000000F8007FFCF80003E0780001E0 |
286 |
780001E0780003C0780003C03C0003C03C0003C01C0003C00E0007C007000B800380118001E060 |
287 |
80003F80001E217B9F24>I<07FFE0007C00003C00003C00007800007800007800007800007800 |
288 |
00780000F00000F00000F00000F00000F00000F00001E00001E00001E00001E00001E00001E000 |
289 |
03C00003C00003C00003C00003C00003C00007800007C000FFFC00131F7F9E10>73 |
290 |
D<07FC0000FFC0007C0000F800003C00017800003C00017800004E0002F000004E0002F000004E |
291 |
0004F000004E0004F000004E0008F000004E0008F00000870011E00000870011E00000870021E0 |
292 |
0000870021E00000870041E00000838041E00001038083C00001038083C00001038103C0000103 |
293 |
8203C0000101C203C0000101C403C0000201C40780000201C80780000201C80780000201D00780 |
294 |
000200F00780000600E00780000600E00F00000F00C00F8000FFE0C1FFF8002A1F7E9E2A>77 |
295 |
D<07FC01FFC0003E003E00003E001800003E001800004F001000004F0010000047801000004780 |
296 |
10000043C010000043C010000083C020000081E020000081E020000080F020000080F020000080 |
297 |
782000010078400001007C400001003C400001003C400001001E400001001E400002000F800002 |
298 |
000F800002000F800002000780000200078000060003800006000300000F00010000FFE0010000 |
299 |
221F7E9E22>I<0003F800001E0E000038070000E0038001C001C003C001E0078000E00F0000F0 |
300 |
0F0000F01E0000F01E0000F83E0000F83C0000F87C0000F87C0000F87C0000F87C0000F8F80001 |
301 |
F0F80001F0F80001F0F80001F0F80003E0780003E0780003C0780007C07C0007803C000F003C00 |
302 |
1E001E001C000E0038000700F00003C3C00000FE00001D217B9F23>I<07FFFF00007C03C0003C |
303 |
01E0003C00F0007800F0007800F8007800F8007800F8007800F8007800F000F001F000F001E000 |
304 |
F003C000F0078000F00F0000FFF80001E0000001E0000001E0000001E0000001E0000001E00000 |
305 |
03C0000003C0000003C0000003C0000003C0000003C000000780000007C00000FFFC00001D1F7E |
306 |
9E1F>I<07FFFC00007C0700003C03C0003C01E0007801E0007801F0007801F0007801F0007801 |
307 |
F0007801E000F003E000F003C000F0078000F00F0000F03C0000FFF00001E0300001E0380001E0 |
308 |
1C0001E01C0001E01C0001E01E0003C03E0003C03E0003C03E0003C03E0003C03E0003C03E0207 |
309 |
803E0407C01F04FFFC0F18000003E01F207E9E21>82 D<003F040060CC01803C03801C03001C07 |
310 |
00180600080E00080E00080E00080E00000F00000F80000FE00007FE0003FF8001FFC0007FE000 |
311 |
07E00001E00000E00000F00000F04000E04000E04000E04000E06000C0600180E00380F80300C6 |
312 |
0C0081F80016217D9F19>I<3FFFFFF03C0780F03007803060078030400F0010400F0010C00F00 |
313 |
10800F0010800F0010800F0010001E0000001E0000001E0000001E0000001E0000001E0000003C |
314 |
0000003C0000003C0000003C0000003C0000003C00000078000000780000007800000078000000 |
315 |
7800000078000000F0000001F800007FFFE0001C1F7A9E21>I<FFFC3FF80F8007C00780030007 |
316 |
8003000F0002000F0002000F0002000F0002000F0002000F0002001E0004001E0004001E000400 |
317 |
1E0004001E0004001E0004003C0008003C0008003C0008003C0008003C0008003C000800380010 |
318 |
003800100038001000380020003C0040001C0040001C0080000E0100000706000001F800001D20 |
319 |
799E22>I<03FFC0FFC0007F007E00003E003800001E003000001E002000000F004000000F0080 |
320 |
00000F81000000078200000007C600000003C400000003E800000001F000000001F000000000F0 |
321 |
00000000F800000000F8000000017C000000023C000000043C0000000C1E000000081E00000010 |
322 |
1F000000200F000000400F800000C0078000008007C000010003C000070003E0001F8007E000FF |
323 |
E01FFE00221F7F9E22>88 D<FFF003FF1F8000F80F0000600F8000400780008007C0018003C001 |
324 |
0003E0020001E0040001F00C0001F0080000F0100000F8200000786000007C4000003C8000003F |
325 |
0000001F0000001E0000001E0000001E0000001C0000003C0000003C0000003C0000003C000000 |
326 |
3C00000038000000780000007C00000FFFC000201F7A9E22>I<07F8000C0C001E06001E07001C |
327 |
070000070000070000070000FF0007C7001E07003C0E00780E00F00E10F00E10F00E10F01E10F0 |
328 |
2E20784F401F878014147D9317>97 D<0700003F00000F00000700000700000E00000E00000E00 |
329 |
000E00000E00000E00001C00001C7C001D87001E03801C01C01C01C03801C03801E03801E03801 |
330 |
E03801E03801E07003C07003C0700380700780700700700E00E81C00C4380083E00013207B9F19 |
331 |
>I<01FC07060E0F1C0F380E78007000F000F000F000F000E000E000E000E000F0027004300818 |
332 |
300FC010147C9314>I<0000700003F00000F00000700000700000E00000E00000E00000E00000 |
333 |
E00000E00001C000F9C00305C00E03C01C03C03801C0780380700380F00380F00380F00380F003 |
334 |
80E00700E00700E00700E00700E00700700F00301E00186F000F8FE014207C9F19>I<00F80007 |
335 |
0E000E07001C0700380380780380700380F00380F00380FFFF80F00000E00000E00000E00000E0 |
336 |
0000F001007002003004001C180007E00011147D9314>I<0007800018C00031E00061E000E1C0 |
337 |
00C00001C00001C00001C00001C00001C0000380007FF800038000038000038000038000070000 |
338 |
0700000700000700000700000700000E00000E00000E00000E00000E00000E00001C00001E0000 |
339 |
FFE00013207E9F0E>I<00E00007E00001E00000E00000E00001C00001C00001C00001C00001C0 |
340 |
0001C000038000038F800390E003A0E003C0600380600780E00700E00700E00700E00700E00700 |
341 |
E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FFCFF815207E9F19>104 |
342 |
D<01C003E003E003C0018000000000000000000000000003801F80078003800380070007000700 |
343 |
0700070007000E000E000E000E000E000E001C001E00FF800B1F7F9E0C>I<00E007E001E000E0 |
344 |
00E001C001C001C001C001C001C00380038003800380038003800700070007000700070007000E |
345 |
000E000E000E000E000E001C001E00FFC00B207F9F0C>108 D<0387C07C001F9861860007A072 |
346 |
070003C03403000380380300078078070007007007000700700700070070070007007007000700 |
347 |
7007000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E |
348 |
01E01E00FFCFFCFFC022147E9326>I<038F801F90E007A0E003C0600380600780E00700E00700 |
349 |
E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FFCFF81514 |
350 |
7E9319>I<00FC000387000E01801C00C03800E03800E07000F0F000F0F000F0F000F0F000F0E0 |
351 |
01E0E001E0E001C0E003C0F00380700700380E001C1C0007E00014147D9317>I<00E3E007EC38 |
352 |
00F01C00E01E00E00E01C00E01C00F01C00F01C00F01C00F01C00F03801E03801E03801C03803C |
353 |
0380380380700740E00721C0071F000700000700000700000E00000E00000E00000E00001E0000 |
354 |
FFC000181D809319>I<038E001FB38007C78003C7800383000780000700000700000700000700 |
355 |
000700000E00000E00000E00000E00000E00000E00001C00001E0000FFE00011147E9312>114 |
356 |
D<01F2060E080618061802380438001E001FE00FF003F8003C401C400C400C600C6018E010D060 |
357 |
8FC00F147E9312>I<0080010001000100030007000F001E00FFF80E000E000E000E001C001C00 |
358 |
1C001C001C001C00380038203820382038203840384018800F000D1C7C9B12>I<1C0380FC1F80 |
359 |
3C07801C03801C0380380700380700380700380700380700380700700E00700E00700E00700E00 |
360 |
701E00701E00703C00305E001F9FC012147B9319>I<1FF0FF03C07801C06001C04000E08000E1 |
361 |
80007300007600003C00003C00001C00002E00004E000087000107000203800603800C01C03E03 |
362 |
E0FF07FC18147F9318>120 D E /Fj 8 118 df<000380000007C0000007C0000007C0000007C0 |
363 |
000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0000007C0007FFF |
364 |
FFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF80007C0000007C0000007C0000007C0000007C00000 |
365 |
07C0000007C0000007C0000007C0000007C0000007C0000007C0000007C000000380001E217DA5 |
366 |
25>43 D<7FC0000000FFE0000000FFE00000007FE000000003E000000003E000000003E0000000 |
367 |
03E000000003E000000003E000000003E000000003E000000003E000000003E1FE000003E7FF80 |
368 |
0003EFFFC00003FFFFF00003FF07F80003FC01F80003F8007C0003F0003E0003F0003F0003E000 |
369 |
1F0003E0001F0003E0001F8003E0000F8003E0000F8003E0000F8003E0000F8003E0000F8003E0 |
370 |
000F8003E0000F8003E0001F8003E0001F0003F0001F0003F0003E0003F8007E0003F800FC0003 |
371 |
FC01F80003FF07F00003FFFFE00003EFFFC00003E7FF800001C1FC0000212C7FAB25>98 |
372 |
D<001FFC00007FFF0001FFFF8003FFFFC007F00FC00FC00FC01F8007803F0003003E0000007C00 |
373 |
00007C000000FC000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000FC |
374 |
0000007C0000007C0000003E0001C03F0003E01F8003E00FC007E007F03FC003FFFF8001FFFF00 |
375 |
007FFE00001FF0001B1F7B9E25>I<00003FC00000FFE00003FFF00007FFF8000FE1F8000F81F8 |
376 |
001F80F0001F0000001F0000001F0000001F0000001F0000001F00007FFFFFC0FFFFFFE0FFFFFF |
377 |
E07FFFFFC0001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F |
378 |
0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F000000 |
379 |
1F0000001F0000001F0000001F0000001F00003FFFFF807FFFFFC07FFFFFC03FFFFF801D2C7EAB |
380 |
25>102 D<7F80000000FFC0000000FFC00000007FC000000003C000000003C000000003C00000 |
381 |
0003C000000003C000000003C000000003C000000003C000000003C000000003C0FFFE0003C1FF |
382 |
FF0003C1FFFF0003C0FFFE0003C007C00003C00F800003C01F000003C03E000003C07C000003C0 |
383 |
F8000003C1F0000003C3E0000003C7C0000003CFC0000003DFE0000003FFF0000003FCF8000003 |
384 |
F878000003F07C000003E03E000003C01E000003C01F000003C00F800003C007800003C007C000 |
385 |
03C003E00003C001F0007FFE0FFF00FFFF1FFF80FFFF1FFF807FFE0FFF00212C7EAB25>107 |
386 |
D<003FC00000FFF00003FFFC0007FFFE000FE07F001F801F801F000F803E0007C03E0007C07C00 |
387 |
03E07C0003E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0FC |
388 |
0003F07C0003E07C0003E03E0007C03F000FC01F801F801FC03F800FE07F0007FFFE0003FFFC00 |
389 |
00FFF000003FC0001C1F7C9E25>111 D<01FFC60007FFFF001FFFFF003FFFFF007F00FF007C00 |
390 |
3F00F0001F00F0001F00F0001F00F0000E00FC0000007F8000003FFC00001FFFE0000FFFF80003 |
391 |
FFFC00001FFE000000FF0000001F80700007C0F80003C0F80003C0FC0003C0FC0003C0FE0007C0 |
392 |
FF000F80FFC07F00FFFFFE00FFFFFC00F3FFF800607FC0001A1F7B9E25>115 |
393 |
D<7FC03FE000FFE07FF000FFE07FF0007FE03FF00003E001F00003E001F00003E001F00003E001 |
394 |
F00003E001F00003E001F00003E001F00003E001F00003E001F00003E001F00003E001F00003E0 |
395 |
01F00003E001F00003E001F00003E001F00003E001F00003E001F00003E001F00003E001F00003 |
396 |
E003F00003E003F00003F007F00001F81FF00001FFFFFF8000FFFFFFC0007FFDFFC0001FF0FF80 |
397 |
221F7F9E25>117 D E /Fk 46 122 df<000FF80000007FFF000001FC1FC00003F007E00007E0 |
398 |
03F0000FE003F8001FC001FC001FC001FC003FC001FE003F8000FE003F8000FE007F8000FF007F |
399 |
8000FF007F8000FF007F8000FF00FF8000FF80FF8000FF80FF8000FF80FF8000FF80FF8000FF80 |
400 |
FF8000FF80FF8000FF80FF8000FF80FF8000FF80FF8000FF80FF8000FF80FF8000FF80FF8000FF |
401 |
80FF8000FF80FF8000FF80FF8000FF807F8000FF007F8000FF007F8000FF007F8000FF007F8000 |
402 |
FF003F8000FE003FC001FE001FC001FC001FC001FC000FE003F80007E003F00003F007E00001FC |
403 |
1FC000007FFF0000000FF80000212E7DAD28>48 D<0001C0000003C000000FC000007FC0001FFF |
404 |
C000FFFFC000FFBFC000E03FC000003FC000003FC000003FC000003FC000003FC000003FC00000 |
405 |
3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000 |
406 |
003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0 |
407 |
00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0007FFF |
408 |
FFE07FFFFFE07FFFFFE01B2E7AAD28>I<003FE00001FFFE0007FFFF800F80FFC01E003FE03800 |
409 |
1FF07C000FF87E0007FCFF0007FCFF8007FEFF8007FEFF8003FEFF8003FE7F0003FE3E0007FE00 |
410 |
0007FE000007FC000007FC00000FF800000FF800000FF000001FE000001FC000003F8000007F00 |
411 |
00007E000000F8000001F0000003E0000007C000000F0000001E000E003C000E0038000E007000 |
412 |
1E00E0001C01C0001C0300003C07FFFFFC0FFFFFFC1FFFFFFC3FFFFFFC7FFFFFF8FFFFFFF8FFFF |
413 |
FFF8FFFFFFF81F2E7CAD28>I<001FF80000007FFF000001FFFFC00003E03FE00007800FF0000F |
414 |
C00FF8001FE007F8001FE007FC001FE007FC001FE007FC001FE007FC000FC007FC00078007FC00 |
415 |
00000FF80000000FF80000000FF00000001FE00000001FC00000003F80000000FE0000003FF800 |
416 |
00003FFF800000001FE000000007F000000007F800000003FC00000003FE00000001FF00000001 |
417 |
FF00000001FF80000001FF80000001FF801C0001FF803E0001FF807F0001FF80FF8001FF80FF80 |
418 |
01FF00FF8001FF00FF8003FE007F0003FE007E0007FC003C0007F8001FC01FF0000FFFFFC00003 |
419 |
FFFF0000003FF80000212E7DAD28>I<0000007000000000F000000001F000000003F000000007 |
420 |
F00000000FF00000000FF00000001FF00000003FF000000077F0000000F7F0000000E7F0000001 |
421 |
C7F000000387F000000707F000000F07F000000E07F000001C07F000003807F000007007F00000 |
422 |
F007F00000E007F00001C007F000038007F000070007F0000F0007F0000E0007F0001C0007F000 |
423 |
380007F000700007F000E00007F000FFFFFFFFE0FFFFFFFFE0FFFFFFFFE000000FF00000000FF0 |
424 |
0000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000FFF |
425 |
FFE0000FFFFFE0000FFFFFE0232E7EAD28>I<0C0000300FC003F00FFFFFE00FFFFFC00FFFFF80 |
426 |
0FFFFF000FFFFE000FFFF8000FFFF0000FFF80000E0000000E0000000E0000000E0000000E0000 |
427 |
000E0000000E0000000E0000000E1FF0000E7FFE000FE03F800F800FC00E0007E00C0007F00000 |
428 |
07F8000003FC000003FC000003FC000003FE000003FE180003FE3E0003FE7F0003FEFF0003FEFF |
429 |
0003FEFF0003FCFF0003FCFE0003FC780007F8780007F03C000FE01E001FC00FC07F8007FFFF00 |
430 |
01FFFC00003FE0001F2E7CAD28>I<0000FF80000007FFE000001FFFF000007F80F80000FE003C |
431 |
0001F8007C0003F000FE0007F001FE000FE001FE000FE001FE001FC001FE003FC000FC003FC000 |
432 |
78003FC00000007F800000007F800000007F80000000FF83FC0000FF8FFF8000FF9C0FC000FFB0 |
433 |
03F000FFB001F800FFE001FC00FFC001FE00FFC000FE00FFC000FF00FFC000FF00FF8000FF80FF |
434 |
8000FF80FF8000FF80FF8000FF807F8000FF807F8000FF807F8000FF807F8000FF803F8000FF00 |
435 |
3FC000FF001FC000FF001FC000FE000FC001FC0007E001FC0003F003F80001FC0FE00000FFFFC0 |
436 |
00003FFF0000000FFC0000212E7DAD28>I<38000000003E000000003FFFFFFFC03FFFFFFFC03F |
437 |
FFFFFFC03FFFFFFF807FFFFFFF007FFFFFFE007FFFFFFC007FFFFFF80078000038007000007000 |
438 |
700000E000F00001C000E000038000E000070000E00007000000000E000000001C000000003800 |
439 |
00000038000000007800000000F000000000F000000001F000000001E000000003E000000003E0 |
440 |
00000007E000000007E00000000FC00000000FC00000000FC00000001FC00000001FC00000001F |
441 |
C00000001FC00000001FC00000003FC00000003FC00000003FC00000003FC00000003FC0000000 |
442 |
3FC00000003FC00000003FC00000001F800000000F00000022307CAF28>I<000FF80000003FFF |
443 |
000000FFFFC00001F80FE00003E003F00007C001F8000F8001F8000F8000FC000F8000FC001F80 |
444 |
00FC001F8000FC001FC000FC001FC000FC001FF000F8001FFC01F8000FFE01F0000FFF83E00007 |
445 |
FFE7C00007FFFF800003FFFE000001FFFF000000FFFFC000003FFFE00001FFFFF00003E3FFF800 |
446 |
07C1FFFC001F807FFE003F001FFF003E0007FF007E0003FF807E0000FF80FC00007F80FC00003F |
447 |
80FC00001F80FC00001F80FC00001F80FC00001F007E00001F007E00001F007F00003E003F0000 |
448 |
7C001FC000F8000FF007F00003FFFFE00000FFFF8000001FF80000212E7DAD28>I<000FF80000 |
449 |
007FFF000001FFFF800003F80FC00007E007E0000FC003F0001FC001F8003FC001FC007F8001FC |
450 |
007F8001FE007F8000FE00FF8000FF00FF8000FF00FF8000FF00FF8000FF00FF8000FF80FF8000 |
451 |
FF80FF8000FF80FF8000FF807F8001FF807F8001FF803F8001FF803FC001FF801FC003FF800FC0 |
452 |
06FF8007E006FF8001F81CFF8000FFF8FF80001FE0FF80000000FF00000000FF00000000FF0000 |
453 |
0000FF000F0001FE001F8001FE003FC001FC003FC001FC003FC003F8003FC003F0003F8007E000 |
454 |
1F000FC0001E001F80000F80FF000007FFFE000001FFF80000007FC00000212E7DAD28>I<0000 |
455 |
007800000000000078000000000000FC000000000000FC000000000000FC000000000001FE0000 |
456 |
00000001FE000000000003FF000000000003FF000000000007FF800000000007FF800000000007 |
457 |
FF80000000000FFFC0000000000E7FC0000000001E7FE0000000001C3FE0000000001C3FE00000 |
458 |
0000383FF000000000381FF000000000781FF800000000700FF800000000700FF800000000E00F |
459 |
FC00000000E007FC00000001E007FE00000001C003FE00000001C003FE000000038003FF000000 |
460 |
038001FF000000078001FF800000070000FF800000070000FF8000000FFFFFFFC000000FFFFFFF |
461 |
C000001FFFFFFFE000001C00003FE000003C00003FF000003800001FF000003800001FF0000070 |
462 |
00001FF800007000000FF80000F000000FFC0000E0000007FC0000E0000007FC0001C0000007FE |
463 |
0003E0000003FE00FFFF8001FFFFFCFFFF8001FFFFFCFFFF8001FFFFFC36317DB03D>65 |
464 |
D<000003FF80018000003FFFF003800001FFFFFC07800007FF003F0F80001FF800079F80003FC0 |
465 |
0001FF8000FF800000FF8001FE0000007F8003FC0000003F8007FC0000001F8007F80000000F80 |
466 |
0FF00000000F801FF000000007801FF000000007803FE000000007803FE000000003807FE00000 |
467 |
0003807FE000000003807FC000000000007FC00000000000FFC00000000000FFC00000000000FF |
468 |
C00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0000000 |
469 |
0000FFC000000000007FC000000000007FC000000000007FE000000000007FE000000003803FE0 |
470 |
00000003803FE000000003801FF000000003801FF000000007800FF0000000070007F800000007 |
471 |
0007FC0000000E0003FC0000001E0001FE0000001C0000FF8000007800003FC00000F000001FF8 |
472 |
0003E0000007FF003F80000001FFFFFE000000003FFFF80000000003FF80000031317CB03A>67 |
473 |
D<FFFFFFFFFFF0FFFFFFFFFFF0FFFFFFFFFFF000FF80003FF000FF800007F800FF800003F800FF |
474 |
800000F800FF800000F800FF8000007800FF8000007800FF8000003800FF8000003800FF800000 |
475 |
3800FF8000001C00FF8007001C00FF8007001C00FF8007001C00FF8007000000FF8007000000FF |
476 |
800F000000FF801F000000FF803F000000FFFFFF000000FFFFFF000000FFFFFF000000FF803F00 |
477 |
0000FF801F000000FF800F000000FF8007000000FF8007000000FF8007000700FF8007000700FF |
478 |
8007000700FF8000000E00FF8000000E00FF8000000E00FF8000000E00FF8000001E00FF800000 |
479 |
1E00FF8000003C00FF8000003C00FF8000007C00FF800000FC00FF800001FC00FF800007FC00FF |
480 |
80003FFCFFFFFFFFFFF8FFFFFFFFFFF8FFFFFFFFFFF830317EB035>69 D<FFFFFFFFFFE0FFFFFF |
481 |
FFFFE0FFFFFFFFFFE000FF80007FE000FF80000FF000FF800003F000FF800001F000FF800001F0 |
482 |
00FF800000F000FF800000F000FF8000007000FF8000007000FF8000007000FF8000003800FF80 |
483 |
00003800FF8007003800FF8007003800FF8007000000FF8007000000FF8007000000FF800F0000 |
484 |
00FF801F000000FF803F000000FFFFFF000000FFFFFF000000FFFFFF000000FF803F000000FF80 |
485 |
1F000000FF800F000000FF8007000000FF8007000000FF8007000000FF8007000000FF80070000 |
486 |
00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80 |
487 |
00000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000FFFFFFE00000 |
488 |
FFFFFFE00000FFFFFFE000002D317EB033>I<FFFFFF807FFFFFC0FFFFFF807FFFFFC0FFFFFF80 |
489 |
7FFFFFC000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF80 |
490 |
00007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF |
491 |
8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000 |
492 |
FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC000 |
493 |
00FFFFFFFFFFC00000FFFFFFFFFFC00000FFFFFFFFFFC00000FF8000007FC00000FF8000007FC0 |
494 |
0000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007F |
495 |
C00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF800000 |
496 |
7FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000 |
497 |
007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC00000FF8000007FC000FFFFFF |
498 |
807FFFFFC0FFFFFF807FFFFFC0FFFFFF807FFFFFC03A317EB03F>72 D<FFFFFF80FFFFFF80FFFF |
499 |
FF8000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000 |
500 |
FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 |
501 |
00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF80 |
502 |
0000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF |
503 |
800000FF800000FF800000FF800000FF8000FFFFFF80FFFFFF80FFFFFF8019317EB01E>I<FFFF |
504 |
FFE00000FFFFFFE00000FFFFFFE0000000FF8000000000FF8000000000FF8000000000FF800000 |
505 |
0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF |
506 |
8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF800000 |
507 |
0000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF |
508 |
8000000000FF8000000000FF8000000000FF8000000000FF800001C000FF800001C000FF800001 |
509 |
C000FF800001C000FF800003C000FF8000038000FF8000038000FF8000078000FF8000078000FF |
510 |
8000078000FF80000F8000FF80001F8000FF80003F8000FF80007F8000FF8000FF0000FF8007FF |
511 |
00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFF002A317EB030>76 D<FFFFC000000003FFFFFFFFC0 |
512 |
00000003FFFFFFFFE000000007FFFF00FFE000000007FF0000EFF00000000EFF0000EFF0000000 |
513 |
0EFF0000EFF00000000EFF0000E7F80000001CFF0000E7F80000001CFF0000E3FC00000038FF00 |
514 |
00E3FC00000038FF0000E1FE00000070FF0000E1FE00000070FF0000E0FF000000E0FF0000E0FF |
515 |
000000E0FF0000E07F800001C0FF0000E07F800001C0FF0000E03FC0000380FF0000E03FC00003 |
516 |
80FF0000E03FC0000380FF0000E01FE0000700FF0000E01FE0000700FF0000E00FF0000E00FF00 |
517 |
00E00FF0000E00FF0000E007F8001C00FF0000E007F8001C00FF0000E003FC003800FF0000E003 |
518 |
FC003800FF0000E001FE007000FF0000E001FE007000FF0000E000FF00E000FF0000E000FF00E0 |
519 |
00FF0000E000FF00E000FF0000E0007F81C000FF0000E0007F81C000FF0000E0003FC38000FF00 |
520 |
00E0003FC38000FF0000E0001FE70000FF0000E0001FE70000FF0000E0000FFE0000FF0000E000 |
521 |
0FFE0000FF0000E00007FC0000FF0000E00007FC0000FF0000E00007FC0000FF0000E00003F800 |
522 |
00FF0001F00003F80000FF00FFFFE001F000FFFFFFFFFFE001F000FFFFFFFFFFE000E000FFFFFF |
523 |
48317EB04D>I<FFFF800001FFFFC0FFFFC00001FFFFC0FFFFE00001FFFFC000FFF0000003E000 |
524 |
00FFF8000001C00000EFFC000001C00000E7FC000001C00000E7FE000001C00000E3FF000001C0 |
525 |
0000E1FF800001C00000E0FFC00001C00000E07FE00001C00000E03FE00001C00000E03FF00001 |
526 |
C00000E01FF80001C00000E00FFC0001C00000E007FE0001C00000E003FE0001C00000E001FF00 |
527 |
01C00000E001FF8001C00000E000FFC001C00000E0007FE001C00000E0003FF001C00000E0001F |
528 |
F001C00000E0001FF801C00000E0000FFC01C00000E00007FE01C00000E00003FF01C00000E000 |
529 |
01FF81C00000E00000FF81C00000E00000FFC1C00000E000007FE1C00000E000003FF1C00000E0 |
530 |
00001FF9C00000E000000FFDC00000E0000007FDC00000E0000007FFC00000E0000003FFC00000 |
531 |
E0000001FFC00000E0000000FFC00000E00000007FC00000E00000003FC00000E00000003FC000 |
532 |
00E00000001FC00000E00000000FC00001F000000007C000FFFFE0000003C000FFFFE0000001C0 |
533 |
00FFFFE0000001C0003A317EB03F>I<00000FFF0000000000FFFFF000000007FC03FE0000001F |
534 |
E0007F8000003F80001FC000007F00000FE00001FE000007F80003FC000003FC0007F8000001FE |
535 |
0007F8000001FE000FF0000000FF001FF0000000FF801FE00000007F803FE00000007FC03FE000 |
536 |
00007FC03FE00000007FC07FC00000003FE07FC00000003FE07FC00000003FE0FFC00000003FF0 |
537 |
FFC00000003FF0FFC00000003FF0FFC00000003FF0FFC00000003FF0FFC00000003FF0FFC00000 |
538 |
003FF0FFC00000003FF0FFC00000003FF0FFC00000003FF0FFC00000003FF07FC00000003FE07F |
539 |
E00000007FE07FE00000007FE07FE00000007FE03FE00000007FC03FE00000007FC01FF0000000 |
540 |
FF801FF0000000FF800FF8000001FF0007F8000001FE0007FC000003FE0003FC000003FC0001FE |
541 |
000007F80000FF00000FF000003FC0003FC000001FE0007F80000007FC03FE00000000FFFFF000 |
542 |
0000000FFF00000034317CB03D>I<FFFFFFFFE000FFFFFFFFFE00FFFFFFFFFF8000FF8000FFE0 |
543 |
00FF80003FF000FF80000FF800FF800007FC00FF800007FC00FF800003FE00FF800003FE00FF80 |
544 |
0003FF00FF800003FF00FF800003FF00FF800003FF00FF800003FF00FF800003FF00FF800003FF |
545 |
00FF800003FE00FF800003FE00FF800007FC00FF800007F800FF80000FF800FF80003FE000FF80 |
546 |
00FFC000FFFFFFFF0000FFFFFFF80000FF8000000000FF8000000000FF8000000000FF80000000 |
547 |
00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80 |
548 |
00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 |
549 |
00FF8000000000FF8000000000FF80000000FFFFFF800000FFFFFF800000FFFFFF80000030317E |
550 |
B037>I<001FF8018000FFFF038003FFFFC78007F007EF800F8000FF801F00007F803E00001F80 |
551 |
3E00000F807C00000F807C00000780FC00000780FC00000780FC00000380FE00000380FE000003 |
552 |
80FF00000000FFC00000007FF00000007FFF8000003FFFF800003FFFFF80001FFFFFF0000FFFFF |
553 |
F80007FFFFFE0003FFFFFF0000FFFFFF80003FFFFF800001FFFFC000001FFFE0000000FFE00000 |
554 |
003FE00000001FF00000000FF000000007F060000007F0E0000003F0E0000003F0E0000003F0E0 |
555 |
000003E0F0000003E0F0000003E0F8000007C0FC000007C0FF00000F80FFC0001F00FBFC00FE00 |
556 |
F1FFFFF800E03FFFF000C003FF800024317CB02D>83 D<7FFFFFFFFFFF007FFFFFFFFFFF007FFF |
557 |
FFFFFFFF007FC00FF801FF007E000FF8003F007C000FF8001F0078000FF8000F0078000FF8000F |
558 |
0070000FF8000700F0000FF8000780F0000FF8000780F0000FF8000780E0000FF8000380E0000F |
559 |
F8000380E0000FF8000380E0000FF8000380E0000FF800038000000FF800000000000FF8000000 |
560 |
00000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF8 |
561 |
00000000000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000 |
562 |
000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF800 |
563 |
000000000FF800000000000FF800000000000FF800000000000FF800000000000FF80000000000 |
564 |
0FF800000000000FF800000000000FF800000000000FF8000000007FFFFFFF0000007FFFFFFF00 |
565 |
00007FFFFFFF000031307DAF38>I<00FFF0000003FFFE00000F803F80000FC00FE0001FE007F0 |
566 |
001FE007F0001FE003F8000FC003FC00078003FC00000003FC00000003FC00000003FC00000003 |
567 |
FC000000FFFC00001FFFFC0000FFE3FC0003FC03FC000FF003FC001FC003FC003FC003FC007F80 |
568 |
03FC007F8003FC00FF0003FC00FF0003FC00FF0003FC00FF0007FC00FF0007FC007F800DFC003F |
569 |
C019FE001FE070FFF007FFE07FF000FF803FF024207E9F27>97 D<01F8000000FFF8000000FFF8 |
570 |
000000FFF80000000FF800000007F800000007F800000007F800000007F800000007F800000007 |
571 |
F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8000000 |
572 |
07F83FE00007F8FFFC0007FBE07F0007FF001F8007FE000FC007FC000FE007F80007F007F80007 |
573 |
F807F80007F807F80003FC07F80003FC07F80003FC07F80003FE07F80003FE07F80003FE07F800 |
574 |
03FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FC07F80003FC07F80003FC07F8 |
575 |
0007F807F80007F807F80007F007FC000FE007FE000FC007E7003F8007C3C0FE000780FFF80007 |
576 |
003FC00027327EB12D>I<000FFF00007FFFC001FC01F003F003F007E007F80FE007F81FC007F8 |
577 |
3FC003F03FC001E07F8000007F8000007F800000FF800000FF800000FF800000FF800000FF8000 |
578 |
00FF800000FF800000FF8000007F8000007F8000007F8000003FC0001C3FC0001C1FC000380FE0 |
579 |
003807E0007003F001E001FC07C0007FFF00000FF8001E207D9F24>I<0000000FC0000007FFC0 |
580 |
000007FFC0000007FFC00000007FC00000003FC00000003FC00000003FC00000003FC00000003F |
581 |
C00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000000 |
582 |
3FC00007F83FC0003FFF3FC000FE07BFC003F801FFC007E0007FC00FE0007FC01FC0003FC03FC0 |
583 |
003FC03FC0003FC07F80003FC07F80003FC07F80003FC0FF80003FC0FF80003FC0FF80003FC0FF |
584 |
80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC07F80003FC07F80003FC07F80003FC0 |
585 |
3FC0003FC03FC0003FC01FC0003FC00FE0007FC007E000FFC003F003FFE001FC0F3FFE007FFE3F |
586 |
FE000FF03FFE27327DB12D>I<000FFC00007FFF8001FC0FC003F003E007E001F00FE001F81FC0 |
587 |
00FC3FC000FE3FC000FE7F80007E7F80007F7F80007FFF80007FFF80007FFFFFFFFFFFFFFFFFFF |
588 |
800000FF800000FF800000FF8000007F8000007F8000007F8000003FC000071FC000071FC0000E |
589 |
0FE0000E07F0001C03F8007800FE03E0003FFFC00007FE0020207E9F25>I<0001FE00000FFF80 |
590 |
001FC3C0007F07E000FE0FF001FE0FF001FC0FF003FC0FF003FC07E003FC018003FC000003FC00 |
591 |
0003FC000003FC000003FC000003FC000003FC000003FC0000FFFFFC00FFFFFC00FFFFFC0003FC |
592 |
000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003 |
593 |
FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000 |
594 |
03FC000003FC000003FC000003FC000003FC000003FC00007FFFF0007FFFF0007FFFF0001C327E |
595 |
B119>I<001FF007C000FFFE3FE001F83F79F007E00FC3F00FE00FE1F00FC007E0E01FC007F000 |
596 |
1FC007F0003FC007F8003FC007F8003FC007F8003FC007F8003FC007F8001FC007F0001FC007F0 |
597 |
000FC007E0000FE00FE00007E00FC00003F83F000006FFFE00000E1FF000000E000000001E0000 |
598 |
00001E000000001F000000001F800000001FFFFF80000FFFFFF0000FFFFFFC0007FFFFFE0003FF |
599 |
FFFF0003FFFFFF800FFFFFFFC01F00007FC07E00001FE07C00000FE0FC000007E0FC000007E0FC |
600 |
000007E0FC000007E07E00000FC03E00000F803F00001F800FC0007E0007F803FC0001FFFFF000 |
601 |
001FFF0000242F7E9F28>I<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F8 |
602 |
00000007F800000007F800000007F800000007F800000007F800000007F800000007F800000007 |
603 |
F800000007F800000007F800000007F800000007F800000007F807F80007F83FFE0007F8783F00 |
604 |
07F8C03F8007F9801FC007FB001FC007FE001FE007FC001FE007FC001FE007FC001FE007F8001F |
605 |
E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F800 |
606 |
1FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8 |
607 |
001FE007F8001FE007F8001FE0FFFFC3FFFFFFFFC3FFFFFFFFC3FFFF28327DB12D>I<03C00007 |
608 |
E0000FF0001FF8001FF8001FF8001FF8000FF00007E00003C00000000000000000000000000000 |
609 |
000000000000000000000000000001F800FFF800FFF800FFF8000FF80007F80007F80007F80007 |
610 |
F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007 |
611 |
F80007F80007F80007F80007F80007F80007F80007F800FFFF80FFFF80FFFF8011337DB217>I< |
612 |
01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800000007F800000007F80000 |
613 |
0007F800000007F800000007F800000007F800000007F800000007F800000007F800000007F800 |
614 |
000007F800000007F800000007F801FFF807F801FFF807F801FFF807F8003F0007F8003C0007F8 |
615 |
00780007F800F00007F803C00007F807800007F80F000007F81E000007F878000007F8FC000007 |
616 |
F9FE000007FBFE000007FFFF000007FE7F800007FC7FC00007F83FC00007F01FE00007F00FF000 |
617 |
07F00FF80007F007FC0007F003FC0007F001FE0007F000FF0007F000FF8007F0007F8007F0007F |
618 |
C0FFFF81FFFEFFFF81FFFEFFFF81FFFE27327EB12B>107 D<01F800FFF800FFF800FFF8000FF8 |
619 |
0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 |
620 |
0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 |
621 |
0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8 |
622 |
0007F80007F80007F800FFFFC0FFFFC0FFFFC012327DB117>I<03F007F8001FE000FFF03FFE00 |
623 |
FFF800FFF0783F01E0FC00FFF0C03F8300FE000FF1801FC6007F0007F3001FCC007F0007F6001F |
624 |
F8007F8007FC001FF0007F8007FC001FF0007F8007FC001FF0007F8007F8001FE0007F8007F800 |
625 |
1FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8 |
626 |
001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007 |
627 |
F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F8007F8001FE0007F80 |
628 |
07F8001FE0007F8007F8001FE0007F8007F8001FE0007F80FFFFC3FFFF0FFFFCFFFFC3FFFF0FFF |
629 |
FCFFFFC3FFFF0FFFFC3E207D9F43>I<03F007F800FFF03FFE00FFF0783F00FFF0C03F800FF180 |
630 |
1FC007F3001FC007F6001FE007FC001FE007FC001FE007FC001FE007F8001FE007F8001FE007F8 |
631 |
001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007 |
632 |
F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0 |
633 |
07F8001FE0FFFFC3FFFFFFFFC3FFFFFFFFC3FFFF28207D9F2D>I<0007FC0000007FFFC00001FC |
634 |
07F00003F001F80007E000FC000FC0007E001FC0007F003FC0007F803F80003F807F80003FC07F |
635 |
80003FC07F80003FC0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE0 |
636 |
FF80003FE0FF80003FE07F80003FC07F80003FC07F80003FC03FC0007F803FC0007F801FC0007F |
637 |
000FE000FE0007E000FC0003F803F80001FE0FF000007FFFC0000007FC000023207E9F28>I<01 |
638 |
F83FE000FFF8FFFC00FFFBE07F00FFFF003F8007FE001FC007FC000FE007F8000FF007F80007F8 |
639 |
07F80007F807F80007FC07F80003FC07F80003FC07F80003FE07F80003FE07F80003FE07F80003 |
640 |
FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FC07F80007FC07F80007FC07F800 |
641 |
07F807F80007F807F8000FF007FC000FE007FE001FC007FF003F8007FBC0FE0007F8FFF80007F8 |
642 |
3FC00007F800000007F800000007F800000007F800000007F800000007F800000007F800000007 |
643 |
F800000007F800000007F800000007F8000000FFFFC00000FFFFC00000FFFFC00000272E7E9F2D |
644 |
>I<03F03F00FFF07FC0FFF1C3E0FFF187E00FF30FF007F60FF007F60FF007FC07E007FC03C007 |
645 |
FC000007FC000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F80000 |
646 |
07F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F800 |
647 |
00FFFFE000FFFFE000FFFFE0001C207E9F21>114 D<01FF860007FFFE001F00FE003C003E0078 |
648 |
001E0078000E00F8000E00F8000E00F8000E00FC000000FF800000FFFC00007FFFC0007FFFF000 |
649 |
3FFFF8001FFFFC0007FFFE0001FFFF00003FFF000000FF8000003F8060001F80E0000F80E0000F |
650 |
80F0000F80F0000F00F8000F00FC001E00FE001C00FF807800F3FFF000C07F800019207D9F20> |
651 |
I<001C0000001C0000001C0000001C0000001C0000003C0000003C0000003C0000007C0000007C |
652 |
000000FC000001FC000003FC000007FC00001FFFFE00FFFFFE00FFFFFE0003FC000003FC000003 |
653 |
FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000 |
654 |
03FC000003FC000003FC000003FC000003FC038003FC038003FC038003FC038003FC038003FC03 |
655 |
8003FC038001FC038001FC070000FE0700007F0E00003FFC000007F000192E7FAD1F>I<01F800 |
656 |
07E0FFF803FFE0FFF803FFE0FFF803FFE00FF8003FE007F8001FE007F8001FE007F8001FE007F8 |
657 |
001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007 |
658 |
F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0 |
659 |
07F8003FE007F8003FE003F8007FE003F8007FE001FC00DFF000FE039FFF007FFF1FFF000FFC1F |
660 |
FF28207D9F2D>I<FFFF801FFCFFFF801FFCFFFF801FFC0FF80003C007F800038007FC00078003 |
661 |
FC00070003FE000F0001FE000E0001FF000E0000FF001C0000FF001C00007F803800007F803800 |
662 |
007FC07800003FC07000003FE0F000001FE0E000001FF1E000000FF1C000000FF9C0000007FB80 |
663 |
000007FB80000003FF00000003FF00000003FF00000001FE00000001FE00000000FC00000000FC |
664 |
00000000780000000078000026207E9F2B>I<FFFF1FFFE07FF8FFFF1FFFE07FF8FFFF1FFFE07F |
665 |
F80FF000FE0007800FF800FE00078007F800FE00070007F8007F00070003FC007F000E0003FC00 |
666 |
FF800E0003FE00FF801E0001FE00FF801C0001FE01DFC01C0001FF01DFC03C0000FF03DFE03800 |
667 |
00FF838FE07800007F838FE07000007F8707F07000007FC707F0F000003FCF07F8E000003FCE03 |
668 |
F8E000001FEE03F9C000001FFC01FDC000001FFC01FFC000000FFC01FF8000000FF800FF800000 |
669 |
07F800FF00000007F0007F00000007F0007F00000003F0007E00000003E0003E00000001E0003C |
670 |
00000001C0001C000035207E9F3A>I<7FFF807FFC7FFF807FFC7FFF807FFC03FE000F0001FE00 |
671 |
1E0000FF003C0000FF807800007FC07800003FE0F000001FE1E000000FF3C000000FFF80000007 |
672 |
FF00000003FE00000001FE00000000FF00000000FF80000000FFC0000001FFC0000003DFE00000 |
673 |
078FF00000078FF800000F07FC00001E03FC00003C01FE00007800FF0000F000FF8000E0007FC0 |
674 |
01E0003FC0FFFC01FFFFFFFC01FFFFFFFC01FFFF28207F9F2B>I<FFFF801FFCFFFF801FFCFFFF |
675 |
801FFC0FF80003C007F800038007FC00078003FC00070003FE000F0001FE000E0001FF000E0000 |
676 |
FF001C0000FF001C00007F803800007F803800007FC07800003FC07000003FE0F000001FE0E000 |
677 |
001FF1E000000FF1C000000FF9C0000007FB80000007FB80000003FF00000003FF00000003FF00 |
678 |
000001FE00000001FE00000000FC00000000FC0000000078000000007800000000700000000070 |
679 |
00000000F000000000E000000001E000007C01C00000FE03C00000FE03800000FE07800000FE0F |
680 |
000000FC1E000000787C0000003FF00000000FC0000000262E7E9F2B>I |
681 |
E /Fl 3 16 df<FFFFFFC0FFFFFFC01A027C8B23>0 D<0001FE00000007FF8000001E01E00000 |
682 |
7800780000E0001C000180000600030000030006000001800C000000C00C000000C01800000060 |
683 |
300000003030000000303000000030600000001860000000186000000018C00000000CC0000000 |
684 |
0CC00000000CC00000000CC00000000CC00000000CC00000000CC00000000CC00000000C600000 |
685 |
00186000000018600000001830000000303000000030300000003018000000600C000000C00C00 |
686 |
0000C006000001800300000300018000060000E0001C000078007800001E01E0000007FF800000 |
687 |
01FE0000262B7DA02D>13 D<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7F |
688 |
FE3FFC1FF80FF003C010127D9317>15 D E /Fm 54 122 df<1C007F007F00FF80FF80FF807F00 |
689 |
7F001C0009097B8813>46 D<003F800001FFF00007E0FC000FC07E001F803F001F001F003F001F |
690 |
803E000F807E000FC07E000FC07E000FC07E000FC0FE000FE0FE000FE0FE000FE0FE000FE0FE00 |
691 |
0FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE |
692 |
000FE07E000FC07E000FC07E000FC07E000FC03F001F803F001F801F001F001F803F000FC07E00 |
693 |
07E0FC0001FFF000003F80001B277DA622>48 D<000E00001E00007E0007FE00FFFE00FFFE00F8 |
694 |
FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000 |
695 |
FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000 |
696 |
FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>I<00FF800007FFF0000FFFFC00 |
697 |
1E03FE003800FF807C003F80FE003FC0FF001FC0FF001FE0FF000FE0FF000FE07E000FE03C001F |
698 |
E000001FE000001FC000001FC000003F8000003F0000007E000000FC000000F8000001F0000003 |
699 |
E00000078000000F0000001E0000003C00E0007000E000E000E001C001C0038001C0060001C00F |
700 |
FFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003 |
701 |
FFF00007FFFC000F80FE001F007F003F807F003F803F803F803F803F803F801F803F801F003F80 |
702 |
00007F0000007F0000007E000000FC000001F8000007F00000FFC00000FFC0000001F80000007E |
703 |
0000003F0000003F8000001FC000001FC000001FE000001FE03C001FE07E001FE0FF001FE0FF00 |
704 |
1FE0FF001FC0FF003FC0FE003F807C007F003F00FE001FFFFC0007FFF00000FF80001B277DA622 |
705 |
>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE0000077E0000 |
706 |
0E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E0003807E0007007E00 |
707 |
0E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE |
708 |
000000FE000000FE000000FE000000FE000000FE000000FE000000FE00007FFFF8007FFFF8007F |
709 |
FFF81D277EA622>I<180003001F801F001FFFFE001FFFFC001FFFF8001FFFF0001FFFC0001FFF |
710 |
00001C0000001C0000001C0000001C0000001C0000001C0000001C0000001C7FC0001DFFF8001F |
711 |
80FC001E003F0008003F0000001F8000001FC000001FC000001FE000001FE018001FE07C001FE0 |
712 |
FE001FE0FE001FE0FE001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFFC |
713 |
0003FFF00000FF80001B277DA622>I<0007F800003FFE0000FFFF0001FC078003F00FC007C01F |
714 |
C00F801FC01F801FC01F001FC03F000F803F0000007E0000007E0000007E000000FE020000FE1F |
715 |
F000FE3FFC00FE603E00FE801F00FF801F80FF000FC0FF000FC0FE000FE0FE000FE0FE000FE0FE |
716 |
000FE07E000FE07E000FE07E000FE07E000FE03E000FE03F000FC01F000FC01F001F800F801F00 |
717 |
07E07E0003FFFC0001FFF800003FC0001B277DA622>I<380000003E0000003FFFFFF03FFFFFF0 |
718 |
3FFFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C00E0003800E00070 |
719 |
00E000E0000001E0000001C000000380000007800000070000000F0000001F0000001E0000003E |
720 |
0000003E0000007E0000007C0000007C000000FC000000FC000000FC000000FC000001FC000001 |
721 |
FC000001FC000001FC000001FC000001FC000001FC000000F80000007000001C297CA822>I<00 |
722 |
3FC00001FFF00003FFFC0007C07E000F003F001E001F001E000F803E000F803E000F803F000F80 |
723 |
3F800F803FC00F803FF01F001FFC1E001FFE3C000FFFF8000FFFE00007FFF80001FFFC0001FFFE |
724 |
0007FFFF000F0FFF801E03FFC03E01FFC07C007FE07C001FE0F8000FE0F80007E0F80003E0F800 |
725 |
03E0F80003E0F80003C07C0003C07E0007803F000F001FC03F000FFFFC0003FFF800007FC0001B |
726 |
277DA622>I<007F800001FFF00007FFF8000FC0FC001F803E003F001F007E001F807E001F807E |
727 |
000F80FE000FC0FE000FC0FE000FC0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE07E001FE0 |
728 |
7E001FE03F003FE01F002FE00F80CFE007FF8FE001FF0FE000080FE000000FC000000FC000000F |
729 |
C000001F803E001F807F001F807F003F007F003E007F007E007E00FC003E03F8001FFFE0000FFF |
730 |
800001FE00001B277DA622>I<1C007F007F00FF80FF80FF807F007F001C000000000000000000 |
731 |
000000000000000000001C007F007F00FF80FF80FF807F007F001C00091B7B9A13>I<00000780 |
732 |
000000000780000000000FC0000000000FC0000000000FC0000000001FE0000000001FE0000000 |
733 |
003FF0000000003FF0000000003FF00000000077F80000000077F800000000F7FC00000000E3FC |
734 |
00000000E3FC00000001C1FE00000001C1FE00000003C1FF0000000380FF0000000380FF000000 |
735 |
07007F80000007007F8000000F007FC000000E003FC000000E003FC000001C001FE000001C001F |
736 |
E000003FFFFFF000003FFFFFF000003FFFFFF00000700007F80000700007F80000F00007FC0000 |
737 |
E00003FC0000E00003FC0001C00001FE0001C00001FE0003C00001FF00FFFE003FFFFCFFFE003F |
738 |
FFFCFFFE003FFFFC2E297EA833>65 D<FFFFFFF800FFFFFFFF00FFFFFFFFC003F8001FE003F800 |
739 |
0FF003F80007F803F80003F803F80003FC03F80003FC03F80001FC03F80001FC03F80001FC03F8 |
740 |
0003FC03F80003F803F80003F803F80007F003F8000FF003F8001FC003F800FF8003FFFFFE0003 |
741 |
FFFFFFC003F8000FF003F80003F803F80001FC03F80001FE03F80000FE03F80000FE03F80000FF |
742 |
03F80000FF03F80000FF03F80000FF03F80000FF03F80000FF03F80000FE03F80001FE03F80003 |
743 |
FC03F80007FC03F8001FF8FFFFFFFFE0FFFFFFFFC0FFFFFFFE0028297DA830>I<00007FE00300 |
744 |
07FFFC07001FFFFF0F007FF00F9F00FF0001FF01FC0000FF03F800007F07F000003F0FE000001F |
745 |
1FC000001F1FC000000F3F8000000F3F800000077F800000077F800000077F00000000FF000000 |
746 |
00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF0000 |
747 |
00007F000000007F800000007F800000073F800000073F800000071FC00000071FC000000E0FE0 |
748 |
00000E07F000001C03F800003C01FC00007800FF0001F0007FF007C0001FFFFF800007FFFE0000 |
749 |
007FF00028297CA831>I<FFFFFFFC0000FFFFFFFF8000FFFFFFFFE00003FC001FF80003FC0003 |
750 |
FC0003FC0000FE0003FC00007F0003FC00003F8003FC00001FC003FC00001FC003FC00000FE003 |
751 |
FC00000FE003FC000007F003FC000007F003FC000007F003FC000007F003FC000007F803FC0000 |
752 |
07F803FC000007F803FC000007F803FC000007F803FC000007F803FC000007F803FC000007F803 |
753 |
FC000007F803FC000007F803FC000007F003FC000007F003FC000007F003FC00000FE003FC0000 |
754 |
0FE003FC00000FC003FC00001FC003FC00003F8003FC00007F0003FC0000FF0003FC0003FC0003 |
755 |
FC001FF800FFFFFFFFF000FFFFFFFF8000FFFFFFFC00002D297EA834>I<FFFFFFFFE0FFFFFFFF |
756 |
E0FFFFFFFFE003FC001FE003FC0007F003FC0001F003FC0001F003FC0000F003FC00007003FC00 |
757 |
007003FC00007003FC01C07803FC01C03803FC01C03803FC01C03803FC03C00003FC03C00003FC |
758 |
0FC00003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C00003FC03C00003FC01C00E03 |
759 |
FC01C00E03FC01C00E03FC01C01C03FC00001C03FC00001C03FC00001C03FC00003C03FC000038 |
760 |
03FC00007803FC0000F803FC0001F803FC0003F803FC001FF8FFFFFFFFF0FFFFFFFFF0FFFFFFFF |
761 |
F027297EA82C>I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003FC000FE003FC0003E003 |
762 |
FC0001E003FC0001E003FC0000E003FC0000E003FC0000E003FC0000F003FC01C07003FC01C070 |
763 |
03FC01C07003FC01C00003FC03C00003FC03C00003FC0FC00003FFFFC00003FFFFC00003FFFFC0 |
764 |
0003FC0FC00003FC03C00003FC03C00003FC01C00003FC01C00003FC01C00003FC01C00003FC00 |
765 |
000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC |
766 |
000000FFFFFC0000FFFFFC0000FFFFFC000024297EA82A>I<00007FE003000007FFFC0700001F |
767 |
FFFF0F00007FF00F9F0000FF0001FF0001FC0000FF0003F800007F0007F000003F000FE000001F |
768 |
001FC000001F001FC000000F003F8000000F003F80000007007F80000007007F80000007007F00 |
769 |
00000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF00000000 |
770 |
00FF0000000000FF0000000000FF0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F80 |
771 |
0000FF003F800000FF001FC00000FF001FC00000FF000FE00000FF0007F00000FF0003F80000FF |
772 |
0001FC0000FF0000FF0001FF00007FF007FF00001FFFFF9F000007FFFE0F0000007FF003002D29 |
773 |
7CA835>I<FFFFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF03FC00003FC003FC00003FC003FC0000 |
774 |
3FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003 |
775 |
FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FFFFFF |
776 |
FFC003FFFFFFFFC003FFFFFFFFC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003 |
777 |
FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC0000 |
778 |
3FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0FF |
779 |
FFF00FFFFFFFFFF00FFFFFFFFFF00FFFFF30297EA835>I<FFFFFCFFFFFCFFFFFC01FE0001FE00 |
780 |
01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00 |
781 |
01FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE00 |
782 |
01FE0001FE0001FE0001FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297FA819>I<FFFF |
783 |
FC0000FFFFFC0000FFFFFC000003FC00000003FC00000003FC00000003FC00000003FC00000003 |
784 |
FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000 |
785 |
03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000 |
786 |
0003FC0001C003FC0001C003FC0001C003FC0001C003FC0003C003FC00038003FC00038003FC00 |
787 |
078003FC00078003FC000F8003FC000F8003FC001F8003FC007F8003FC01FF00FFFFFFFF00FFFF |
788 |
FFFF00FFFFFFFF0022297EA828>76 D<FFFE0000003FFF80FFFE0000003FFF80FFFF0000007FFF |
789 |
8003FF0000007FE00003FF0000007FE00003BF800000EFE00003BF800000EFE000039FC00001CF |
790 |
E000039FC00001CFE000038FE000038FE000038FE000038FE000038FE000038FE0000387F00007 |
791 |
0FE0000387F000070FE0000383F8000E0FE0000383F8000E0FE0000381FC001C0FE0000381FC00 |
792 |
1C0FE0000381FC001C0FE0000380FE00380FE0000380FE00380FE00003807F00700FE00003807F |
793 |
00700FE00003803F80E00FE00003803F80E00FE00003803F80E00FE00003801FC1C00FE0000380 |
794 |
1FC1C00FE00003800FE3800FE00003800FE3800FE000038007F7000FE000038007F7000FE00003 |
795 |
8007F7000FE000038003FE000FE000038003FE000FE000038001FC000FE000038001FC000FE000 |
796 |
038000F8000FE000FFFE00F803FFFF80FFFE00F803FFFF80FFFE007003FFFF8039297DA840>I< |
797 |
FFFC00007FFFFFFE00007FFFFFFF00007FFF03FF800001C003FFC00001C003BFE00001C0039FE0 |
798 |
0001C0039FF00001C0038FF80001C00387FC0001C00383FE0001C00381FF0001C00380FF8001C0 |
799 |
03807F8001C003807FC001C003803FE001C003801FF001C003800FF801C0038007FC01C0038003 |
800 |
FC01C0038003FE01C0038001FF01C0038000FF81C00380007FC1C00380003FE1C00380001FF1C0 |
801 |
0380000FF1C00380000FF9C003800007FDC003800003FFC003800001FFC003800000FFC0038000 |
802 |
007FC0038000007FC0038000003FC0038000001FC0038000000FC00380000007C0FFFE000003C0 |
803 |
FFFE000001C0FFFE000001C030297EA835>I<0000FFC00000000FFFFC0000003F807F000000FE |
804 |
001FC00001F80007E00003F00003F00007E00001F8000FE00001FC001FC00000FE001FC00000FE |
805 |
003F8000007F003F8000007F007F8000007F807F0000003F807F0000003F807F0000003F80FF00 |
806 |
00003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003F |
807 |
C0FF0000003FC0FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000007F803F80 |
808 |
00007F003F8000007F001FC00000FE001FC00000FE000FE00001FC0007F00003F80003F80007F0 |
809 |
0001FC000FE00000FE001FC000003FC0FF0000000FFFFC00000000FFC000002A297CA833>I<FF |
810 |
FFFFF800FFFFFFFF00FFFFFFFFC003FC003FE003FC0007F003FC0003F803FC0003FC03FC0001FC |
811 |
03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001FE03FC0001 |
812 |
FC03FC0003FC03FC0003F803FC0007F003FC003FE003FFFFFF8003FFFFFE0003FC00000003FC00 |
813 |
000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC |
814 |
00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000FFFFF00000FF |
815 |
FFF00000FFFFF0000027297EA82E>I<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC003FE0 |
816 |
0003FC000FF00003FC0007F80003FC0003FC0003FC0001FC0003FC0001FE0003FC0001FE0003FC |
817 |
0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FC0003FC0003F80003FC0007F8 |
818 |
0003FC000FE00003FC003FC00003FFFFFE000003FFFFFE000003FC00FF800003FC003FC00003FC |
819 |
001FE00003FC000FF00003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F8 |
820 |
0003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80E03FC0007F80E03FC |
821 |
0003F80E03FC0001FC1CFFFFF000FE1CFFFFF0007FF8FFFFF0000FE02F297EA832>82 |
822 |
D<00FF00C003FFE1C00FFFF9C01F80FFC03F003FC03E000FC07C0007C07C0007C0FC0003C0FC00 |
823 |
03C0FC0001C0FE0001C0FE0001C0FF000000FFC000007FFC00007FFFE0003FFFF8001FFFFE001F |
824 |
FFFF0007FFFF8003FFFFC000FFFFC0000FFFE000007FE000001FF000000FF0000007F0E00003F0 |
825 |
E00003F0E00003F0E00003F0F00003E0F00003E0F80007E0FC0007C0FF000F80FFE01F80E3FFFF |
826 |
00E1FFFC00C01FF0001C297CA825>I<7FFFFFFFFF807FFFFFFFFF807FFFFFFFFF807F807F807F |
827 |
807C007F800F8078007F80078078007F80078070007F800380F0007F8003C0F0007F8003C0E000 |
828 |
7F8001C0E0007F8001C0E0007F8001C0E0007F8001C0E0007F8001C000007F80000000007F8000 |
829 |
0000007F80000000007F80000000007F80000000007F80000000007F80000000007F8000000000 |
830 |
7F80000000007F80000000007F80000000007F80000000007F80000000007F80000000007F8000 |
831 |
0000007F80000000007F80000000007F80000000007F80000000007F80000000007F8000000000 |
832 |
7F80000000FFFFFFC00000FFFFFFC00000FFFFFFC0002A287EA72F>I<FFFFF000FFFEFFFFF000 |
833 |
FFFEFFFFF000FFFE03FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003 |
834 |
FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000 |
835 |
038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003 |
836 |
FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000 |
837 |
038003FC0000038003FC0000038003FC0000038001FC0000070001FE0000070000FE00000E0000 |
838 |
7F00000E00003F00003C00001FC0007800000FF003F0000007FFFFE0000000FFFF800000001FFC |
839 |
00002F297EA834>I<FFFFE0FFFFE01FFFC0FFFFE0FFFFE01FFFC0FFFFE0FFFFE01FFFC003FC00 |
840 |
03FC0000700003FC0003FC0000700003FE0003FE0000F00001FE0001FE0000E00001FE0001FE00 |
841 |
00E00001FF0001FF0001E00000FF0001FF0001C00000FF0001FF0001C000007F8003FF80038000 |
842 |
007F8003FF80038000007FC007FFC0078000003FC0073FC0070000003FC0073FC0070000003FE0 |
843 |
0F3FE00F0000001FE00E1FE00E0000001FE00E1FE00E0000000FF01C0FF01C0000000FF01C0FF0 |
844 |
1C0000000FF01C0FF81C00000007F83807F83800000007F83807F83800000007FC7807FC780000 |
845 |
0003FC7003FC7000000003FC7003FC7000000003FEF003FEF000000001FEE001FEE000000001FE |
846 |
E001FEE000000000FFC000FFC000000000FFC000FFC000000000FFC000FFC0000000007F80007F |
847 |
80000000007F80007F80000000007F80007F80000000003F00003F00000000003F00003F000000 |
848 |
00003F00003F00000000001E00001E00000000001E00001E00000042297FA845>87 |
849 |
D<03FF80000FFFF0001F01FC003F80FE003F807F003F803F003F803F801F003F8000003F800000 |
850 |
3F8000003F8000003F80003FFF8001FC3F800FE03F801F803F803F003F807E003F80FC003F80FC |
851 |
003F80FC003F80FC003F80FC005F807E00DF803F839FFC1FFE0FFC03F803FC1E1B7E9A21>97 |
852 |
D<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0 |
853 |
00000FE000000FE000000FE000000FE000000FE000000FE1FE000FE7FF800FFE07E00FF803F00F |
854 |
F001F80FE000FC0FE000FC0FE0007E0FE0007E0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F |
855 |
0FE0007F0FE0007F0FE0007F0FE0007E0FE0007E0FE0007E0FE000FC0FE000FC0FF001F80FF803 |
856 |
F00F9C0FE00F0FFF800E01FC00202A7EA925>I<003FF00001FFFC0003F03E000FC07F001F807F |
857 |
003F007F003F007F007F003E007E0000007E000000FE000000FE000000FE000000FE000000FE00 |
858 |
0000FE000000FE0000007E0000007E0000007F0000003F0003803F8003801F8007000FE00E0003 |
859 |
F83C0001FFF800003FC000191B7E9A1E>I<00007FF000007FF000007FF0000007F0000007F000 |
860 |
0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0 |
861 |
003F87F001FFF7F007F03FF00FC00FF01F8007F03F0007F03F0007F07E0007F07E0007F07E0007 |
862 |
F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F07E0007F07E00 |
863 |
07F03F0007F03F0007F01F800FF00FC01FF007E07FFF01FFE7FF007F87FF202A7EA925>I<003F |
864 |
C00001FFF00003E07C000F803E001F801F001F001F003F000F807E000F807E000FC07E000FC0FE |
865 |
0007C0FE0007C0FFFFFFC0FFFFFFC0FE000000FE000000FE0000007E0000007E0000007F000000 |
866 |
3F0001C01F0001C00F80038007C0070003F01E0000FFFC00003FE0001A1B7E9A1F>I<0007F800 |
867 |
3FFC007E3E01FC7F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007 |
868 |
F000FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007 |
869 |
F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807F |
870 |
FF807FFF80182A7EA915>I<007F80F001FFE3F807C0FE1C0F807C7C1F003E7C1F003E103F003F |
871 |
003F003F003F003F003F003F003F003F003F003F001F003E001F003E000F807C0007C0F80005FF |
872 |
E0000C7F8000180000001C0000001C0000001E0000001FFFF8001FFFFF000FFFFFC007FFFFE003 |
873 |
FFFFF00FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C0001F07C0001F0 |
874 |
3F0007E00FC01F8007FFFF00007FF0001E287E9A22>I<FFE00000FFE00000FFE000000FE00000 |
875 |
0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000 |
876 |
000FE000000FE07E000FE1FF800FE30FC00FE40FE00FE807E00FF807F00FF007F00FF007F00FE0 |
877 |
07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F |
878 |
E007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF202A7DA9 |
879 |
25>I<07000F801FC03FE03FE03FE01FC00F8007000000000000000000000000000000FFE0FFE0 |
880 |
FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F |
881 |
E00FE00FE0FFFEFFFEFFFE0F2B7EAA12>I<FFE00000FFE00000FFE000000FE000000FE000000F |
882 |
E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000 |
883 |
0FE03FF80FE03FF80FE03FF80FE007000FE00E000FE03C000FE078000FE0F0000FE1E0000FE3C0 |
884 |
000FE780000FEFC0000FFFE0000FFFE0000FF7F0000FE3F8000FC1FC000FC1FC000FC0FE000FC0 |
885 |
7F000FC07F000FC03F800FC01FC00FC01FC0FFFC7FFCFFFC7FFCFFFC7FFC1E2A7EA923>107 |
886 |
D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 |
887 |
0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F |
888 |
E0FFFEFFFEFFFE0F2A7EA912>I<FFC07F001FC000FFC1FFC07FF000FFC307E0C1F8000FC407F1 |
889 |
01FC000FC803F200FC000FD803FE00FE000FD003FC00FE000FD003FC00FE000FE003F800FE000F |
890 |
E003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800 |
891 |
FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE0 |
892 |
03F800FE000FE003F800FE000FE003F800FE000FE003F800FE00FFFE3FFF8FFFE0FFFE3FFF8FFF |
893 |
E0FFFE3FFF8FFFE0331B7D9A38>I<FFC07E00FFC1FF80FFC30FC00FC40FE00FC807E00FD807F0 |
894 |
0FD007F00FD007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007 |
895 |
F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE3FFFFFFE |
896 |
3FFFFFFE3FFF201B7D9A25>I<003FE00001FFFC0003F07E000FC01F801F800FC03F0007E03F00 |
897 |
07E07E0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE |
898 |
0003F8FE0003F87E0003F07E0003F03F0007E03F0007E01F800FC00FC01F8007F07F0001FFFC00 |
899 |
003FE0001D1B7E9A22>I<FFE1FE00FFE7FF80FFFE0FE00FF803F00FF001F80FE001FC0FE000FC |
900 |
0FE000FE0FE000FE0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE000 |
901 |
7F0FE0007E0FE000FE0FE000FE0FE000FC0FE001FC0FF001F80FF803F00FFC0FE00FEFFF800FE1 |
902 |
FC000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000FF |
903 |
FE0000FFFE0000FFFE000020277E9A25>I<FFC3E0FFC7F8FFCC7C0FD8FE0FD0FE0FD0FE0FF0FE |
904 |
0FE07C0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000 |
905 |
0FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00171B7E9A1B>114 D<03FE300FFFF03E03F0 |
906 |
7800F07000F0F00070F00070F80070FE0000FFE0007FFF007FFFC03FFFE01FFFF007FFF800FFF8 |
907 |
0007FC0000FCE0007CE0003CF0003CF00038F80038FC0070FF01E0E7FFC0C1FF00161B7E9A1B> |
908 |
I<00700000700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFE0FFFF |
909 |
E0FFFFE007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 |
910 |
0007F00007F07007F07007F07007F07007F07007F07007F07003F0E001F8C000FFC0003F001426 |
911 |
7FA51A>I<FFE07FF0FFE07FF0FFE07FF00FE007F00FE007F00FE007F00FE007F00FE007F00FE0 |
912 |
07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F |
913 |
E007F00FE007F00FE007F00FE00FF00FE00FF007E017F003F067FF01FFC7FF007F87FF201B7D9A |
914 |
25>I<FFFE07FFFFFE07FFFFFE07FF07F000E007F000E007F801E003F801C003F801C001FC0380 |
915 |
01FC038001FE078000FE070000FF0F00007F0E00007F0E00003F9C00003F9C00003FFC00001FF8 |
916 |
00001FF800000FF000000FF000000FF0000007E0000007E0000003C0000003C000201B7F9A23> |
917 |
I<FFFC7FFC1FFCFFFC7FFC1FFCFFFC7FFC1FFC0FE00FE001C007F007E0038007F007E0038007F8 |
918 |
07F0078003F807F0070003F807F8070001FC0FF80E0001FC0FF80E0001FE1FFC1E0000FE1CFC1C |
919 |
0000FE1CFE1C0000FF387E3C00007F387E3800007F787F3800003FF03F7000003FF03F7000003F |
920 |
E01FF000001FE01FE000001FE01FE000000FC00FC000000FC00FC000000FC00FC0000007800780 |
921 |
000007800780002E1B7F9A31>I<FFFC1FFEFFFC1FFEFFFC1FFE07F0078003F8070001FC0F0001 |
922 |
FE1E0000FE3C00007F7800003FF800003FF000001FE000000FE0000007F0000007F800000FF800 |
923 |
001FFC00003DFE000038FF0000787F0000F03F8001E03FC003C01FE003800FE0FFF03FFFFFF03F |
924 |
FFFFF03FFF201B7F9A23>I<FFFE07FFFFFE07FFFFFE07FF07F000E007F000E007F801E003F801 |
925 |
C003F801C001FC038001FC038001FE078000FE070000FF0F00007F0E00007F0E00003F9C00003F |
926 |
9C00003FFC00001FF800001FF800000FF000000FF0000007F0000007E0000007E0000003C00000 |
927 |
03C000000380000003800000078000380700007C070000FE0E0000FE0E0000FE1C0000FE380000 |
928 |
7C7000003FE000000F80000020277F9A23>I E /Fn 79 125 df<001F83E000F06E3001C07878 |
929 |
0380F8780300F03007007000070070000700700007007000070070000700700007007000FFFFFF |
930 |
800700700007007000070070000700700007007000070070000700700007007000070070000700 |
931 |
700007007000070070000700700007007000070070000700700007007000070070007FE3FF001D |
932 |
20809F1B>11 D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700 |
933 |
00070000FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 |
934 |
E00700E00700E00700E00700E00700E00700E00700E07FC3FE1720809F19>I<003FE000E0E001 |
935 |
C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE00700E00700E007 |
936 |
00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007 |
937 |
00E00700E00700E07FE7FE1720809F19>I<70F8F8F8F8F8F8F870707070707070707070202020 |
938 |
2020000000000070F8F8F87005217CA00D>33 D<00780000008400000184000003020000070200 |
939 |
00070200000702000007020000070400000704000007080000070800000310000003A00FFC03C0 |
940 |
03E0038001C001C0008001C0010003E0010004E0020008F0020018700400307808007038080070 |
941 |
1C1000F01E1000F00E2000F0074000F003C0087003C0087801C010380670301C18386007E00F80 |
942 |
1E227EA023>38 D<70F8FCFC74040404080810102040060E7C9F0D>I<00200040008001000200 |
943 |
06000C000C00180018003000300030007000600060006000E000E000E000E000E000E000E000E0 |
944 |
00E000E000E000E0006000600060007000300030003000180018000C000C000600020001000080 |
945 |
004000200B2E7DA112>I<800040002000100008000C00060006000300030001800180018001C0 |
946 |
00C000C000C000E000E000E000E000E000E000E000E000E000E000E000E000C000C000C001C001 |
947 |
800180018003000300060006000C00080010002000400080000B2E7DA112>I<01800180018001 |
948 |
800180C183F18F399C0FF003C003C00FF0399CF18FC1830180018001800180018010147DA117> |
949 |
I<70F8FCFC74040404080810102040060E7C840D>44 D<FFC0FFC00A027F8A0F>I<70F8F8F870 |
950 |
05057C840D>I<000100030003000600060006000C000C000C0018001800180030003000300060 |
951 |
0060006000C000C000C00180018001800300030003000600060006000C000C000C001800180018 |
952 |
00300030003000600060006000C000C000C000102D7DA117>I<03F0000E1C001C0E0018060038 |
953 |
0700700380700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F0 |
954 |
03C0F003C0F003C0F003C0F003C07003807003807003807807803807001806001C0E000E1C0003 |
955 |
F000121F7E9D17>I<018003800F80F38003800380038003800380038003800380038003800380 |
956 |
038003800380038003800380038003800380038003800380038007C0FFFE0F1E7C9D17>I<03F0 |
957 |
000C1C00100E00200700400780800780F007C0F803C0F803C0F803C02007C00007C00007800007 |
958 |
80000F00000E00001C0000380000700000600000C0000180000300000600400C00401800401000 |
959 |
803FFF807FFF80FFFF80121E7E9D17>I<03F0000C1C00100E00200F00780F8078078078078038 |
960 |
0F80000F80000F00000F00000E00001C0000380003F000003C00000E00000F0000078000078000 |
961 |
07C02007C0F807C0F807C0F807C0F00780400780400F00200E001C3C0003F000121F7E9D17>I< |
962 |
000600000600000E00000E00001E00002E00002E00004E00008E00008E00010E00020E00020E00 |
963 |
040E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00000E00000E00000E00 |
964 |
000E00000E00000E0000FFE0141E7F9D17>I<1803001FFE001FFC001FF8001FE0001000001000 |
965 |
0010000010000010000010000011F000161C00180E001007001007800003800003800003C00003 |
966 |
C00003C07003C0F003C0F003C0E00380400380400700200600100E000C380003E000121F7E9D17 |
967 |
>I<007C000182000701000E03800C07801C0780380300380000780000700000700000F1F000F2 |
968 |
1C00F40600F80700F80380F80380F003C0F003C0F003C0F003C0F003C07003C07003C070038038 |
969 |
03803807001807000C0E00061C0001F000121F7E9D17>I<4000007FFFC07FFF807FFF80400100 |
970 |
80020080020080040000080000080000100000200000200000400000400000C00000C00001C000 |
971 |
018000038000038000038000038000078000078000078000078000078000078000078000030000 |
972 |
121F7D9D17>I<03F0000C0C001006003003002001806001806001806001807001807803003E03 |
973 |
003F06001FC8000FF00003F80007FC000C7E00103F00300F806003804001C0C001C0C000C0C000 |
974 |
C0C000C0C000806001802001001002000C0C0003F000121F7E9D17>I<03F0000E18001C0C0038 |
975 |
0600380700700700700380F00380F00380F003C0F003C0F003C0F003C0F003C07007C07007C038 |
976 |
07C0180BC00E13C003E3C0000380000380000380000700300700780600780E00700C0020180010 |
977 |
70000FC000121F7E9D17>I<70F8F8F8700000000000000000000070F8F8F87005147C930D>I<70 |
978 |
F8F8F8700000000000000000000070F0F8F878080808101010202040051D7C930D>I<0FC03070 |
979 |
40384038E03CF03CF03C603C0038007000E000C001800180010003000200020002000200020002 |
980 |
000000000000000000000007000F800F800F8007000E207D9F15>63 D<00010000000380000003 |
981 |
8000000380000007C0000007C0000007C0000009E0000009E0000009E0000010F0000010F00000 |
982 |
10F00000207800002078000020780000403C0000403C0000403C0000801E0000801E0000FFFE00 |
983 |
01000F0001000F0001000F00020007800200078002000780040003C00E0003C01F0007E0FFC03F |
984 |
FE1F207F9F22>65 D<FFFFE0000F80380007801E0007801F0007800F0007800F8007800F800780 |
985 |
0F8007800F8007800F8007800F0007801F0007801E0007803C0007FFF00007803C0007801E0007 |
986 |
800F0007800F8007800780078007C0078007C0078007C0078007C0078007C00780078007800F80 |
987 |
07800F0007801F000F803C00FFFFF0001A1F7E9E20>I<000FC040007030C001C009C0038005C0 |
988 |
070003C00E0001C01E0000C01C0000C03C0000C07C0000407C00004078000040F8000000F80000 |
989 |
00F8000000F8000000F8000000F8000000F8000000F8000000F8000000780000007C0000407C00 |
990 |
00403C0000401C0000401E0000800E000080070001000380020001C0040000703800000FC0001A |
991 |
217D9F21>I<FFFFE0000F803C0007801E000780070007800380078003C0078001E0078001E007 |
992 |
8001F0078000F0078000F0078000F8078000F8078000F8078000F8078000F8078000F8078000F8 |
993 |
078000F8078000F8078000F0078000F0078000F0078001E0078001E0078003C007800380078007 |
994 |
0007800E000F803C00FFFFE0001D1F7E9E23>I<FFFFFF000F800F000780030007800300078001 |
995 |
0007800180078000800780008007800080078080800780800007808000078080000781800007FF |
996 |
800007818000078080000780800007808000078080000780002007800020078000200780004007 |
997 |
80004007800040078000C0078000C0078001800F800F80FFFFFF801B1F7E9E1F>I<FFFFFF000F |
998 |
800F00078003000780030007800100078001800780008007800080078000800780008007808000 |
999 |
0780800007808000078080000781800007FF800007818000078080000780800007808000078080 |
1000 |
0007800000078000000780000007800000078000000780000007800000078000000FC00000FFFE |
1001 |
0000191F7E9E1E>I<000FE0200078186000E004E0038002E0070001E00F0000E01E0000601E00 |
1002 |
00603C0000603C0000207C00002078000020F8000000F8000000F8000000F8000000F8000000F8 |
1003 |
000000F8000000F8007FFCF80003E0780001E07C0001E03C0001E03C0001E01E0001E01E0001E0 |
1004 |
0F0001E0070001E0038002E000E0046000781820000FE0001E217D9F24>I<FFF8FFF80F800F80 |
1005 |
07800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F |
1006 |
0007800F0007800F0007FFFF0007800F0007800F0007800F0007800F0007800F0007800F000780 |
1007 |
0F0007800F0007800F0007800F0007800F0007800F0007800F0007800F000F800F80FFF8FFF81D |
1008 |
1F7E9E22>I<FFFC0FC00780078007800780078007800780078007800780078007800780078007 |
1009 |
800780078007800780078007800780078007800780078007800FC0FFFC0E1F7F9E10>I<0FFFC0 |
1010 |
007C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00 |
1011 |
003C00003C00003C00003C00003C00003C00003C00003C00003C00203C00F83C00F83C00F83C00 |
1012 |
F0380040780040700030E0000F800012207E9E17>I<FFFE000FC0000780000780000780000780 |
1013 |
000780000780000780000780000780000780000780000780000780000780000780000780000780 |
1014 |
0007800007800207800207800207800207800607800407800407800C07801C0F807CFFFFFC171F |
1015 |
7E9E1C>76 D<FF80001FF80F80001F800780001F0005C0002F0005C0002F0005C0002F0004E000 |
1016 |
4F0004E0004F000470008F000470008F000470008F000438010F000438010F000438010F00041C |
1017 |
020F00041C020F00041C020F00040E040F00040E040F00040E040F000407080F000407080F0004 |
1018 |
07080F000403900F000403900F000401E00F000401E00F000401E00F000E00C00F001F00C01F80 |
1019 |
FFE0C1FFF8251F7E9E2A>I<FF803FF807C007C007C0038005E0010005E0010004F00100047801 |
1020 |
0004780100043C0100043C0100041E0100040F0100040F010004078100040781000403C1000401 |
1021 |
E1000401E1000400F1000400F1000400790004003D0004003D0004001F0004001F0004000F0004 |
1022 |
000700040007000E0003001F000300FFE001001D1F7E9E22>I<001F800000F0F00001C0380007 |
1023 |
801E000F000F000E0007001E0007803C0003C03C0003C07C0003E0780001E0780001E0F80001F0 |
1024 |
F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003 |
1025 |
E07C0003E03C0003C03C0003C01E0007800E0007000F000F0007801E0001C0380000F0F000001F |
1026 |
80001C217D9F23>I<FFFFE0000F80780007801C0007801E0007800F0007800F8007800F800780 |
1027 |
0F8007800F8007800F8007800F8007800F0007801E0007801C000780780007FFE0000780000007 |
1028 |
800000078000000780000007800000078000000780000007800000078000000780000007800000 |
1029 |
07800000078000000FC00000FFFC0000191F7E9E1F>I<001F800000F0F00001C0380007801E00 |
1030 |
0F000F000E0007001E0007803C0003C03C0003C07C0003E07C0003E0780001E0F80001F0F80001 |
1031 |
F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E0780001E07C00 |
1032 |
03E03C0003C03C0F03C01E1087800E2047000F204F0007A03E0001E0380000F0F010001FB01000 |
1033 |
003010000038300000387000003FF000001FE000001FE000000FC0000007801C297D9F23>I<FF |
1034 |
FF80000F80F0000780780007803C0007801E0007801E0007801F0007801F0007801F0007801F00 |
1035 |
07801E0007801E0007803C00078078000780F00007FF80000781C0000780E0000780F000078070 |
1036 |
0007807800078078000780780007807C0007807C0007807C0007807C0407807E0407803E040FC0 |
1037 |
1E08FFFC0F10000003E01E207E9E21>I<07E0800C1980100780300380600180600180E00180E0 |
1038 |
0080E00080E00080F00000F000007800007F00003FF0001FFC000FFE0003FF00001F8000078000 |
1039 |
03C00003C00001C08001C08001C08001C08001C0C00180C00380E00300F00600CE0C0081F80012 |
1040 |
217D9F19>I<7FFFFFE0780F01E0600F0060400F0020400F0020C00F0030800F0010800F001080 |
1041 |
0F0010800F0010000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 |
1042 |
000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 |
1043 |
00000F0000001F800007FFFE001C1F7E9E21>I<FFFC3FF80FC007C00780038007800100078001 |
1044 |
000780010007800100078001000780010007800100078001000780010007800100078001000780 |
1045 |
010007800100078001000780010007800100078001000780010007800100078001000780010003 |
1046 |
8002000380020001C0020001C0040000E008000070180000382000000FC0001D207E9E22>I<FF |
1047 |
F003FE1F8000F80F0000600F800060078000400780004003C0008003C0008003C0008001E00100 |
1048 |
01E0010001F0010000F0020000F0020000F806000078040000780400003C0800003C0800003C08 |
1049 |
00001E1000001E1000001F3000000F2000000F20000007C0000007C0000007C000000380000003 |
1050 |
800000038000000100001F207F9E22>I<FFF07FF81FF01F800FC007C00F00078003800F000780 |
1051 |
01000F0007C00100078007C00200078007C00200078007C0020003C009E0040003C009E0040003 |
1052 |
C009E0040003E010F00C0001E010F0080001E010F0080001F02078080000F02078100000F02078 |
1053 |
100000F0403C10000078403C20000078403C20000078C03E2000003C801E4000003C801E400000 |
1054 |
3C801E4000001F000F8000001F000F8000001F000F8000001E00078000000E00070000000E0007 |
1055 |
0000000C000300000004000200002C207F9E2F>I<FFF003FF1F8000F80F8000600780004007C0 |
1056 |
004003E0008001E0008001F0010000F0030000F80200007C0400003C0400003E0800001E080000 |
1057 |
1F1000000FB0000007A0000007C0000003C0000003C0000003C0000003C0000003C0000003C000 |
1058 |
0003C0000003C0000003C0000003C0000003C0000007C000007FFE00201F7F9E22>89 |
1059 |
D<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0 |
1060 |
C0C0C0C0C0FEFE072D7CA10D>91 D<FEFE06060606060606060606060606060606060606060606 |
1061 |
06060606060606060606060606060606060606FEFE072D7FA10D>93 D<081020204040808080B8 |
1062 |
FCFC7C38060E7D9F0D>96 D<1FE000303000781800781C00300E00000E00000E00000E0000FE00 |
1063 |
078E001E0E00380E00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317> |
1064 |
I<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E |
1065 |
000EC3800F01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E00780E00780E00 |
1066 |
700E00700E00E00F00E00D01C00CC300083E0015207F9F19>I<03F80E0C1C1E381E380C700070 |
1067 |
00F000F000F000F000F000F00070007000380138011C020E0C03F010147E9314>I<000380003F |
1068 |
8000038000038000038000038000038000038000038000038000038000038003E380061B801C07 |
1069 |
80380380380380700380700380F00380F00380F00380F00380F00380F003807003807003803803 |
1070 |
803807801C07800E1B8003E3F815207E9F19>I<03F0000E1C001C0E0038070038070070070070 |
1071 |
0380F00380F00380FFFF80F00000F00000F000007000007000003800801800800C010007060001 |
1072 |
F80011147F9314>I<007C00C6018F038F07060700070007000700070007000700FFF007000700 |
1073 |
07000700070007000700070007000700070007000700070007000700070007007FF01020809F0E |
1074 |
>I<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F00380E001C1C001E |
1075 |
380033E0002000002000003000003000003FFE001FFF800FFFC03001E0600070C00030C00030C0 |
1076 |
0030C000306000603000C01C038003FC00141F7F9417>I<0E0000FE00000E00000E00000E0000 |
1077 |
0E00000E00000E00000E00000E00000E00000E00000E3E000E43000E81800F01C00F01C00E01C0 |
1078 |
0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0 |
1079 |
FFE7FC16207F9F19>I<1C001E003E001E001C000000000000000000000000000E007E000E000E |
1080 |
000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00A1F809E0C> |
1081 |
I<00E001F001F001F000E0000000000000000000000000007007F000F000700070007000700070 |
1082 |
00700070007000700070007000700070007000700070007000700070007000706070F060F0C061 |
1083 |
803F000C28829E0E>I<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00 |
1084 |
000E00000E00000E0FF00E03C00E03000E02000E04000E08000E10000E30000E70000EF8000F38 |
1085 |
000E1C000E1E000E0E000E07000E07800E03800E03C00E03E0FFCFF815207F9F18>I<0E00FE00 |
1086 |
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E |
1087 |
000E000E000E000E000E000E000E000E000E00FFE00B20809F0C>I<0E1F01F000FE618618000E |
1088 |
81C81C000F00F00E000F00F00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00 |
1089 |
0E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E |
1090 |
000E00E00E00FFE7FE7FE023147F9326>I<0E3E00FE43000E81800F01C00F01C00E01C00E01C0 |
1091 |
0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC |
1092 |
16147F9319>I<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000 |
1093 |
F0F000F0F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>I<0E3E00FE |
1094 |
C3800F01C00F00E00E00E00E00F00E00700E00780E00780E00780E00780E00780E00780E00700E |
1095 |
00F00E00E00F01E00F01C00EC3000E3E000E00000E00000E00000E00000E00000E00000E00000E |
1096 |
0000FFE000151D7F9319>I<03E0800619801C05803C0780380380780380700380F00380F00380 |
1097 |
F00380F00380F00380F003807003807803803803803807801C0B800E138003E380000380000380 |
1098 |
000380000380000380000380000380000380003FF8151D7E9318>I<0E78FE8C0F1E0F1E0F0C0E |
1099 |
000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00F147F9312>I<1F9030 |
1100 |
704030C010C010C010E00078007F803FE00FF00070803880188018C018C018E030D0608F800D14 |
1101 |
7E9312>I<020002000200060006000E000E003E00FFF80E000E000E000E000E000E000E000E00 |
1102 |
0E000E000E000E080E080E080E080E080610031001E00D1C7F9B12>I<0E01C0FE1FC00E01C00E |
1103 |
01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E |
1104 |
03C00603C0030DC001F1FC16147F9319>I<FF83F81E01E01C00C00E00800E00800E0080070100 |
1105 |
07010003820003820003820001C40001C40001EC0000E80000E800007000007000007000002000 |
1106 |
15147F9318>I<FF9FE1FC3C0780701C0300601C0380200E0380400E0380400E03C0400707C080 |
1107 |
0704C0800704E080038861000388710003C8730001D0320001D03A0000F03C0000E01C0000E01C |
1108 |
0000601800004008001E147F9321>I<7FC3FC0F01E00701C007018003810001C20000E40000EC |
1109 |
00007800003800003C00007C00004E000087000107000303800201C00601E01E01E0FF07FE1714 |
1110 |
809318>I<FF83F81E01E01C00C00E00800E00800E008007010007010003820003820003820001 |
1111 |
C40001C40001EC0000E80000E800007000007000007000002000002000004000004000004000F0 |
1112 |
8000F08000F100006200003C0000151D7F9318>I<3FFF380E200E201C40384078407000E001E0 |
1113 |
01C00380078007010E011E011C0338027006700EFFFE10147F9314>I<FFFFFFFFFFF02C01808C |
1114 |
2D>124 D E /Fo 82 127 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F870000000000070F8F8 |
1115 |
F870051C779B18>33 D<4010E038F078E038E038E038E038E038E038E038E038E038E03860300D |
1116 |
0E7B9C18>I<030600078F00078F00078F00078F00078F00078F007FFFC0FFFFE0FFFFE07FFFC0 |
1117 |
0F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07FFFC01E3C001E3C001E3C00 |
1118 |
1E3C001E3C001E3C000C1800131C7E9B18>I<01C00007E0000FF0000E70001C38001C38001C38 |
1119 |
001C38001C73F01C73F01CE3F00FE3800FC7000F87000F07001F0E003F0E007B8E0073DC00E1DC |
1120 |
00E0F800E0F800E07070E0787070FC707FFFE03FCFE00F03C0141C7F9B18>38 |
1121 |
D<387C7C7E3E0E0E0E1C1C38F8F0C0070E789B18>I<007000F001E003C007800F001E001C0038 |
1122 |
0038007000700070007000E000E000E000E000E000E000E000E000700070007000700038003800 |
1123 |
1C001E000F00078003C001F000F000700C24799F18>I<6000F00078003C001E000F0007800380 |
1124 |
01C001C000E000E000E000E00070007000700070007000700070007000E000E000E000E001C001 |
1125 |
C0038007800F001E003C007800F00060000C247C9F18>I<01C00001C00001C00001C000C1C180 |
1126 |
F1C780F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C18001C00001C000 |
1127 |
01C00001C00011147D9718>I<00600000F00000F00000F00000F00000F00000F00000F0007FFF |
1128 |
C0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F00000600013147E9718 |
1129 |
>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF00FFFF80FFFF807FFF0011047D8F18>I< |
1130 |
3078FCFC78300606778518>I<000300000780000780000F80000F00001F00001E00001E00003E |
1131 |
00003C00007C0000780000780000F80000F00001F00001E00003E00003C00003C00007C0000780 |
1132 |
000F80000F00000F00001F00001E00003E00003C00003C00007C0000780000F80000F00000F000 |
1133 |
0060000011247D9F18>I<01F00007FC000FFE001F1F001C07003803807803C07001C07001C0E0 |
1134 |
00E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C07803C038 |
1135 |
03801C07001F1F000FFE0007FC0001F000131C7E9B18>I<01800380038007800F803F80FF80FB |
1136 |
80438003800380038003800380038003800380038003800380038003800380038003807FFCFFFE |
1137 |
7FFC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000E00000E0 |
1138 |
0000E00001C00001C00003C0000780000F00001E00003C0000780000F00001E00007C0000F8000 |
1139 |
1E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<07F8001FFE003FFF007807807803C07801 |
1140 |
C03001C00001C00003C0000380000F0003FF0003FE0003FF000007800003C00001C00000E00000 |
1141 |
E00000E0F000E0F000E0F001C0F003C07C07803FFF001FFE0003F800131C7E9B18>I<001F0000 |
1142 |
3F0000770000770000E70001E70001C7000387000787000707000E07001E07003C070038070078 |
1143 |
0700F00700FFFFF8FFFFF8FFFFF8000700000700000700000700000700000700007FF000FFF800 |
1144 |
7FF0151C7F9B18>I<1FFF803FFF803FFF80380000380000380000380000380000380000380000 |
1145 |
3800003BF8003FFE003FFF003C07801803C00001C00000E00000E06000E0F000E0F000E0E001C0 |
1146 |
7003C07C0F803FFF001FFC0003F000131C7E9B18>I<007E0001FF0007FF800F83C01E03C01C03 |
1147 |
C0380180380000700000700000E1F800E7FE00FFFF00FE0780F803C0F001C0F000E0E000E0F000 |
1148 |
E07000E07000E07000E03801C03C03C01E07800FFF0007FE0001F800131C7E9B18>I<E00000FF |
1149 |
FFE0FFFFE0FFFFE0E003C0E00780000700000E00001E00001C0000380000380000700000700000 |
1150 |
E00000E00000E00001C00001C00001C00001C00003C00003800003800003800003800003800003 |
1151 |
8000038000131D7E9C18>I<03F8000FFE001FFF003E0F803803807001C07001C07001C07001C0 |
1152 |
3803803C07801FFF0007FC000FFE001F1F003C07807001C0F001E0E000E0E000E0E000E0E000E0 |
1153 |
7001C07803C03E0F801FFF000FFE0003F800131C7E9B18>I<3078FCFC78300000000000000000 |
1154 |
3078FCFC78300614779318>58 D<183C7E7E3C180000000000000000183C7E7E3E1E0E1C3C78F0 |
1155 |
60071A789318>I<000300000780001F80003F00007E0001FC0003F00007E0001FC0003F00007E |
1156 |
0000FC0000FC00007E00003F00001FC00007E00003F00001FC00007E00003F00001F8000078000 |
1157 |
030011187D9918>I<7FFFC0FFFFE0FFFFE0FFFFE0000000000000000000000000FFFFE0FFFFE0 |
1158 |
FFFFE07FFFC0130C7E9318>I<600000F00000FC00007E00003F00001FC00007E00003F00001FC |
1159 |
00007E00003F00001F80001F80003F00007E0001FC0003F00007E0001FC0003F00007E0000FC00 |
1160 |
00F0000060000011187D9918>I<007C0001FE0007FF000F87801E03C03C1DC0387FC070FFE071 |
1161 |
E3E071C1E0E1C1E0E380E0E380E0E380E0E380E0E380E0E380E0E1C1C071C1C071E3C070FF8038 |
1162 |
7F003C1C001E00E00F83E007FFC001FF80007E00131C7E9B18>64 D<00700000F80000F80000D8 |
1163 |
0000D80001DC0001DC0001DC00018C00038E00038E00038E00038E000306000707000707000707 |
1164 |
000707000FFF800FFF800FFF800E03800E03801C01C01C01C07F07F0FF8FF87F07F0151C7F9B18 |
1165 |
>I<FFFC00FFFF00FFFF801C03C01C01C01C00E01C00E01C00E01C00E01C01E01C01C01C07C01F |
1166 |
FF801FFF001FFFC01C03C01C00E01C00F01C00701C00701C00701C00701C00F01C00E01C03E0FF |
1167 |
FFC0FFFF80FFFE00141C7F9B18>I<00F8E003FEE007FFE00F07E01E03E03C01E03800E07000E0 |
1168 |
7000E0700000E00000E00000E00000E00000E00000E00000E00000E000007000007000E07000E0 |
1169 |
3800E03C00E01E01C00F07C007FF8003FE0000F800131C7E9B18>I<FFFFF0FFFFF0FFFFF01C00 |
1170 |
701C00701C00701C00701C00001C00001C0E001C0E001C0E001FFE001FFE001FFE001C0E001C0E |
1171 |
001C0E001C00001C00001C00381C00381C00381C00381C0038FFFFF8FFFFF8FFFFF8151C7F9B18 |
1172 |
>69 D<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C00E01C00001C00001C1C001C1C001C1C00 |
1173 |
1FFC001FFC001FFC001C1C001C1C001C1C001C00001C00001C00001C00001C00001C00001C0000 |
1174 |
FFC000FFC000FFC000131C7E9B18>I<01F1C003FDC00FFFC01F0FC01C03C03803C03801C07001 |
1175 |
C07001C0700000E00000E00000E00000E00000E00000E00FF0E01FF0E00FF07001C07001C07003 |
1176 |
C03803C03803C01C07C01F0FC00FFFC003FDC001F1C0141C7E9B18>I<7F07F0FF8FF87F07F01C |
1177 |
01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C |
1178 |
01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F0151C7F9B |
1179 |
18>I<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C000 |
1180 |
01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 |
1181 |
7FFF00FFFF807FFF00111C7D9B18>I<7FE000FFE0007FE0000E00000E00000E00000E00000E00 |
1182 |
000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 |
1183 |
700E00700E00700E00700E00707FFFF0FFFFF07FFFF0141C7F9B18>76 D<FC01F8FE03F8FE03F8 |
1184 |
3B06E03B06E03B06E03B06E03B8EE03B8EE0398CE0398CE039DCE039DCE039DCE038D8E038D8E0 |
1185 |
38F8E03870E03870E03800E03800E03800E03800E03800E03800E0FE03F8FE03F8FE03F8151C7F |
1186 |
9B18>I<7E07F0FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1 |
1187 |
C01C61C01C71C01C71C01C31C01C39C01C39C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0D |
1188 |
C07F07C0FF87C07F03C0151C7F9B18>I<0FF8003FFE007FFF00780F00700700F00780E00380E0 |
1189 |
0380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0 |
1190 |
0380E00380F00780700700780F007FFF003FFE000FF800111C7D9B18>I<FFFE00FFFF80FFFFC0 |
1191 |
1C03C01C01E01C00E01C00701C00701C00701C00701C00701C00E01C01E01C03C01FFFC01FFF80 |
1192 |
1FFE001C00001C00001C00001C00001C00001C00001C00001C0000FF8000FF8000FF8000141C7F |
1193 |
9B18>I<0FF8003FFE007FFF00780F00700700F00780E00380E00380E00380E00380E00380E003 |
1194 |
80E00380E00380E00380E00380E00380E00380E00380E00380E1E380E1E380F0E78070F700787F |
1195 |
007FFF003FFE000FFC00001C00001E00000E00000F0000070000070011227D9B18>I<7FF800FF |
1196 |
FE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001F |
1197 |
FE001C0F001C07001C03801C03801C03801C03801C03801C039C1C039C1C039C7F01F8FF81F87F |
1198 |
00F0161C7F9B18>I<03F3801FFF803FFF807C0F80700780E00380E00380E00380E00000700000 |
1199 |
7800003F00001FF00007FE0000FF00000F800003C00001C00000E00000E06000E0E000E0E001E0 |
1200 |
F001C0F80780FFFF80FFFE00E7F800131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038E070 |
1201 |
38E070380070000070000070000070000070000070000070000070000070000070000070000070 |
1202 |
0000700000700000700000700000700000700007FF0007FF0007FF00151C7F9B18>I<FF83FEFF |
1203 |
83FEFF83FE1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C |
1204 |
00701C00701C00701C00701C00701C00701C00701C00700E00E00F01E00783C003FF8001FF0000 |
1205 |
7C00171C809B18>I<FE03F8FE03F8FE03F87000707000707000703800E03800E03800E03800E0 |
1206 |
3800E038F8E038F8E039DCE039DCE019DCC019DCC019DCC0198CC01D8DC01D8DC01D8DC01D8DC0 |
1207 |
0D8D800D05800F07800F07800E0380151C7F9B18>87 D<FFF8FFF8FFF8E000E000E000E000E000 |
1208 |
E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0 |
1209 |
00E000E000E000E000E000FFF8FFF8FFF80D24779F18>91 D<600000F00000F00000F800007800 |
1210 |
007C00003C00003C00003E00001E00001F00000F00000F00000F800007800007C00003C00003C0 |
1211 |
0003E00001E00001F00000F00000F800007800007800007C00003C00003E00001E00001E00001F |
1212 |
00000F00000F8000078000078000030011247D9F18>I<FFF8FFF8FFF800380038003800380038 |
1213 |
003800380038003800380038003800380038003800380038003800380038003800380038003800 |
1214 |
3800380038003800380038FFF8FFF8FFF80D247F9F18>I<018007C01FF07EFCF83EE00E0F067C |
1215 |
9B18>I<7FFF00FFFF80FFFF807FFF0011047D7F18>I<1FE0003FF8007FFC00781E00300E000007 |
1216 |
0000070000FF0007FF001FFF007F0700780700E00700E00700E00700F00F00781F003FFFF01FFB |
1217 |
F007E1F014147D9318>97 D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E00 |
1218 |
0EFF800FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F0070 |
1219 |
0F00700F80E00FC1E00FFFC00EFF80063E00151C809B18>I<01FE0007FF001FFF803E07803803 |
1220 |
00700000700000E00000E00000E00000E00000E00000E000007000007001C03801C03E03C01FFF |
1221 |
8007FF0001FC0012147D9318>I<001F80003F80001F8000038000038000038000038000038003 |
1222 |
E3800FFB801FFF803C1F80380F80700780700380E00380E00380E00380E00380E00380E0038070 |
1223 |
0780700780380F803C1F801FFFF00FFBF803E3F0151C7E9B18>I<01F00007FC001FFE003E0F00 |
1224 |
380780700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E03C0 |
1225 |
1FFF8007FF0001FC0012147D9318>I<001F80007FC000FFE000E1E001C0C001C00001C00001C0 |
1226 |
007FFFC0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0 |
1227 |
0001C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F007FFF80FFFF81E |
1228 |
1E301C0E003807003807003807003807003807001C0E001E1E001FFC001FF80039E0003800001C |
1229 |
00001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E000387800F07E03F01FFFC00F |
1230 |
FF8001FC00151F7F9318>I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E00 |
1231 |
0EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0 |
1232 |
0E00E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B18>I<03800007C00007C00007C0000380 |
1233 |
000000000000000000000000007FC000FFC0007FC00001C00001C00001C00001C00001C00001C0 |
1234 |
0001C00001C00001C00001C00001C00001C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18 |
1235 |
>I<0038007C007C007C003800000000000000000FFC1FFC0FFC001C001C001C001C001C001C00 |
1236 |
1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C6038F078FFF07FE0 |
1237 |
3F800E277E9C18>I<FE0000FE0000FE00000E00000E00000E00000E00000E00000E3FF00E7FF0 |
1238 |
0E3FF00E07800E0F000E1E000E3C000E78000EF0000FF8000FFC000F9C000F0E000E0F000E0700 |
1239 |
0E03800E03C0FFC7F8FFC7F8FFC7F8151C7F9B18>I<7FE000FFE0007FE00000E00000E00000E0 |
1240 |
0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0 |
1241 |
0000E00000E00000E00000E00000E00000E0007FFFC0FFFFE07FFFC0131C7E9B18>I<7CE0E000 |
1242 |
FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C |
1243 |
001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF807F1F1F001914 |
1244 |
819318>I<7E3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E |
1245 |
00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC1714809318>I<01F0000FFE00 |
1246 |
1FFF003E0F803803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C0 |
1247 |
3C07803E0F801FFF000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00FC1E00F80E00F00 |
1248 |
700E00700E00380E00380E00380E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF |
1249 |
800E3E000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000151E809318 |
1250 |
>I<01E38007FB801FFF803E1F80380F80700780700780E00380E00380E00380E00380E00380E0 |
1251 |
0380700780700780380F803C1F801FFF800FFB8003E38000038000038000038000038000038000 |
1252 |
0380000380003FF8003FF8003FF8151E7E9318>I<7F87E0FF9FF07FBFF803F87803F03003E000 |
1253 |
03C00003C0000380000380000380000380000380000380000380000380000380007FFE00FFFF00 |
1254 |
7FFE0015147F9318>I<07F7003FFF007FFF00780F00E00700E00700E007007C00007FE0001FFC |
1255 |
0003FE00001F00600780E00380E00380F00380F80F00FFFF00FFFC00E7F00011147D9318>I<01 |
1256 |
80000380000380000380000380007FFFC0FFFFC0FFFFC003800003800003800003800003800003 |
1257 |
80000380000380000380000380400380E00380E00380E001C1C001FFC000FF80003E0013197F98 |
1258 |
18>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0 |
1259 |
0E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FCFC1714809318>I<7F8FF0FF8FF87F8F |
1260 |
F01E03C00E03800E03800E0380070700070700070700038E00038E00038E00038E0001DC0001DC |
1261 |
0001DC0000F80000F80000700015147F9318>I<FF8FF8FF8FF8FF8FF83800E03800E03800E01C |
1262 |
01C01C01C01C71C01CF9C01CF9C01CD9C01CD9C00DDD800DDD800DDD800D8D800F8F800F8F8007 |
1263 |
070015147F9318>I<7F8FF07F9FF07F8FF0070700078E00039E0001DC0001F80000F800007000 |
1264 |
00F00000F80001DC00039E00038E000707000F07807F8FF0FF8FF87F8FF015147F9318>I<7F8F |
1265 |
F0FF8FF87F8FF00E01C00E03800E0380070380070700070700038700038600038E0001CE0001CE |
1266 |
0000CC0000CC0000DC0000780000780000780000700000700000700000F00000E00079E0007BC0 |
1267 |
007F80003F00001E0000151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C0700780000F0000 |
1268 |
1E00003C0000F80001F00003C0000780000F00701E00703C0070780070FFFFF0FFFFF0FFFFF014 |
1269 |
147F9318>I<0007E0001FE0007FE000780000E00000E00000E00000E00000E00000E00000E000 |
1270 |
00E00000E00000E00000E00001E0007FC000FF8000FF80007FC00001E00000E00000E00000E000 |
1271 |
00E00000E00000E00000E00000E00000E00000E00000E000007800007FE0001FE00007E013247E |
1272 |
9F18>I<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 |
1273 |
600424769F18>I<7C0000FF0000FFC00003C00000E00000E00000E00000E00000E00000E00000 |
1274 |
E00000E00000E00000E00000E00000F000007FC0003FE0003FE0007FC000F00000E00000E00000 |
1275 |
E00000E00000E00000E00000E00000E00000E00000E00000E00003C000FFC000FF00007C000013 |
1276 |
247E9F18>I<060C1F1E3FBEFBF8F1F060C00F067C9B18>I E /Fp 10 117 |
1277 |
df<0000001FFE000060000003FFFFE000E000001FFFFFF801E000007FFFFFFE03E00001FFFC00 |
1278 |
FF07E00007FFC0001FCFE0000FFF000007FFE0001FFC000001FFE0003FF0000000FFE0007FE000 |
1279 |
00007FE000FFC00000003FE001FF800000001FE003FF000000000FE007FF000000000FE00FFE00 |
1280 |
00000007E00FFE0000000007E01FFC0000000003E01FFC0000000003E03FF80000000003E03FF8 |
1281 |
0000000001E03FF80000000001E07FF80000000001E07FF80000000001E07FF00000000000007F |
1282 |
F0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000 |
1283 |
FFF0000000000000FFF0000000000000FFF0000000000000FFF0000000000000FFF00000000000 |
1284 |
00FFF0000000000000FFF00000000000007FF00000000000007FF00000000000007FF800000000 |
1285 |
00007FF80000000001E03FF80000000001E03FF80000000001E03FF80000000001E01FFC000000 |
1286 |
0001E01FFC0000000003C00FFE0000000003C00FFE0000000003C007FF00000000078003FF0000 |
1287 |
0000078001FF800000000F0000FFC00000001F00007FE00000003E00003FF00000007C00001FFC |
1288 |
000000F800000FFF000003F0000007FFC0000FE0000001FFFC007F800000007FFFFFFF00000000 |
1289 |
1FFFFFFC0000000003FFFFE000000000001FFE0000003B3D7BBB46>67 D<0003FF000300003FFF |
1290 |
E0070000FFFFFC0F0001FFFFFE1F0003FE00FF3F0007F0001FFF000FE00007FF001FC00001FF00 |
1291 |
3F800000FF003F800000FF007F0000007F007F0000003F007F0000003F00FF0000001F00FF0000 |
1292 |
001F00FF0000001F00FF8000000F00FF8000000F00FFC000000F00FFC000000F00FFF000000000 |
1293 |
7FF8000000007FFF800000003FFFF80000003FFFFFC000001FFFFFFC00001FFFFFFF00000FFFFF |
1294 |
FFC00007FFFFFFF00003FFFFFFF80000FFFFFFFC00007FFFFFFE00001FFFFFFE000003FFFFFF00 |
1295 |
00001FFFFF80000001FFFF800000000FFFC000000003FFC000000000FFC0000000007FE0000000 |
1296 |
007FE0700000003FE0F00000003FE0F00000001FE0F00000001FE0F00000001FE0F80000001FE0 |
1297 |
F80000001FC0F80000001FC0FC0000001FC0FC0000003F80FE0000003F80FF0000003F00FFC000 |
1298 |
007F00FFE00000FE00FFFC0001FC00FDFFC00FF800F87FFFFFF000F01FFFFFC000E003FFFF0000 |
1299 |
C0003FF800002B3D7BBB36>83 D<003FFE00000001FFFFE0000007FFFFF800000FE007FC00000F |
1300 |
F001FE00001FF800FF00001FF8007F80001FF8007FC0001FF8003FC0000FF0003FE00007E0003F |
1301 |
E00003C0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000FFFFE00000 |
1302 |
1FFFFFE000007FF83FE00003FF803FE00007FC003FE0000FF0003FE0001FE0003FE0003FE0003F |
1303 |
E0007FC0003FE0007FC0003FE000FF80003FE000FF80003FE000FF80003FE000FF80003FE000FF |
1304 |
80007FE0007FC0007FE0007FC000DFE0003FE0039FF0001FF80F0FFFE007FFFE0FFFE001FFF807 |
1305 |
FFE0003FE000FFE02B267DA52F>97 D<0001FFF000000FFFFE00003FFFFF8000FF801FC001FE00 |
1306 |
3FC003FC007FE007F8007FE00FF0007FE01FF0007FE03FE0003FC03FE0001F807FE0000F007FC0 |
1307 |
0000007FC00000007FC0000000FFC0000000FFC0000000FFC0000000FFC0000000FFC0000000FF |
1308 |
C0000000FFC0000000FFC00000007FC00000007FC00000007FE00000007FE00000003FE0000000 |
1309 |
3FF00000F01FF00000F00FF80001E007F80001E003FC0003C001FF000F8000FFC03F00003FFFFE |
1310 |
00000FFFF8000001FFC00024267DA52B>99 D<0001FF8000000FFFF000003FFFFC0000FF81FE00 |
1311 |
03FE007F8007F8003F800FF8001FC00FF0000FE01FE0000FE03FE0000FF03FE00007F07FC00007 |
1312 |
F07FC00007F87FC00007F8FFC00007F8FFC00007F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFC000 |
1313 |
0000FFC0000000FFC0000000FFC00000007FC00000007FC00000007FC00000003FE00000003FE0 |
1314 |
0000781FE00000781FF00000780FF00000F007F80001F003FC0003E001FE000FC000FFC07F8000 |
1315 |
3FFFFE00000FFFF8000000FFC00025267DA52C>101 D<00FE00000000FFFE00000000FFFE0000 |
1316 |
0000FFFE00000000FFFE0000000007FE0000000003FE0000000003FE0000000003FE0000000003 |
1317 |
FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000 |
1318 |
000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003 |
1319 |
FE001FFFF003FE001FFFF003FE001FFFF003FE001FFFF003FE0003FC0003FE0003F00003FE0007 |
1320 |
E00003FE001F800003FE003F000003FE007E000003FE00FC000003FE03F8000003FE07E0000003 |
1321 |
FE0FC0000003FE1F80000003FE3FC0000003FEFFE0000003FFFFF0000003FFFFF0000003FFFFF8 |
1322 |
000003FFCFFC000003FF07FE000003FE03FF000003FC03FF000003FC01FF800003FC00FFC00003 |
1323 |
FC007FE00003FC003FE00003FC003FF00003FC001FF80003FC000FFC0003FC0007FC0003FC0007 |
1324 |
FE0003FC0003FF00FFFFF01FFFFCFFFFF01FFFFCFFFFF01FFFFCFFFFF01FFFFC2E3C7DBB33> |
1325 |
107 D<00FE00FFFE00FFFE00FFFE00FFFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE00 |
1326 |
03FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00 |
1327 |
03FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00 |
1328 |
03FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00 |
1329 |
03FE0003FE0003FE0003FE0003FE00FFFFF8FFFFF8FFFFF8FFFFF8153C7DBB1A>I<0001FFC000 |
1330 |
00000FFFF80000007FFFFF000000FF80FF800003FE003FE00007F8000FF0000FF00007F8000FF0 |
1331 |
0007F8001FE00003FC003FE00003FE003FE00003FE007FC00001FF007FC00001FF007FC00001FF |
1332 |
007FC00001FF00FFC00001FF80FFC00001FF80FFC00001FF80FFC00001FF80FFC00001FF80FFC0 |
1333 |
0001FF80FFC00001FF80FFC00001FF80FFC00001FF807FC00001FF007FC00001FF007FC00001FF |
1334 |
003FE00003FE003FE00003FE001FE00003FC001FF00007FC000FF00007F80007F8000FF00003FE |
1335 |
003FE00000FF80FF8000007FFFFF0000000FFFF800000001FFC0000029267DA530>111 |
1336 |
D<003FF07003FFFEF007FFFFF01FC01FF03F0003F03E0001F07C0001F07C0000F0FC0000F0FC00 |
1337 |
00F0FE0000F0FF000000FFC00000FFFC00007FFFF0003FFFFE003FFFFF801FFFFFC00FFFFFE003 |
1338 |
FFFFF000FFFFF8001FFFFC00007FFC000007FE700001FEF00000FEF000007EF800007EF800007E |
1339 |
FC00007EFC00007CFE0000FCFF0000F8FF8001F0FFF00FE0F9FFFFC0F07FFF00C01FF8001F267D |
1340 |
A526>115 D<000F0000000F0000000F0000000F0000000F0000001F0000001F0000001F000000 |
1341 |
1F0000003F0000003F0000007F0000007F000000FF000001FF000003FF000007FF00001FFFFFF0 |
1342 |
FFFFFFF0FFFFFFF0FFFFFFF001FF000001FF000001FF000001FF000001FF000001FF000001FF00 |
1343 |
0001FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF000001FF |
1344 |
000001FF000001FF000001FF003C01FF003C01FF003C01FF003C01FF003C01FF003C01FF003C01 |
1345 |
FF003C00FF007800FF8078007F80F0003FC1E0001FFFC0000FFF800001FE001E377EB626>I |
1346 |
E end |
1347 |
%%EndProlog |
1348 |
%%BeginSetup |
1349 |
%%Feature: *Resolution 300 |
1350 |
TeXDict begin |
1351 |
%%EndSetup |
1352 |
%%Page: 1 1 |
1353 |
bop 0 693 a Fp(C)p Fo(++)32 b Fp(So)s(c)m(k)m(et)h(Classes)p |
1354 |
0 726 1950 17 v 1535 774 a Fn(V)l(ersion:)21 b(27Jan94)14 b(1.6)0 |
1355 |
2545 y Fm(Gnanasek)l(aran)23 b(Sw)n(aminathan)p 0 2570 1950 |
1356 |
9 v eop |
1357 |
%%Page: 2 2 |
1358 |
bop 0 2076 a Fn(Cop)o(yrigh)o(t)226 2075 y(c)214 2076 y Fl(\015)15 |
1359 |
b Fn(1992,1993,199)o(4)d(Gnanasek)m(aran)j(Sw)o(aminathan)0 |
1360 |
2337 y(This)h(is)f(V)l(ersion:)21 b(27Jan94)15 b(1.6)f(of)h(the)g(C)p |
1361 |
Fo(++)g Fn(family)g(of)g(so)q(c)o(k)o(et)g(classes.)0 2599 |
1362 |
y(P)o(ermission)g(is)g(gran)o(ted)f(to)g(mak)o(e)g(and)h(distribute)h(v)o |
1363 |
(erbatim)e(copies)i(of)e(this)h(do)q(cumen)o(t)g(pro)o(vided)g(the)g(cop)o |
1364 |
(y-)0 2661 y(righ)o(t)g(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f |
1365 |
(preserv)o(ed)h(on)f(all)h(copies.)p eop |
1366 |
%%Page: 1 3 |
1367 |
bop 0 -58 a Fn(So)q(c)o(k)o(et)p Fo(++)15 b Fn(Library)g(Cop)o(yrigh)o(t)g |
1368 |
(Notice)1231 b(1)0 183 y Fk(So)r(c)n(k)n(et)p Fj(++)15 b Fk(Library)f(Cop)n |
1369 |
(yrigh)n(t)h(Notice)62 370 y Fn(Cop)o(yrigh)o(t)g(\(C\))f(1992,1993,199)o(4)e |
1370 |
(Gnanasek)m(aran)j(Sw)o(aminathan)62 507 y(P)o(ermission)h(is)g(gran)o(ted)e |
1371 |
(to)h(use)g(at)g(y)o(our)g(o)o(wn)f(risk)i(and)f(distribute)i(this)e(soft)o |
1372 |
(w)o(are)f(in)i(source)f(and)g(binary)0 569 y(forms)j(pro)o(vided)h(the)g(ab) |
1373 |
q(o)o(v)o(e)g(cop)o(yrigh)o(t)f(notice)h(and)g(this)g(paragraph)f(are)h |
1374 |
(preserv)o(ed)g(on)f(all)i(copies.)31 b(This)0 632 y(soft)o(w)o(are)13 |
1375 |
b(is)j(pro)o(vided)g Fo(")p Fn(as)f(is)p Fo(")g Fn(with)h(no)f(express)g(or)g |
1376 |
(implied)j(w)o(arran)o(t)o(y)l(.)p eop |
1377 |
%%Page: 2 4 |
1378 |
bop 0 -58 a Fn(Ac)o(kno)o(wledgmen)o(ts)1572 b(2)0 183 y Fk(Ac)n(kno)n |
1379 |
(wledgmen)n(ts)62 370 y Fn(Gordon)16 b(Joly)i Fo(<)p Fn(G.Joly)p |
1380 |
Fo(@)p Fn(cs.ucl.ac.uk)p Fo(>)e Fn(for)h(rep)q(orting)g(bugs)f(in)i(pip)q |
1381 |
(estream)g(class)f(implemen)o(tation)h(and)0 432 y(pro)o(viding)c(an)e(ftp)h |
1382 |
(site)g(for)f(the)h(so)q(c)o(k)o(et)p Fo(++)f Fn(library)h(at)f |
1383 |
(cs.ucl.ac.uk:)p Fo(~)p Fn(ftp/coside/gn)o(u/so)q(c)o(k)o(et)p |
1384 |
Fo(++)p Fn(-1.x.tar.gz)e(He)0 495 y(also)15 b(kno)o(ws)g(ho)o(w)f(to)h(mak)o |
1385 |
(e)g(the)g(so)q(c)o(k)o(et)p Fo(++)f Fn(library)i(a)f(shared)h(library)l(.)62 |
1386 |
632 y(Jim)g(Anderson)g(for)f(rep)q(orting)g(a)g(bug)g(in)h(so)q(c)o(kinet.C) |
1387 |
62 769 y(Carl)f(Ga)o(y)g Fo(<)p Fn(cga)o(y)p Fo(@)p Fn |
1388 |
(skinner.cs.uoregon.edu)p Fo(>)f Fn(for)h(rep)q(orting)g(a)g(bug)h(and)f(a)g |
1389 |
(\014x)g(in)h(so)q(c)o(kinet.C)62 906 y(Oliv)o(er)j(Im)o(busc)o(h)f |
1390 |
Fo(<)p Fn(\015ab)q(es)p Fo(@)p Fn(parystec.de)p Fo(>)g Fn(for)f(rep)q(orting) |
1391 |
h(a)f(bug)h(in)g(Mak)o(e\014le.in)g(and)g(suggesting)g(sev)o(eral)0 |
1392 |
968 y(enhancemen)o(ts)e(for)e(so)q(c)o(kbuf)i(class.)62 1105 |
1393 |
y(Dierk)g(W)l(endt)f Fo(<)p Fn(w)o(endt)p Fo(@)p Fn(lam)o(b)q(da.hella.de)p |
1394 |
Fo(>)i Fn(for)d(rep)q(orting)i(errors)e(in)i(the)f(so)q(c)o(k)o(et)p |
1395 |
Fo(++)g Fn(do)q(cumen)o(tation.)62 1242 y(P)o(er)g(Bothner)h |
1396 |
Fo(<)p Fn(b)q(othner)p Fo(@)p Fn(cygn)o(us.com)p Fo(>)f Fn(for)f |
1397 |
(con\014gure,)i(con\014g.sub,)f(con\014g.shared)g(and)h(mo)o(v)o(e-if-c)o |
1398 |
(hange)0 1304 y(\014les)h(that)d(are)i(used)g(to)f(generate)g(Mak)o(e\014le.) |
1399 |
21 b(These)16 b(\014les)h(are)e(tak)o(en)g(from)g(his)h(libg)p |
1400 |
Fo(++)p Fn(-2.4)g(and)f(hence,)i(these)0 1366 y(\014les)f(are)f(go)o(v)o |
1401 |
(erned)g(b)o(y)g(the)g(Cop)o(yrigh)o(t)g(Notice)g(found)h(in)g(the)f(\014le)i |
1402 |
(LICENCE)e(in)h(libg)p Fo(++)p Fn(.)p eop |
1403 |
%%Page: 3 5 |
1404 |
bop 0 -58 a Fn(Chapter)15 b(1:)k(Ov)o(erview)d(of)f(So)q(c)o(k)o(et)p |
1405 |
Fo(++)g Fn(Library)1102 b(3)0 183 y Fk(1)41 b(Ov)n(erview)13 |
1406 |
b(of)i(So)r(c)n(k)n(et)p Fj(++)f Fk(Library)62 370 y Fn(So)q(c)o(k)o(et)p |
1407 |
Fo(++)h Fn(library)h(de\014nes)g(a)f(family)h(of)f(C)p Fo(++)f |
1408 |
Fn(classes)i(that)f(can)g(b)q(e)h(used)g(more)e(e\013ectiv)o(ely)j(than)e |
1409 |
(directly)0 432 y(calling)h(the)e(underlying)j(lo)o(w-lev)o(el)e(system)f |
1410 |
(functions.)20 b(One)c(distinct)f(adv)m(an)o(tage)f(of)g(the)g(so)q(c)o(k)o |
1411 |
(et)p Fo(++)f Fn(is)i(that)f(it)0 495 y(has)f(the)g(same)f(in)o(terface)i(as) |
1412 |
e(that)g(of)h(the)g(iostream)f(so)h(that)f(the)h(users)g(can)g(p)q(erform)g |
1413 |
(t)o(yp)q(e-safe)g(input)h(output.)0 557 y(See)i(y)o(our)e(lo)q(cal)j |
1414 |
(IOStream)e(library)h(do)q(cumen)o(tation)g(for)e(more)h(information)h(on)f |
1415 |
(iostreams.)62 694 y Fo(streambuf)f Fn(coun)o(terpart)h(of)f(the)i(so)q(c)o |
1416 |
(k)o(et)p Fo(++)e Fn(is)i Fo(sockbuf)p Fn(.)i Fo(sockbuf)d |
1417 |
Fn(is)g(an)g(endp)q(oin)o(t)i(for)d(comm)o(unication)0 756 |
1418 |
y(with)k(y)o(et)f(another)g Fo(sockbuf)g Fn(or)g(simply)i(a)e |
1419 |
Fo(socket)g Fn(descriptor.)28 b Fo(sockbuf)16 b Fn(has)i(also)f(metho)q(ds)h |
1420 |
(that)f(act)g(as)0 818 y(in)o(terfaces)d(for)f(most)g(of)h(the)g(commonly)g |
1421 |
(used)h(system)e(calls)i(that)e(in)o(v)o(olv)o(e)i(so)q(c)o(k)o(ets.)j(See)d |
1422 |
(Chapter)f(2)f([so)q(c)o(kbuf)0 881 y(Class],)h(page)i(4,)e(for)h(more)f |
1423 |
(information)i(on)f(the)g(so)q(c)o(k)o(et)g(bu\013er)g(class.)62 |
1424 |
1018 y(F)l(or)f(eac)o(h)h(comm)o(unication)g(domain,)g(w)o(e)f(deriv)o(e)i(a) |
1425 |
e(new)h(class)g(from)e Fo(sockbuf)h Fn(that)g(has)g(some)h(additional)0 |
1426 |
1080 y(metho)q(ds)h(that)f(are)h(sp)q(eci\014c)i(to)d(that)g(domain.)23 |
1427 |
b(A)o(t)15 b(presen)o(t,)h(only)g Fi(unix)k Fn(and)c Fi(inet)i |
1428 |
Fn(domains)e(are)g(supp)q(orted.)0 1142 y Fo(sockunixbuf)d |
1429 |
Fn(class)h(and)h Fo(sockinetbuf)e Fn(class)h(de\014ne)i(the)e |
1430 |
Fi(unix)19 b Fn(and)14 b Fi(inet)i Fn(domain)f(of)f(so)q(c)o(k)o(ets)f(resp)q |
1431 |
(ectiv)o(ely)l(.)0 1204 y(See)h(Chapter)f(6)g([so)q(c)o(kunixbuf)h(Class],)f |
1432 |
(page)g(21,)f(for)h Fi(unix)k Fn(so)q(c)o(k)o(ets)c(and)g(See)h(Chapter)f(4)g |
1433 |
([so)q(c)o(kinetbuf)h(Class],)0 1267 y(page)h(14,)f(for)h Fi(inet)i |
1434 |
Fn(so)q(c)o(k)o(ets.)62 1404 y(W)l(e)e(also)g(ha)o(v)o(e)g(domain)g(sp)q |
1435 |
(eci\014c)i(so)q(c)o(k)o(et)e(address)g(classes)g(that)f(are)h(deriv)o(ed)h |
1436 |
(from)e(a)h(common)g(base)g(class)0 1466 y(called)g Fo(sockAddr)p |
1437 |
Fn(.)j Fo(sockunixaddr)11 b Fn(class)j(is)g(used)g(for)e Fi(unix)18 |
1438 |
b Fn(domain)13 b(addresses)h(and)f Fo(sockinetaddr)f Fn(class)h(is)0 |
1439 |
1528 y(used)j(for)f Fi(inet)i Fn(domain)f(addresses.)21 b(F)l(or)15 |
1440 |
b(more)g(information)h(on)f(address)h(classes)g(see)g(Chapter)f(3)g([so)q(c)o |
1441 |
(kAddr)0 1590 y(Class],)22 b(page)f(13,)h(Chapter)f(7)g([so)q(c)o(kunixaddr)h |
1442 |
(Class],)g(page)f(25,)h(and)f(Chapter)g(5)g([so)q(c)o(kinetaddr)h(Class],)0 |
1443 |
1653 y(page)15 b(19.)120 1790 y Fi(Note)s Fn(:)i Fo(sockAddr)9 |
1444 |
b Fn(is)j(not)e(sp)q(elled)j Fo(sockaddr)d Fn(in)h(order)g(to)f(prev)o(en)o |
1445 |
(t)h(name)f(clash)i(with)f(the)g Fo(struct)120 1840 y(sockaddr)j |
1446 |
Fn(declared)i(in)h(`)p Fo(<sys/socket.h>)p Fn('.)62 2051 y(W)l(e)k(noted)f |
1447 |
(earlier)i(that)d(so)q(c)o(k)o(et)p Fo(++)h Fn(pro)o(vides)h(the)f(same)g(in) |
1448 |
o(terface)h(as)f(the)g(iostream)g(library)l(.)37 b(F)l(or)20 |
1449 |
b(ex-)0 2114 y(ample,)e(in)f(the)g(in)o(ternet)h(domain,)f(w)o(e)g(ha)o(v)o |
1450 |
(e)f Fo(isockinet)p Fn(,)g Fo(osockinet)p Fn(,)g(and)h Fo(iosockinet)f |
1451 |
Fn(classes)h(that)f(are)0 2176 y(coun)o(terparts)e(to)g Fo(istream)p |
1452 |
Fn(,)f Fo(ostream)p Fn(,)g(and)i Fo(iostream)e Fn(classes)i(of)f(IOStream)h |
1453 |
(library)l(.)21 b(F)l(or)13 b(more)i(details)g(on)0 2238 y |
1454 |
Fo(iosockstream)f Fn(classes)h(see)h(See)g(Chapter)e(8)h([so)q(c)o(kstream)f |
1455 |
(Classes],)h(page)g(26.)62 2375 y(The)c(services)g(of)e Fo(pipe\(\))p |
1456 |
Fn(,)h Fo(socketpair\(\))p Fn(,)f(and)i Fo(popen\(\))e Fn(system)h(calls)h |
1457 |
(are)f(pro)o(vided)h(b)o(y)f(the)g Fo(pipestream)0 2437 y Fn(class.)20 |
1458 |
b(See)c(Chapter)f(9)g([pip)q(estream)g(Classes],)g(page)g(33.)p |
1459 |
eop |
1460 |
%%Page: 4 6 |
1461 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1408 |
1462 |
b(4)0 183 y Fk(2)41 b Fj(sockbuf)14 b Fk(Class)62 383 y Fo(sockbuf)h |
1463 |
Fn(class)g(is)h(deriv)o(ed)h(from)d Fo(streambuf)h Fn(class)g(of)g(the)h |
1464 |
(iostream)f(library)l(.)21 b(Y)l(ou)16 b(can)g(sim)o(ultaneously)0 |
1465 |
445 y(read)d(and)h(write)g(in)o(to)f(a)g Fo(sockbuf)f Fn(just)i(lik)o(e)g(y)o |
1466 |
(ou)f(can)h(listen)h(and)e(talk)h(through)f(a)g(telephone.)20 |
1467 |
b(T)l(o)14 b(accomplish)0 508 y(the)h(ab)q(o)o(v)o(e)g(goal,)g(w)o(e)g(main)o |
1468 |
(tain)g(t)o(w)o(o)f(indep)q(enden)o(t)k(bu\013ers)d(for)f(reading)i(and)f |
1469 |
(writing.)0 755 y Fm(2.1)33 b(Constructors)62 895 y Fo(sockbuf)13 |
1470 |
b Fn(constructors)g(sets)h(up)g(an)g(endp)q(oin)o(t)h(for)e(comm)o |
1471 |
(unication.)20 b(A)14 b Fo(sockbuf)f Fn(ob)s(ject)g(so)h(created)g(can)0 |
1472 |
957 y(b)q(e)19 b(read)e(from)h(and)g(written)g(to)f(in)i(linebu\013ered)h(mo) |
1473 |
q(de.)28 b(T)l(o)18 b(c)o(hange)g(mo)q(de,)g(refer)g(to)f Fo(streambuf)g |
1474 |
Fn(class)h(in)0 1020 y(y)o(our)d(IOStream)g(library)l(.)120 |
1475 |
1159 y Fi(Note)s Fn(:)20 b(If)c(y)o(ou)f(are)g(using)h(A)l(T&T)g(IOStream)g |
1476 |
(library)l(,)g(then)g(the)g(linebu\013ered)i(mo)q(de)e(is)g(p)q(erma-)120 |
1477 |
1209 y(nen)o(tly)g(turned)h(o\013.)k(Th)o(us,)15 b(y)o(ou)h(need)g(to)f |
1478 |
(explicitly)k(\015ush)d(a)g(so)q(c)o(k)o(et)f(stream.)21 b(Y)l(ou)16 |
1479 |
b(can)g(\015ush)g(a)120 1259 y(so)q(c)o(k)o(et)f(stream)f(bu\013er)h(in)h |
1480 |
(one)g(of)e(the)i(follo)o(wing)f(four)g(w)o(a)o(ys:)335 1386 |
1481 |
y Fo(//)24 b(os)g(is)f(a)h(socket)f(ostream)335 1436 y(os)h(<<)g("this)f(is)g |
1482 |
(a)h(test")f(<<)h(endl;)335 1486 y(os)g(<<)g("this)f(is)g(a)h(test\\n")f(<<)h |
1483 |
(flush;)335 1535 y(os)g(<<)g("this)f(is)g(a)h(test\\n";)f(os.flush)g(\(\);) |
1484 |
335 1585 y(os)h(<<)g("this)f(is)g(a)h(test\\n";)f(os->sync)g(\(\);)62 |
1485 |
1802 y(sockbuf)14 b Fn(ob)s(jects)h(are)g(created)g(as)g(follo)o(ws)g(where) |
1486 |
25 1942 y Fl(\000)30 b Fo(s)15 b Fn(and)g Fo(so)g Fn(are)g |
1487 |
Fo(sockbuf)f Fn(ob)s(jects)25 2019 y Fl(\000)30 b Fo(sd)15 |
1488 |
b Fn(is)h(an)f(in)o(teger)g(whic)o(h)h(is)g(a)f(so)q(c)o(k)o(et)f(descriptor) |
1489 |
25 2096 y Fl(\000)30 b Fo(af)15 b Fn(and)g Fo(proto)g Fn(are)g(in)o(tegers)g |
1490 |
(whic)o(h)h(denote)f(domain)h(n)o(um)o(b)q(er)g(and)f(proto)q(col)g(n)o(um)o |
1491 |
(b)q(er)h(resp)q(ectiv)o(ely)25 2174 y Fl(\000)30 b Fo(ty)17 |
1492 |
b Fn(is)g(a)g Fo(sockbuf::type)e Fn(and)j(m)o(ust)e(b)q(e)i(one)f(of)g |
1493 |
Fo(sockbuf::sock_stream)p Fn(,)d Fo(sockbuf::sock_dgram)p Fn(,)90 |
1494 |
2236 y Fo(sockbuf::sock_raw)p Fn(,)e Fo(sockbuf::sock_rdm)p |
1495 |
Fn(,)h(and)i Fo(sockbuf::sock_seqpacket)0 2376 y(sockbuf)f(s\(sd\);)0 |
1496 |
2438 y(sockbuf)g(s;)240 2515 y Fn(Set)h(so)q(c)o(k)o(et)g(descriptor)h(of)e |
1497 |
Fo(s)h Fn(to)g Fo(sd)g Fn(\(defaults)g(to)g(-1\).)k Fo(sockbuf)14 |
1498 |
b Fn(destructor)h(will)i(close)f Fo(sd)p Fn(.)0 2593 y Fo(sockbuf)e(s\(af,)h |
1499 |
(ty,)f(proto\);)240 2670 y Fn(Set)h(so)q(c)o(k)o(et)g(descriptor)h(of)e |
1500 |
Fo(s)h Fn(to)g Fo(::socket\(af,)e(int\(ty\),)h(proto\);)p eop |
1501 |
%%Page: 5 7 |
1502 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1408 |
1503 |
b(5)0 183 y Fo(sockbuf)14 b(so\(s\);)240 259 y Fn(Set)h(so)q(c)o(k)o(et)g |
1504 |
(descriptor)h(of)e Fo(so)h Fn(to)g(the)g(so)q(c)o(k)o(et)g(descriptor)g(of)g |
1505 |
Fo(s)p Fn(.)0 334 y Fo(s.open\(ty,)f(proto\))240 409 y Fn(do)q(es)i(nothing)f |
1506 |
(and)h(returns)f(simply)h Fo(0)p Fn(,)f(the)g(n)o(ull)i(p)q(oin)o(ter)e(to)g |
1507 |
Fo(sockbuf)p Fn(.)0 485 y Fo(s.is_open\(\))240 560 y Fn(returns)g(a)g |
1508 |
(non-zero)g(n)o(um)o(b)q(er)h(if)g(the)f(so)q(c)o(k)o(et)g(descriptor)g(is)h |
1509 |
(op)q(en)g(else)g(return)f(0.)0 635 y Fo(s)g(=)g(so;)90 b Fn(return)15 |
1510 |
b(a)g(reference)h Fo(s)f Fn(after)f(assigning)i Fo(s)f Fn(with)h |
1511 |
Fo(so)p Fn(.)0 865 y Fm(2.2)33 b(Destructor)62 1002 y Fo |
1512 |
(sockbuf::~sockbuf\(\))14 b Fn(\015ushes)j(output)f(and)g(closes)h(its)f(so)q |
1513 |
(c)o(k)o(et)g(if)g(no)h(other)e(so)q(c)o(kbuf)i(is)f(referencing)i(it)0 |
1514 |
1065 y(and)p 91 1065 14 2 v 32 w(S)p 133 1065 V 16 w(DELETE)p |
1515 |
338 1065 V 16 w(DONT)p 491 1065 V 17 w(CLOSE)e(\015ag)f(is)g(not)g(set.)20 |
1516 |
b(It)15 b(also)g(deletes)h(its)g(read)f(and)g(write)h(bu\013ers.)62 |
1517 |
1202 y(In)g(what)f(follo)o(ws,)25 1340 y Fl(\000)30 b Fo(s)15 |
1518 |
b Fn(is)h(a)f Fo(sockbuf)f Fn(ob)s(ject)25 1415 y Fl(\000)30 |
1519 |
b Fo(how)10 b Fn(is)g(of)g(t)o(yp)q(e)g Fo(sockbuf::shuthow)e |
1520 |
Fn(and)j(m)o(ust)e(b)q(e)i(one)f(of)g Fo(sockbuf::shut_read)p |
1521 |
Fn(,)e Fo(sockbuf::shut_write)p Fn(,)90 1477 y(and)15 b Fo |
1522 |
(sockbuf::shut_readwrite)0 1615 y(sockbuf::~sockbuf\(\))240 |
1523 |
1690 y Fn(\015ushes)i(output)f(and)g(closes)g(its)h(so)q(c)o(k)o(et)e(if)i |
1524 |
(no)f(other)f Fo(sockbuf)g Fn(ob)s(ject)h(is)g(referencing)h(it)g(b)q(efore) |
1525 |
240 1753 y(deleting)f(its)f(read)f(and)h(write)f(bu\013ers.)20 |
1526 |
b(If)14 b(the)p 1068 1753 V 31 w(S)p 1109 1753 V 17 w(DELETE)p |
1527 |
1315 1753 V 16 w(DONT)p 1468 1753 V 16 w(CLOSE)i(\015ag)e(is)h(set,)f(then) |
1528 |
240 1815 y(the)h(so)q(c)o(k)o(et)g(is)h(not)e(closed.)0 1890 |
1529 |
y Fo(s.close\(\))240 1965 y Fn(closes)d(the)f(so)q(c)o(k)o(et)g(ev)o(en)g(if) |
1530 |
h(it)f(is)h(referenced)g(b)o(y)f(other)g Fo(sockbuf)f Fn(ob)s(jects)g(and)p |
1531 |
1579 1965 V 27 w(S)p 1621 1965 V 17 w(DELETE)p 1827 1965 V |
1532 |
16 w(DONT)p 1980 1965 V 16 w(CLOSE)240 2028 y(\015ag)15 b(is)h(set.)0 |
1533 |
2103 y Fo(s.shutdown\(how\))240 2178 y Fn(sh)o(uts)10 b(do)o(wn)g(read)g(if)g |
1534 |
Fo(how)g Fn(is)h Fo(sockbuf::shut_read)p Fn(,)d(sh)o(uts)i(do)o(wn)g(write)g |
1535 |
(if)h Fo(how)e Fn(is)i Fo(sockbuf::shut_write)p Fn(,)240 2241 |
1536 |
y(and)k(sh)o(uts)g(do)o(wn)g(b)q(oth)h(read)f(and)g(write)g(if)h |
1537 |
Fo(how)f Fn(is)h Fo(sockbuf::shut_readwrite)o Fn(.)0 2470 y |
1538 |
Fm(2.3)33 b(Reading)15 b(and)h(W)-6 b(riting)62 2608 y Fo(sockbuf)17 |
1539 |
b Fn(class)g(o\013ers)g(sev)o(eral)g(w)o(a)o(ys)g(to)f(read)i(and)f(write)h |
1540 |
(and)f(tailors)h(the)f(b)q(eha)o(vior)h(of)f(sev)o(eral)g(virtual)0 |
1541 |
2670 y(functions)f(of)f Fo(streambuf)f Fn(for)g(so)q(c)o(k)o(et)h(comm)o |
1542 |
(unication.)p eop |
1543 |
%%Page: 6 8 |
1544 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1408 |
1545 |
b(6)62 183 y(In)16 b(case)f(of)g(error,)f Fo(sockbuf::error\(const)f(char*\)) |
1546 |
h Fn(is)i(called.)62 321 y(In)g(what)f(follo)o(ws,)25 459 y |
1547 |
Fl(\000)30 b Fo(s)15 b Fn(is)h(a)f Fo(sockbuf)f Fn(ob)s(ject)25 |
1548 |
535 y Fl(\000)30 b Fo(buf)15 b Fn(is)g(bu\013er)h(of)e(t)o(yp)q(e)i |
1549 |
Fo(char*)25 610 y Fl(\000)30 b Fo(bufsz)14 b Fn(is)i(an)f(in)o(teger)h(and)f |
1550 |
(is)h(less)g(than)f Fo(sizeof\(buf\))25 686 y Fl(\000)30 b |
1551 |
Fo(msgf)15 b Fn(is)g(an)g(in)o(teger)h(and)f(denotes)h(the)f(message)g |
1552 |
(\015ag)25 762 y Fl(\000)30 b Fo(sa)15 b Fn(is)h(of)e(t)o(yp)q(e)i |
1553 |
Fo(sockAddr)25 837 y Fl(\000)30 b Fo(msgh)15 b Fn(is)g(a)g(p)q(oin)o(ter)h |
1554 |
(to)e Fo(struct)h(msghdr)25 913 y Fl(\000)30 b Fo(wp)15 b Fn(is)h(an)f(in)o |
1555 |
(teger)g(and)g(denotes)h(time)f(in)h(seconds)25 988 y Fl(\000)30 |
1556 |
b Fo(c)15 b Fn(is)h(a)f(c)o(har)0 1126 y Fo(s.is_open\(\))240 |
1557 |
1202 y Fn(returns)g(a)g(non-zero)g(n)o(um)o(b)q(er)h(if)g(the)f(so)q(c)o(k)o |
1558 |
(et)g(descriptor)g(is)h(op)q(en)g(else)g(return)f(0.)0 1278 |
1559 |
y Fo(s.is_eof\(\))240 1353 y Fn(returns)g(a)g(non-zero)g(n)o(um)o(b)q(er)h |
1560 |
(if)g(the)f(so)q(c)o(k)o(et)g(has)g(seen)g(EOF)g(while)i(reading)f(else)g |
1561 |
(return)f(0.)0 1429 y Fo(s.write\(buf,)f(bufsz\))240 1505 y |
1562 |
Fn(returns)20 b(an)f(in)o(t)i(whic)o(h)f(m)o(ust)f(b)q(e)i(equal)f(to)g |
1563 |
Fo(bufsz)f Fn(if)h Fo(bufsz)f Fn(c)o(hars)h(in)g(the)g Fo(buf)f |
1564 |
Fn(are)h(written)240 1567 y(successfully)l(.)37 b(It)20 b(returns)g(0)g(if)h |
1565 |
(there)f(is)h(nothing)g(to)e(write)i(or)e(if,)j(in)f(case)f(of)g(timeouts,)h |
1566 |
(the)240 1629 y(so)q(c)o(k)o(et)15 b(is)g(not)g(ready)g(for)g(write)g |
1567 |
(Section)h(2.6)e([Timeouts],)h(page)g(11.)0 1705 y Fo(s.send\(buf,)f(bufsz,)g |
1568 |
(msgf\))240 1780 y Fn(same)20 b(as)g Fo(sockbuf::write)f Fn(describ)q(ed)k |
1569 |
(ab)q(o)o(v)o(e)d(but)g(allo)o(ws)h(the)g(user)g(to)f(con)o(trol)g(the)g |
1570 |
(trans-)240 1843 y(mission)f(of)f(messages)g(using)h(the)g(message)f(\015ag)g |
1571 |
Fo(msgf)p Fn(.)29 b(If)19 b Fo(msgf)f Fn(is)h Fo(sockbuf::msg_oob)d |
1572 |
Fn(and)240 1905 y(the)k(so)q(c)o(k)o(et)f(t)o(yp)q(e)g(of)g |
1573 |
Fo(s)h Fn(is)g Fo(sockbuf::sock_stream)p Fn(,)d Fo(s)j Fn(sends)g(the)f |
1574 |
(message)h(in)g Fi(out-of-band)240 1967 y Fn(mo)q(de.)38 b(If)22 |
1575 |
b Fo(msgf)f Fn(is)h Fo(sockbuf::msg_dontroute)p Fn(,)d Fo(s)i |
1576 |
Fn(sends)h(the)f(outgoing)g(pac)o(k)o(ets)g(without)240 2029 |
1577 |
y(routing.)29 b(If)18 b Fo(msgf)g Fn(is)g(0,)g(whic)o(h)h(is)g(the)f(default) |
1578 |
h(case,)g Fo(sockbuf::send)d Fn(b)q(eha)o(v)o(es)i(exactly)h(lik)o(e)240 |
1579 |
2092 y Fo(sockbuf::write)p Fn(.)0 2167 y Fo(s.sendto\(sa,)14 |
1580 |
b(buf,)g(bufsz,)g(msgf\))240 2243 y Fn(same)f(as)h Fo(sockbuf::send)d |
1581 |
Fn(but)j(w)o(orks)f(on)g(unconnected)i(so)q(c)o(k)o(ets.)k |
1582 |
Fo(sa)13 b Fn(sp)q(eci\014es)j(the)e Fi(to)h Fn(address)240 |
1583 |
2305 y(for)g(the)g(message.)0 2381 y Fo(s.sendmsg\(msgh,)e(msgf\))240 |
1584 |
2456 y Fn(same)i(as)g Fo(sockbuf::send)e Fn(but)i(sends)h(a)f |
1585 |
Fo(struct)f(msghdr)h Fn(ob)s(ject)f(instead.)0 2532 y Fo(s.sys_write\(buf,)f |
1586 |
(bufsz\))240 2608 y Fn(calls)e Fo(sockbuf::write)d Fn(and)j(returns)f(the)g |
1587 |
(result.)19 b(Unlik)o(e)11 b Fo(sockbuf::write)d(sockbuf::sys_write)240 |
1588 |
2670 y Fn(is)16 b(declared)g(as)f(a)g(virtual)h(function.)p |
1589 |
eop |
1590 |
%%Page: 7 9 |
1591 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1408 |
1592 |
b(7)0 183 y Fo(s.read\(buf,)14 b(bufsz\))240 258 y Fn(returns)h(an)g(in)o(t)h |
1593 |
(whic)o(h)g(is)g(the)g(n)o(um)o(b)q(er)f(of)g(c)o(hars)g(read)g(in)o(to)h |
1594 |
(the)f Fo(buf)p Fn(.)20 b(In)c(case)f(of)g(EOF,)g(return)240 |
1595 |
320 y(EOF.)c(Here,)h Fo(bufsz)f Fn(indicates)i(the)e(size)i(of)e(the)g |
1596 |
Fo(buf)p Fn(.)19 b(In)12 b(case)f(of)g(timeouts,)h(return)f(0)h(Section)g |
1597 |
(2.6)240 382 y([Timeouts],)i(page)h(11.)0 457 y Fo(s.recv\(buf,)f(bufsz,)g |
1598 |
(msgf\))240 531 y Fn(same)20 b(as)g Fo(sockbuf::read)e Fn(describ)q(ed)23 |
1599 |
b(ab)q(o)o(v)o(e)c(but)i(allo)o(ws)f(the)h(user)f(to)g(receiv)o(e)h |
1600 |
Fi(out-of-band)240 594 y Fn(data)14 b(if)h Fo(msgf)f Fn(is)h |
1601 |
Fo(sockbuf::msg_oob)d Fn(or)i(to)g(preview)h(the)g(data)f(w)o(aiting)g(to)g |
1602 |
(b)q(e)h(read)g(if)g Fo(msgf)e Fn(is)240 656 y Fo(sockbuf::msg_peek)p |
1603 |
Fn(.)23 b(If)17 b Fo(msgf)f Fn(is)i(0,)f(whic)o(h)g(is)h(the)f(default)h |
1604 |
(case,)f Fo(sockbuf::recv)e Fn(b)q(eha)o(v)o(es)240 718 y(exactly)h(lik)o(e)g |
1605 |
Fo(sockbuf::read)p Fn(.)0 793 y Fo(s.recvfrom\(sa,)d(buf,)i(bufsz,)f(msgf\)) |
1606 |
240 867 y Fn(same)22 b(as)g Fo(sockbuf::recv)f Fn(but)i(w)o(orks)e(on)i |
1607 |
(unconnected)g(so)q(c)o(k)o(ets.)42 b Fo(sa)22 b Fn(sp)q(eci\014es)i(the)f |
1608 |
Fi(from)240 929 y Fn(address)15 b(for)g(the)g(message.)0 1004 |
1609 |
y Fo(s.recvmsg\(msgh,)e(msgf\))240 1078 y Fn(same)i(as)g Fo(sockbuf::recv)e |
1610 |
Fn(but)i(reads)g(a)g Fo(struct)g(msghdr)f Fn(ob)s(ject)h(instead.)0 |
1611 |
1153 y Fo(s.sys_read\(buf,)e(bufsz\))240 1227 y Fn(calls)e |
1612 |
Fo(sockbuf::read)e Fn(and)h(returns)g(the)g(result.)19 b(Unlik)o(e)11 |
1613 |
b Fo(sockbuf::read)e(sockbuf::sys_read)240 1290 y Fn(is)16 |
1614 |
b(declared)g(as)f(a)g(virtual)h(function.)0 1364 y Fo |
1615 |
(s.is_readready\(wp_sec,)c(wp_usec\))240 1439 y Fn(returns)g(a)f(non-zero)i |
1616 |
(in)o(t)f(if)g Fo(s)g Fn(has)g(data)f(w)o(aiting)h(to)g(b)q(e)g(read)g(from)f |
1617 |
(the)h(comm)o(unication)h(c)o(hannel.)240 1501 y(If)h Fo(wp_sec)g(>=)h(0)p |
1618 |
Fn(,)e(it)g(w)o(aits)g(for)g Fo(wp_sec)h(10^6)h(+)g(wp_usec)d |
1619 |
Fn(microseconds)i(b)q(efore)f(returning)h(0)f(in)240 1563 y(case)j(there)h |
1620 |
(are)f(no)h(data)e(w)o(aiting)i(to)f(b)q(e)h(read.)24 b(If)16 |
1621 |
b Fo(wp_sec)f(<)g(0)p Fn(,)h(then)h(it)g(w)o(aits)e(un)o(til)j(a)e(datum)240 |
1622 |
1625 y(arriv)o(es)f(at)g(the)g(comm)o(unication)h(c)o(hannel.)21 |
1623 |
b Fo(wp_usec)14 b Fn(defaults)i(to)e(0.)360 1700 y Fi(Please)19 |
1624 |
b(Note)s Fn(:)25 b(The)18 b(data)f(w)o(aiting)i(in)f Fo(sockbuf)p |
1625 |
Fn('s)f(o)o(wn)h(bu\013er)g(is)g(di\013eren)o(t)h(from)360 |
1626 |
1750 y(the)c(data)g(w)o(aiting)g(in)h(the)f(comm)o(unication)h(c)o(hannel.)0 |
1627 |
1824 y Fo(s.is_writeready\(wp_sec,)c(wp_usec\))240 1899 y Fn(returns)19 |
1628 |
b(a)h(non-zero)f(in)o(t)h(if)g(data)f(can)h(b)q(e)g(written)f(on)o(to)g(the)g |
1629 |
(comm)o(unication)i(c)o(hannel)f(of)g Fo(s)p Fn(.)240 1961 |
1630 |
y(If)f Fo(wp_sec)14 b(>=)h(0)p Fn(,)20 b(it)f(w)o(aits)f(for)g |
1631 |
Fo(wp_sec)d(10^6)f(+)h(wp_usec)j Fn(microseconds)i(b)q(efore)f(returning)g(0) |
1632 |
240 2023 y(in)e(case)g(no)g(data)f(can)g(b)q(e)i(written.)24 |
1633 |
b(If)17 b Fo(wp_sec)d(<)h(0)p Fn(,)i(then)g(it)g(w)o(aits)f(un)o(til)i(the)e |
1634 |
(comm)o(unication)240 2086 y(c)o(hannel)g(is)g(ready)f(to)g(accept)g(data.)k |
1635 |
Fo(wp_usec)c Fn(defaults)g(to)g(0.)360 2160 y Fi(Please)f(Note)s |
1636 |
Fn(:)k(The)c(bu\013er)g(of)f(the)h Fo(sockbuf)e Fn(class)i(is)g(di\013eren)o |
1637 |
(t)g(from)f(the)h(bu\013er)f(of)360 2210 y(the)i(comm)o(unication)h(c)o |
1638 |
(hannel)h(bu\013er.)0 2284 y Fo(s.is_exceptionpending\(wp_s)o(ec,)12 |
1639 |
b(wp_usec\))240 2359 y Fn(returns)19 b(non-zero)g(in)o(t)f(if)i |
1640 |
Fo(s)e Fn(has)h(an)o(y)f(exception)i(ev)o(en)o(ts)e(p)q(ending.)32 |
1641 |
b(If)19 b Fo(wp_sec)c(>=)g(0)p Fn(,)k(it)f(w)o(aits)240 2421 |
1642 |
y(for)g Fo(wp_sec)c(10^6)h(+)g(wp_usec)j Fn(microseconds)h(b)q(efore)g |
1643 |
(returning)h(0)e(in)i(case)e Fo(s)h Fn(do)q(es)g(not)f(ha)o(v)o(e)240 |
1644 |
2483 y(an)o(y)f(exception)h(ev)o(en)o(ts)f(p)q(ending.)27 b(If)17 |
1645 |
b Fo(wp_sec)d(<)h(0)p Fn(,)i(then)h(it)f(w)o(aits)f(un)o(til)j(an)e(exp)q |
1646 |
(ception)h(ev)o(en)o(t)240 2546 y(o)q(ccurs.)i Fo(wp_usec)14 |
1647 |
b Fn(defaults)i(to)f(0.)360 2620 y Fi(Please)26 b(Note)s Fn(:)40 |
1648 |
b(The)26 b(exceptions)h(that)e Fo(sockbuf::is_exceptionpen)o(ding)d |
1649 |
Fn(is)360 2670 y(lo)q(oking)16 b(for)f(are)g(di\013eren)o(t)g(from)f(the)i(C) |
1650 |
p Fo(++)e Fn(exceptions.)p eop |
1651 |
%%Page: 8 10 |
1652 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1408 |
1653 |
b(8)0 183 y Fo(s.flush_output\(\))240 259 y Fn(\015ushes)20 |
1654 |
b(the)f(output)g(bu\013er)g(and)g(returns)g(the)g(n)o(um)o(b)q(er)g(of)g(c)o |
1655 |
(hars)f(\015ushed.)33 b(In)19 b(case)g(of)g(error,)240 321 |
1656 |
y(return)g(EOF.)h Fo(sockbuf::flush_output)c Fn(is)k(a)f(protected)h(mem)o(b) |
1657 |
q(er)f(function)i(and)f(it)f(is)h(not)240 384 y(a)o(v)m(ailable)d(for)d |
1658 |
(general)i(public.)0 459 y Fo(s.doallocate\(\))240 535 y Fn(allo)q(cates)i |
1659 |
(free)g(store)f(for)g(read)g(and)h(write)g(bu\013ers)f(of)h |
1660 |
Fo(s)f Fn(and)h(returns)f(1)h(if)g(allo)q(cation)g(is)h(done)240 |
1661 |
598 y(and)13 b(returns)g(0)g(if)h(there)f(is)h(no)f(need.)20 |
1662 |
b Fo(sockbuf::doallocate)10 b Fn(is)k(a)f(protected)g(virtual)h(mem)o(b)q(er) |
1663 |
240 660 y(function)i(and)f(it)h(is)g(not)e(a)o(v)m(ailable)j(for)e(general)h |
1664 |
(public.)0 736 y Fo(s.underflow\(\))240 811 y Fn(returns)21 |
1665 |
b(the)f(unread)i(c)o(har)e(in)i(the)e(bu\013er)h(as)g(an)f(unsigned)i(c)o |
1666 |
(har)f(if)g(there)g(is)g(an)o(y)l(.)36 b(Else)22 b(re-)240 |
1667 |
874 y(turns)e(EOF)f(if)h Fo(s)g Fn(cannot)g(allo)q(cate)g(space)g(for)f(the)h |
1668 |
(bu\013ers,)g(cannot)g(read)g(or)f(p)q(eer)h(is)g(closed.)240 |
1669 |
936 y Fo(sockbuf::underflow)11 b Fn(is)j(a)f(protected)g(virtual)h(mem)o(b)q |
1670 |
(er)f(function)i(and)e(it)h(is)g(not)f(a)o(v)m(ailable)i(for)240 |
1671 |
998 y(general)h(public.)0 1074 y Fo(s.overflow\(c\))240 1150 |
1672 |
y Fn(if)23 b Fo(c==EOF)p Fn(,)f(call)h(and)g(return)f(the)g(result)g(of)g |
1673 |
Fo(flush_output\(\))p Fn(,)g(else)h(if)f Fo(c=='\\n')f Fn(and)i |
1674 |
Fo(s)e Fn(is)240 1212 y(linebu\013ered,)c(call)g Fo(flush_output\(\))c |
1675 |
Fn(and)j(return)g Fo(c)f Fn(unless)i Fo(flush_output\(\))c |
1676 |
Fn(returns)i(EOF,)240 1274 y(in)g(whic)o(h)g(case)f(return)g(EOF.)f(In)i(an)o |
1677 |
(y)e(other)h(case,)g(insert)g(c)o(har)g Fo(c)g Fn(in)o(to)g(the)g(bu\013er)g |
1678 |
(and)g(return)g Fo(c)240 1337 y Fn(as)h(an)h(unsigned)g(c)o(har.)21 |
1679 |
b Fo(sockbuf::overflow)13 b Fn(is)j(a)f(protected)h(mem)o(b)q(er)f(virtual)h |
1680 |
(function)h(and)240 1399 y(it)e(is)h(not)f(a)o(v)m(ailable)i(for)d(general)i |
1681 |
(public.)360 1475 y Fi(No)q(de:)k Fn(linebu\013ered)14 b(mo)q(de)f(do)q(es)g |
1682 |
(not)f(w)o(ork)g(with)h(A)l(T&T)g(IOStream)g(library)l(.)20 |
1683 |
b(Use)360 1525 y(explicit)d(\015ushing)g(to)d(\015ush)i Fo(sockbuf)p |
1684 |
Fn(.)0 1600 y Fo(s.sync\(\))48 b Fn(calls)22 b Fo(flush_output\(\))d |
1685 |
Fn(and)i(returns)f(the)h(result.)38 b(Useful)21 b(if)h(the)f(user)g(needs)g |
1686 |
(to)f(\015ush)i(the)240 1663 y(output)15 b(without)g(writing)h(newline)h(c)o |
1687 |
(har)e(in)o(to)g(the)g(write)h(bu\013er.)0 1739 y Fo(s.xsputn\(buf,)d |
1688 |
(bufsz\))240 1814 y Fn(write)h Fo(bufsz)f Fn(c)o(hars)g(in)o(to)h(the)g |
1689 |
(bu\013er)g(and)g(returns)g(the)g(n)o(um)o(b)q(er)g(of)f(c)o(hars)h |
1690 |
(successfully)h(written.)240 1877 y(Output)h(is)f(\015ushed)i(if)e(an)o(y)g |
1691 |
(c)o(har)g(in)h Fo(buf[0..bufsz-1])d Fn(is)j Fo('\\n')p Fn(.)0 |
1692 |
1952 y Fo(s.recvtimeout\(wp\))240 2028 y Fn(sets)f(the)g(recv)h(timeout)f(to) |
1693 |
f Fo(wp)h Fn(seconds.)20 b(If)c Fo(wp)f Fn(is)h(-1,)e(it)i(is)f(a)g(blo)q(c)o |
1694 |
(k)h(and)g(if)f Fo(wp)g Fn(is)h(0,)e(it)i(is)f(a)g(p)q(oll.)240 |
1695 |
2104 y(It)f(a\013ects)f(all)j(read)e(functions.)20 b(If)14 |
1696 |
b(the)g(so)q(c)o(k)o(et)g(is)h(not)e(read)h(ready)g(within)i |
1697 |
Fo(wp)d Fn(seconds,)i(the)f(read)240 2166 y(call)j(will)g(return)f(0.)21 |
1698 |
b(It)15 b(also)h(a\013ects)f Fo(sockbuf::underflow)p Fn(.)k |
1699 |
Fo(sockbuf::underflow)13 b Fn(will)k(not)240 2229 y(set)e(the)g |
1700 |
Fo(_S_EOF_SEEN)f Fn(\015ag)h(if)g(it)h(is)g(returning)f(EOF)g(b)q(ecause)i |
1701 |
(of)d(timeout.)240 2304 y Fo(sockbuf::recvtimeout)e Fn(returns)j(the)h(old)g |
1702 |
(recv)f(timeout)g(v)m(alue.)0 2380 y Fo(s.sendtimeout\(wp\))240 |
1703 |
2456 y Fn(sets)g(the)g(send)g(timeout)g(to)g Fo(wp)f Fn(seconds.)20 |
1704 |
b(If)c Fo(wp)e Fn(is)i(-1,)e(it)i(is)f(a)g(blo)q(c)o(k)g(and)h(if)f |
1705 |
Fo(wp)g Fn(is)g(0,)g(it)g(is)g(a)g(p)q(oll.)240 2532 y(It)j(a\013ects)g(all)h |
1706 |
(write)g(functions.)30 b(If)18 b(the)h(so)q(c)o(k)o(et)f(is)g(not)g(write)h |
1707 |
(ready)f(within)i Fo(wp)e Fn(seconds,)h(the)240 2594 y(write)c(call)i(will)f |
1708 |
(return)g(0.)240 2670 y Fo(sockbuf::sendtimeout)c Fn(returns)j(the)h(old)g |
1709 |
(send)f(timeout)h(v)m(alue.)p eop |
1710 |
%%Page: 9 11 |
1711 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1408 |
1712 |
b(9)0 183 y Fm(2.4)33 b(Establishing)16 b(connections)62 320 |
1713 |
y Fn(A)11 b(name)g(m)o(ust)g(b)q(e)g(b)q(ound)h(to)f(a)f Fo(sockbuf)g |
1714 |
Fn(if)i(pro)q(cesses)f(w)o(an)o(t)f(to)g(refer)h(to)f(it)i(and)f(use)g(it)g |
1715 |
(for)g(comm)o(unication.)0 382 y(Names)i(m)o(ust)g(b)q(e)i(unique.)20 |
1716 |
b(A)14 b Fi(unix)k Fn(name)13 b(is)h(a)g(3-tuple,)g Fo(<)p |
1717 |
Fi(proto)q(col,)f(lo)q(cal)i(path,)f(p)q(eer)g(path)p Fo(>)p |
1718 |
Fn(.)19 b(An)14 b Fi(inet)h Fn(name)0 445 y(is)k(a)g(5-tuple,)h |
1719 |
Fo(<)p Fi(proto)q(col,)f(lo)q(cal)g(addr,)h(lo)q(cal)f(p)q(ort,)g(p)q(eer)h |
1720 |
(addr,)f(p)q(eer)g(p)q(ort)p Fo(>)p Fn(.)30 b Fo(sockbuf::bind)17 |
1721 |
b Fn(is)i(used)h(to)0 507 y(sp)q(ecify)h(the)g(lo)q(cal)g(half)f(of)g(the)g |
1722 |
(name|)p Fo(<)p Fi(lo)q(cal)i(path)p Fo(>)d Fn(for)h Fi(unix)k |
1723 |
Fn(and)c Fo(<)p Fi(lo)q(cal)h(addr,)g(lo)q(cal)h(p)q(ort)p |
1724 |
Fo(>)d Fn(for)h Fi(inet)p Fn(.)0 569 y Fo(sockbuf::connect)d |
1725 |
Fn(and)i Fo(sockbuf::accept)e Fn(are)i(used)h(to)f(sp)q(ecify)h(the)f(p)q |
1726 |
(eer)h(half)g(of)f(the)g(name|)p Fo(<)p Fi(p)q(eer)0 632 y(path)p |
1727 |
Fo(>)c Fn(for)f Fi(unix)20 b Fn(and)15 b Fo(<)p Fi(p)q(eer)h(addr,)f(p)q(eer) |
1728 |
h(p)q(ort)p Fo(>)e Fn(for)h Fi(inet)p Fn(.)62 769 y(In)h(what)f(follo)o(ws,) |
1729 |
25 906 y Fl(\000)30 b Fo(s)15 b Fn(and)g Fo(so)g Fn(are)g Fo(sockbuf)f |
1730 |
Fn(ob)s(jects)25 978 y Fl(\000)30 b Fo(sa)15 b Fn(is)h(a)e |
1731 |
Fo(sockAddr)h Fn(ob)s(ject)25 1051 y Fl(\000)30 b Fo(nc)15 |
1732 |
b Fn(is)h(an)f(in)o(teger)g(denoting)h(the)f(n)o(um)o(b)q(er)h(of)f |
1733 |
(connections)h(to)e(allo)o(w)0 1188 y Fo(s.bind\(sa\))240 1260 |
1734 |
y Fn(binds)i Fo(sockAddr)f(sa)f Fn(as)h(the)g(lo)q(cal)i(half)e(of)g(the)h |
1735 |
(name)f(for)f Fo(s)p Fn(.)0 1333 y Fo(s.connect\(sa\))240 1405 |
1736 |
y(sockbuf::connect)e Fn(uses)j Fo(sa)g Fn(to)f(pro)o(vide)h(the)g(p)q(eer)g |
1737 |
(half)g(of)g(the)g(name)f(for)g Fo(s)h Fn(and)g(to)f(establish)240 |
1738 |
1467 y(the)23 b(connection)h(itself.)43 b Fo(sockbuf::connect)20 |
1739 |
b Fn(also)j(pro)o(vides)g(the)g(lo)q(cal)h(half)f(of)f(the)h(name)240 |
1740 |
1530 y(automatically)d(and)g(hence,)i(the)d(user)h(should)h(not)e(use)h |
1741 |
Fo(sockbuf::bind)e Fn(to)h(bind)i(an)o(y)f(lo)q(cal)240 1592 |
1742 |
y(half)c(of)e(the)i(name.)0 1664 y Fo(s.listen\(nc\))240 1737 |
1743 |
y Fn(mak)o(es)c Fo(s)g Fn(ready)g(to)g(accept)g(connections.)20 |
1744 |
b Fo(nc)12 b Fn(sp)q(eci\014es)j(the)d(maxim)o(um)g(n)o(um)o(b)q(er)h(of)f |
1745 |
(outstanding)240 1799 y(connections)22 b(that)e(ma)o(y)h(b)q(e)g(queued)i |
1746 |
(and)e(m)o(ust)f(b)q(e)i(at)e(least)i(1)e(and)i(less)f(than)g(or)g(equal)h |
1747 |
(to)240 1861 y Fo(sockbuf::somaxconn)13 b Fn(whic)o(h)j(is)f(usually)i(5)e |
1748 |
(on)g(most)f(systems.)0 1934 y Fo(sockbuf)g(so)h(=)g(s.accept\(sa\))0 |
1749 |
1996 y(sockbuf)f(so)h(=)g(s.accept\(\))240 2069 y Fn(accepts)e(connections)h |
1750 |
(and)g(returns)f(the)g(p)q(eer)h(address)f(in)h Fo(sa)p Fn(.)19 |
1751 |
b Fo(s)13 b Fn(m)o(ust)g(b)q(e)g(a)g(listening)i Fo(sockbuf)p |
1752 |
Fn(.)240 2131 y(See)h Fo(sockbuf::listen)d Fn(ab)q(o)o(v)o(e.)0 |
1753 |
2346 y Fm(2.5)33 b(Getting)15 b(and)h(Setting)g(So)r(c)n(k)n(et)f(Options)62 |
1754 |
2483 y Fn(So)q(c)o(k)o(et)k(options)g(are)f(used)h(to)g(con)o(trol)f(a)g(so)q |
1755 |
(c)o(k)o(et)h(comm)o(unication.)31 b(New)19 b(options)g(can)g(b)q(e)g(set)f |
1756 |
(and)h(old)0 2545 y(v)m(alue)c(of)e(the)h(options)f(can)h(b)q(e)g(retriv)o |
1757 |
(ed)g(at)f(the)h(proto)q(col)g(lev)o(el)g(or)g(at)e(the)i(so)q(c)o(k)o(et)f |
1758 |
(lev)o(el)i(b)o(y)f(using)g Fo(setopt)f Fn(and)0 2608 y Fo(getopt)j |
1759 |
Fn(mem)o(b)q(er)g(functions.)25 b(In)17 b(addition,)g(y)o(ou)g(can)f(also)h |
1760 |
(use)f(sp)q(ecial)j(mem)o(b)q(er)d(functions)i(to)d(get)i(and)f(set)0 |
1761 |
2670 y(sp)q(eci\014c)h(options.)p eop |
1762 |
%%Page: 10 12 |
1763 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1386 |
1764 |
b(10)62 183 y(In)16 b(what)f(follo)o(ws,)25 323 y Fl(\000)30 |
1765 |
b Fo(s)15 b Fn(is)h(a)f Fo(sockbuf)f Fn(ob)s(ject)25 401 y |
1766 |
Fl(\000)30 b Fo(opval)14 b Fn(is)i(an)f(in)o(teger)h(and)f(denotes)g(the)h |
1767 |
(option)f(v)m(alue)25 479 y Fl(\000)30 b Fo(op)15 b Fn(is)h(of)e(t)o(yp)q(e)i |
1768 |
Fo(sockbuf::option)d Fn(and)i(m)o(ust)g(b)q(e)h(one)f(of)127 |
1769 |
556 y Fl(\017)30 b Fo(sockbuf::so_error)13 b Fn(used)j(to)e(retriev)o(e)i |
1770 |
(and)f(clear)h(error)e(status)127 634 y Fl(\017)30 b Fo(sockbuf::so_type)13 |
1771 |
b Fn(used)j(to)e(retriev)o(e)i(t)o(yp)q(e)f(of)g(the)g(so)q(c)o(k)o(et)127 |
1772 |
712 y Fl(\017)30 b Fo(sockbuf::so_debug)13 b Fn(is)j(used)f(to)g(sp)q(ecify)h |
1773 |
(recording)g(of)f(debugging)h(information)127 789 y Fl(\017)30 |
1774 |
b Fo(sockbuf::so_reuseaddr)12 b Fn(is)k(used)g(to)e(sp)q(ecify)j(the)e(reuse) |
1775 |
h(of)e(lo)q(cal)j(address)127 867 y Fl(\017)30 b Fo(sockbuf::so_keepalive)12 |
1776 |
b Fn(is)k(used)g(to)e(sp)q(ecify)j(whether)e(to)g(k)o(eep)g(connections)i |
1777 |
(aliv)o(e)f(or)e(not)127 945 y Fl(\017)30 b Fo(sockbuf::so_dontroute)12 |
1778 |
b Fn(is)k(used)g(to)e(sp)q(ecify)j(whether)e(to)g(route)g(messages)f(or)h |
1779 |
(not)127 1022 y Fl(\017)30 b Fo(sockbuf::so_broadcast)13 b |
1780 |
Fn(is)k(used)g(to)e(sp)q(ecify)i(whether)g(to)e(broadcast)h |
1781 |
Fo(sockbuf::sock_dgram)180 1084 y Fn(messages)f(or)f(not)127 |
1782 |
1162 y Fl(\017)30 b Fo(sockbuf::so_oobinline)12 b Fn(is)k(used)g(to)e(sp)q |
1783 |
(ecify)j(whether)e(to)g(inline)j Fi(out-of-band)f Fn(data)d(or)h(not.)127 |
1784 |
1240 y Fl(\017)30 b Fo(sockbuf::so_linger)13 b Fn(is)i(used)h(to)f(sp)q |
1785 |
(ecify)h(for)f(ho)o(w)g(long)g(to)g(linger)h(b)q(efore)f(sh)o(utting)h(do)o |
1786 |
(wn)127 1317 y Fl(\017)30 b Fo(sockbuf::so_sndbuf)13 b Fn(is)i(used)h(to)f |
1787 |
(retriev)o(e)g(and)g(to)g(set)g(the)g(size)h(of)f(the)g(send)g(bu\013er)h |
1788 |
(\(comm)o(uni-)180 1380 y(cation)f(c)o(hannel)i(bu\013er)e(not)g |
1789 |
Fo(sockbuf)p Fn('s)f(in)o(ternal)i(bu\013er\))127 1457 y Fl(\017)30 |
1790 |
b Fo(sockbuf::so_rcvbuf)13 b Fn(is)j(used)g(to)f(retriev)o(e)h(and)g(to)f |
1791 |
(set)g(the)h(size)g(of)g(the)f(recv)h(bu\013er)g(\(comm)o(uni-)180 |
1792 |
1520 y(cation)f(c)o(hannel)i(bu\013er)e(not)g Fo(sockbuf)p |
1793 |
Fn('s)f(in)o(ternal)i(bu\013er\))0 1660 y Fo(s.getopt\(op,)e(&opval,)g |
1794 |
(sizeof\(opval\),)f(oplevel\))240 1737 y Fn(gets)f(the)h(option)g(v)m(alue)h |
1795 |
(of)f(the)g Fo(sockbuf::option)e(op)h Fn(at)g(the)h(option)g(lev)o(el)i |
1796 |
Fo(oplevel)c Fn(in)j Fo(opval)p Fn(.)240 1800 y(It)j(returns)f(the)h(actual)g |
1797 |
(size)h(of)e(the)h(bu\013er)g Fo(opval)f Fn(used.)25 b(The)17 |
1798 |
b(default)g(v)m(alue)h(of)e(the)h Fo(oplevel)240 1862 y Fn(is)f |
1799 |
Fo(sockbuf::sol_socket)p Fn(.)0 1940 y Fo(s.setopt\(op,)e(&opval,)g |
1800 |
(sizeof\(opval\),)f(oplevel\))240 2017 y Fn(sets)g(the)g(option)g(v)m(alue)h |
1801 |
(of)f(the)g Fo(sockbuf::option)e(op)i Fn(at)f(the)h(option)g(lev)o(el)i |
1802 |
Fo(oplevel)d Fn(to)g Fo(opval)p Fn(.)240 2079 y(The)j(default)h(v)m(alue)h |
1803 |
(of)d(the)i Fo(oplevel)e Fn(is)i Fo(sockbuf::sol_socket)p Fn(.)0 |
1804 |
2157 y Fo(s.gettype\(\))240 2235 y Fn(gets)f(the)g(so)q(c)o(k)o(et)g(t)o(yp)q |
1805 |
(e)g(of)g Fo(s)p Fn(.)k(The)d(return)f(t)o(yp)q(e)g(is)h Fo(sockbuf::type)p |
1806 |
Fn(.)0 2312 y Fo(s.clearerror\(\))240 2390 y Fn(gets)f(and)g(clears)h(the)f |
1807 |
(error)f(status)h(of)g(the)g(so)q(c)o(k)o(et.)0 2468 y Fo(s.debug\(opval\)) |
1808 |
240 2545 y Fn(if)20 b Fo(opval)f Fn(is)h(not)f(-1,)h(set)f(the)g |
1809 |
Fo(sockbuf::so_debug)e Fn(option)j(v)m(alue)h(to)d Fo(opval)p |
1810 |
Fn(.)32 b(In)20 b(an)o(y)f(case,)240 2608 y(return)14 b(the)h(old)g(option)g |
1811 |
(v)m(alue)g(of)f Fo(sockbuf::so_debug)e Fn(option.)20 b(The)15 |
1812 |
b(default)g(v)m(alue)h(of)e Fo(opval)240 2670 y Fn(is)i(-1.)p |
1813 |
eop |
1814 |
%%Page: 11 13 |
1815 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1386 |
1816 |
b(11)0 183 y Fo(s.reuseaddr\(opval\))240 255 y Fn(if)14 b Fo(opval)e |
1817 |
Fn(is)i(not)f(-1,)g(set)f(the)i Fo(sockbuf::so_reuseaddr)c |
1818 |
Fn(option)j(v)m(alue)i(to)d Fo(opval)p Fn(.)19 b(In)13 b(an)o(y)g(case,)240 |
1819 |
317 y(return)k(the)h(old)g(option)g(v)m(alue)h(of)e Fo(sockbuf::so_reuseaddr) |
1820 |
e Fn(option.)27 b(The)17 b(default)i(v)m(alue)f(of)240 380 |
1821 |
y Fo(opval)c Fn(is)i(-1.)0 452 y Fo(s.dontroute\(opval\))240 |
1822 |
523 y Fn(if)e Fo(opval)e Fn(is)i(not)f(-1,)g(set)f(the)i Fo |
1823 |
(sockbuf::so_dontroute)c Fn(option)j(v)m(alue)i(to)d Fo(opval)p |
1824 |
Fn(.)19 b(In)13 b(an)o(y)g(case,)240 586 y(return)k(the)h(old)g(option)g(v)m |
1825 |
(alue)h(of)e Fo(sockbuf::so_dontroute)e Fn(option.)27 b(The)17 |
1826 |
b(default)i(v)m(alue)f(of)240 648 y Fo(opval)c Fn(is)i(-1.)0 |
1827 |
720 y Fo(s.oobinline\(opval\))240 792 y Fn(if)e Fo(opval)e |
1828 |
Fn(is)i(not)f(-1,)g(set)f(the)i Fo(sockbuf::so_oobinline)c |
1829 |
Fn(option)j(v)m(alue)i(to)d Fo(opval)p Fn(.)19 b(In)13 b(an)o(y)g(case,)240 |
1830 |
854 y(return)k(the)h(old)g(option)g(v)m(alue)h(of)e Fo(sockbuf::so_oobinline) |
1831 |
e Fn(option.)27 b(The)17 b(default)i(v)m(alue)f(of)240 916 |
1832 |
y Fo(opval)c Fn(is)i(-1.)0 988 y Fo(s.broadcast\(opval\))240 |
1833 |
1060 y Fn(if)e Fo(opval)e Fn(is)i(not)f(-1,)g(set)f(the)i Fo |
1834 |
(sockbuf::so_broadcast)c Fn(option)j(v)m(alue)i(to)d Fo(opval)p |
1835 |
Fn(.)19 b(In)13 b(an)o(y)g(case,)240 1122 y(return)k(the)h(old)g(option)g(v)m |
1836 |
(alue)h(of)e Fo(sockbuf::so_broadcast)e Fn(option.)27 b(The)17 |
1837 |
b(default)i(v)m(alue)f(of)240 1185 y Fo(opval)c Fn(is)i(-1.)0 |
1838 |
1257 y Fo(s.keepalive\(opval\))240 1328 y Fn(if)e Fo(opval)e |
1839 |
Fn(is)i(not)f(-1,)g(set)f(the)i Fo(sockbuf::so_keepalive)c |
1840 |
Fn(option)j(v)m(alue)i(to)d Fo(opval)p Fn(.)19 b(In)13 b(an)o(y)g(case,)240 |
1841 |
1391 y(return)k(the)h(old)g(option)g(v)m(alue)h(of)e Fo |
1842 |
(sockbuf::so_keepalive)e Fn(option.)27 b(The)17 b(default)i(v)m(alue)f(of)240 |
1843 |
1453 y Fo(opval)c Fn(is)i(-1.)0 1525 y Fo(s.sendbufsz\(opval\))240 |
1844 |
1597 y Fn(if)i Fo(opval)e Fn(is)i(not)f(-1,)g(set)g(the)g(new)h(send)g |
1845 |
(bu\013er)f(size)h(to)f Fo(opval)p Fn(.)25 b(In)18 b(an)o(y)f(case,)g(return) |
1846 |
g(the)g(old)240 1659 y(bu\013er)e(size)h(of)f(the)g(send)h(bu\013er.)k(The)15 |
1847 |
b(default)h(v)m(alue)h(of)d Fo(opval)h Fn(is)h(-1.)0 1731 y |
1848 |
Fo(s.recvbufsz\(opval\))240 1803 y Fn(if)i Fo(opval)f Fn(is)h(not)f(-1,)h |
1849 |
(set)f(the)h(new)f(recv)h(bu\013er)g(size)g(to)f Fo(opval)p |
1850 |
Fn(.)26 b(In)18 b(an)o(y)g(case,)f(return)h(the)f(old)240 1865 |
1851 |
y(bu\013er)e(size)h(of)f(the)g(recv)h(bu\013er.)k(The)15 b(default)h(v)m |
1852 |
(alue)g(of)f Fo(opval)f Fn(is)i(-1.)0 1937 y Fo(s.linger\(tim\))240 |
1853 |
2009 y Fn(if)k Fo(tim)f Fn(is)h(p)q(ositiv)o(e,)h(set)f(the)f(linger)i(time)f |
1854 |
(to)f(tim)g(seconds.)34 b(If)19 b Fo(tim)h Fn(is)g(0,)g(set)f(the)g(linger)i |
1855 |
(o\013.)240 2071 y(In)c(an)o(y)g(case,)f(return)h(the)g(old)g(linger)h(time)f |
1856 |
(if)g(it)g(w)o(as)f(set)g(earlier.)25 b(Otherwise)18 b(return)f(-1.)24 |
1857 |
b(The)240 2133 y(default)16 b(v)m(alue)g(of)f Fo(tim)g Fn(is)g(-1.)0 |
1858 |
2346 y Fm(2.6)33 b(Time)15 b(Outs)g(While)i(Reading)e(and)h(W)-6 |
1859 |
b(riting)62 2483 y Fn(Time)20 b(outs)f(are)g(v)o(ery)g(useful)i(in)f |
1860 |
(handling)h(data)e(of)g(unkno)o(wn)g(sizes)h(and)g(formats)e(while)j(reading) |
1861 |
f(and)0 2545 y(writing.)39 b(F)l(or)20 b(example,)k(ho)o(w)d(do)q(es)g(one)h |
1862 |
(comm)o(unicate)f(with)h(a)f(so)q(c)o(k)o(et)g(that)f(sends)i(c)o(h)o(unks)g |
1863 |
(of)f(data)f(of)0 2608 y(unkno)o(wn)11 b(size)h(and)f(format?)18 |
1864 |
b(If)11 b(only)h Fo(sockbuf::read)d Fn(is)i(used)h(without)f(time)g(out,)g |
1865 |
(it)g(will)i(blo)q(c)o(k)e(inde\014nitely)l(.)0 2670 y(In)16 |
1866 |
b(suc)o(h)f(cases,)g(time)h(out)e(facilit)o(y)j(is)e(the)h(only)f(answ)o(er.) |
1867 |
p eop |
1868 |
%%Page: 12 14 |
1869 |
bop 0 -58 a Fn(Chapter)15 b(2:)k Fo(sockbuf)c Fn(Class)1386 |
1870 |
b(12)62 183 y(The)13 b(follo)o(wing)h(idiom)g(is)g(recommended.)20 |
1871 |
b(See)13 b(Chapter)g(15)f([Pitfalls],)i(page)e(48)h(for)f(a)h(complete)g |
1872 |
(example.)215 320 y Fo(int)24 b(old_tmo)f(=)h(s.recvtimeout)e(\(2\))h(//)h |
1873 |
(set)f(time)g(out)h(\(2)f(seconds)g(here\))215 370 y(for)h(\(;;\))f({)h(//)g |
1874 |
(read)f(or)g(write)311 420 y(char)g(buf[256];)311 470 y(int)g(rval)h(=)f |
1875 |
(s.read)g(\(buf,)h(256\);)311 519 y(if)f(\(rval)h(==)f(0)h(||)g(rval)f(==)g |
1876 |
(EOF\))h(break;)311 569 y(//)f(process)g(buf)h(here)215 619 |
1877 |
y(})215 669 y(s.recvtimeout)f(\(old_tmo\);)f(//)i(reset)f(time)g(out)62 |
1878 |
881 y Fn(In)16 b(what)f(follo)o(ws,)25 1018 y Fl(\000)30 b |
1879 |
Fo(s)15 b Fn(is)h(a)f Fo(sockbuf)f Fn(ob)s(ject)25 1092 y Fl(\000)30 |
1880 |
b Fo(wp)15 b Fn(is)h(w)o(aiting)f(p)q(erio)q(d)h(in)h(seconds)0 |
1881 |
1229 y Fo(s.recvtimeout\(wp\))240 1304 y Fn(sets)e(the)g(recv)h(timeout)f(to) |
1882 |
f Fo(wp)h Fn(seconds.)20 b(If)c Fo(wp)f Fn(is)h(-1,)e(it)i(is)f(a)g(blo)q(c)o |
1883 |
(k)h(and)g(if)f Fo(wp)g Fn(is)h(0,)e(it)i(is)f(a)g(p)q(oll.)240 |
1884 |
1379 y(It)f(a\013ects)f(all)j(read)e(functions.)20 b(If)14 |
1885 |
b(the)g(so)q(c)o(k)o(et)g(is)h(not)e(read)h(ready)g(within)i |
1886 |
Fo(wp)d Fn(seconds,)i(the)f(read)240 1441 y(call)j(will)g(return)f(0.)21 |
1887 |
b(It)15 b(also)h(a\013ects)f Fo(sockbuf::underflow)p Fn(.)k |
1888 |
Fo(sockbuf::underflow)13 b Fn(will)k(not)240 1503 y(set)e(the)g |
1889 |
Fo(_S_EOF_SEEN)f Fn(\015ag)h(if)g(it)h(is)g(returning)f(EOF)g(b)q(ecause)i |
1890 |
(of)d(timeout.)240 1578 y Fo(sockbuf::recvtimeout)e Fn(returns)j(the)h(old)g |
1891 |
(recv)f(timeout)g(v)m(alue.)0 1653 y Fo(s.sendtimeout\(wp\))240 |
1892 |
1727 y Fn(sets)g(the)g(send)g(timeout)g(to)g Fo(wp)f Fn(seconds.)20 |
1893 |
b(If)c Fo(wp)e Fn(is)i(-1,)e(it)i(is)f(a)g(blo)q(c)o(k)g(and)h(if)f |
1894 |
Fo(wp)g Fn(is)g(0,)g(it)g(is)g(a)g(p)q(oll.)240 1802 y(It)j(a\013ects)g(all)h |
1895 |
(write)g(functions.)30 b(If)18 b(the)h(so)q(c)o(k)o(et)f(is)g(not)g(write)h |
1896 |
(ready)f(within)i Fo(wp)e Fn(seconds,)h(the)240 1864 y(write)c(call)i(will)f |
1897 |
(return)g(0.)240 1939 y Fo(sockbuf::sendtimeout)c Fn(returns)j(the)h(old)g |
1898 |
(send)f(timeout)h(v)m(alue.)p eop |
1899 |
%%Page: 13 15 |
1900 |
bop 0 -58 a Fn(Chapter)15 b(3:)k(so)q(c)o(kAddr)d(Class)1366 |
1901 |
b(13)0 183 y Fk(3)41 b(so)r(c)n(kAddr)14 b(Class)62 370 y Fn(Class)h |
1902 |
Fo(sockAddr)f Fn(is)i(an)f(abstract)f(base)h(class)g(for)g(all)h(so)q(c)o(k)o |
1903 |
(et)e(address)i(classes.)k(That)14 b(is,)i(domain)f(sp)q(eci\014c)0 |
1904 |
432 y(so)q(c)o(k)o(et)g(address)g(classes)h(are)e(all)j(deriv)o(ed)f(from)e |
1905 |
Fo(sockAddr)g Fn(class.)120 569 y Fi(Note)s Fn(:)22 b Fo(sockAddr)15 |
1906 |
b Fn(is)i(not)f(sp)q(elled)j Fo(sockaddr)c Fn(in)j(order)e(to)g(prev)o(en)o |
1907 |
(t)g(name)h(clash)g(with)g Fo(struct)120 619 y(sockaddr)d Fn(declared)i(in)h |
1908 |
(`)p Fo(<sys/socket.h>)p Fn('.)62 831 y(Non-abstract)e(deriv)o(ed)h(classes)g |
1909 |
(m)o(ust)e(ha)o(v)o(e)h(de\014nitions)i(for)d(the)i(follo)o(wing)g |
1910 |
(functions.)0 968 y Fo(sockAddr::operator)d(void*)h(\(\))240 |
1911 |
1043 y Fn(should)i(simply)h(return)e Fo(this)p Fn(.)0 1117 |
1912 |
y Fo(sockAddr::size\(\))240 1192 y Fn(should)h(return)f Fo(sizeof\(*this\))p |
1913 |
Fn(.)j(The)e(return)f(t)o(yp)q(e)g(is)h Fo(int)p Fn(.)0 1267 |
1914 |
y Fo(sockAddr::family\(\))240 1341 y Fn(should)g(return)f(address)f(family)i |
1915 |
(\(domain)f(name\))f(of)h(the)g(so)q(c)o(k)o(et)f(address.)20 |
1916 |
b(The)15 b(return)g(t)o(yp)q(e)f(is)240 1404 y Fo(int)p eop |
1917 |
%%Page: 14 16 |
1918 |
bop 0 -58 a Fn(Chapter)15 b(4:)k(so)q(c)o(kinetbuf)e(Class)1328 |
1919 |
b(14)0 183 y Fk(4)41 b(so)r(c)n(kinetbuf)13 b(Class)62 377 |
1920 |
y Fo(sockinetbuf)k Fn(class)h(is)h(deriv)o(ed)g(from)e Fo(sockbuf)g |
1921 |
Fn(class)h(and)g(inherits)i(most)d(of)g(the)h(public)j(functions)d(of)0 |
1922 |
439 y Fo(sockbuf)p Fn(.)i(See)c(Chapter)f(2)g([so)q(c)o(kbuf)g(Class],)g |
1923 |
(page)g(4,)g(for)g(more)g(information)g(on)h Fo(sockbuf)p Fn(.)j(In)d |
1924 |
(addition,)h(it)0 502 y(pro)o(vides)d(metho)q(ds)h(for)e(getting)h |
1925 |
Fo(sockinetaddr)e Fn(of)i(lo)q(cal)h(and)f(p)q(eer)h(connections.)20 |
1926 |
b(See)15 b(Chapter)f(5)f([so)q(c)o(kine-)0 564 y(taddr)i(Class],)f(page)h |
1927 |
(19,)g(for)f(more)h(information)g(on)g Fo(sockinetaddr)p Fn(.)0 |
1928 |
801 y Fm(4.1)33 b(Metho)r(ds)62 940 y Fn(In)16 b(what)f(follo)o(ws,)25 |
1929 |
1078 y Fl(\000)30 b Fo(ty)15 b Fn(denotes)g(the)h(t)o(yp)q(e)f(of)g(the)g(so) |
1930 |
q(c)o(k)o(et)f(connection)j(and)e(is)h(of)f(t)o(yp)q(e)g Fo(sockbuf::type)25 |
1931 |
1154 y Fl(\000)30 b Fo(proto)14 b Fn(denotes)i(the)f(proto)q(col)g(and)h(is)f |
1932 |
(of)g(t)o(yp)q(e)g(in)o(t)25 1230 y Fl(\000)30 b Fo(si,)15 |
1933 |
b(ins)f Fn(are)h Fo(sockbuf)g Fn(ob)s(jects)f(and)i(are)e(in)i |
1934 |
Fi(inet)h Fn(domain)25 1306 y Fl(\000)30 b Fo(adr)15 b Fn(denotes)g(an)g |
1935 |
Fi(inet)i Fn(address)e(in)h(host)f(b)o(yte)g(order)g(and)h(is)f(of)g(t)o(yp)q |
1936 |
(e)g(unsigned)i(long)25 1383 y Fl(\000)30 b Fo(serv)15 b Fn(denotes)g(a)g |
1937 |
(service)h(lik)o(e)g Fo(")p Fn(nn)o(tp)p Fo(")f Fn(and)h(is)f(of)g(t)o(yp)q |
1938 |
(e)g(c)o(har*)25 1459 y Fl(\000)30 b Fo(proto)14 b Fn(denotes)i(a)f(proto)q |
1939 |
(col)g(lik)o(e)h Fo(")p Fn(tcp)p Fo(")f Fn(and)h(is)f(of)g(t)o(yp)q(e)g(c)o |
1940 |
(har*)25 1535 y Fl(\000)30 b Fo(thostname)13 b Fn(is)i(of)e(t)o(yp)q(e)i(c)o |
1941 |
(har*)e(and)i(denotes)f(the)g(name)h(of)e(a)h(host)g(lik)o(e)h |
1942 |
Fo("kelvin.acc.virginia.edu")90 1597 y Fn(or)g Fo("128.143.24.31")p |
1943 |
Fn(.)25 1673 y Fl(\000)30 b Fo(portno)14 b Fn(denotes)i(a)f(p)q(ort)f(in)j |
1944 |
(host)d(b)o(yte)h(order)g(and)h(is)f(of)g(t)o(yp)q(e)g(in)o(t)0 |
1945 |
1812 y Fo(sockinetbuf)f(ins\(ty,)g(proto\))240 1888 y Fn(Constructs)21 |
1946 |
b(a)g Fo(sockinetbuf)e Fn(ob)s(ject)i Fo(ins)g Fn(whose)g(so)q(c)o(k)o(et)g |
1947 |
(comm)o(unication)h(t)o(yp)q(e)g(is)g Fo(ty)f Fn(and)240 1950 |
1948 |
y(proto)q(col)15 b(is)h Fo(proto)p Fn(.)j Fo(proto)14 b Fn(defaults)i(to)f |
1949 |
(0.)0 2026 y Fo(sockinetbuf)f(ins\(si\))240 2102 y Fn(Constructs)g(a)h |
1950 |
Fo(sockinetbuf)f Fn(ob)s(ject)h Fo(ins)f Fn(whic)o(h)i(uses)g(the)f(same)g |
1951 |
(so)q(c)o(k)o(et)g(as)f Fo(si)h Fn(uses.)0 2179 y Fo(ins)g(=)g(si)66 |
1952 |
b Fn(p)q(erforms)17 b(the)h(same)g(function)g(as)f Fo(sockbuf::operator=)p |
1953 |
Fn(.)25 b(See)18 b(Chapter)g(2)f([so)q(c)o(kbuf)h(Class],)240 |
1954 |
2241 y(page)d(4,)g(for)f(more)h(details.)0 2317 y Fo(ins.open\(ty,)f(proto\)) |
1955 |
240 2393 y Fn(create)g(a)f(new)h Fo(sockinetbuf)e Fn(whose)i(t)o(yp)q(e)g |
1956 |
(and)g(proto)q(col)f(are)h Fo(ty)f Fn(and)h Fo(proto)f Fn(resp)q(ectiv)o(ely) |
1957 |
j(and)240 2455 y(assign)f(it)h(to)e Fo(ins)p Fn(.)0 2532 y |
1958 |
Fo(sockinetaddr)g(sina)g(=)h(ins.localaddr\(\))240 2608 y Fn(returns)f(the)f |
1959 |
(lo)q(cal)i Fi(inet)h Fn(address)e(of)f(the)h Fo(sockinetbuf)e |
1960 |
Fn(ob)s(ject)h Fo(ins)p Fn(.)19 b(The)14 b(call)h(will)g(mak)o(e)e(sense)240 |
1961 |
2670 y(only)j(after)e(a)h(call)h(to)f(either)h Fo(sockbuf::bind)d |
1962 |
Fn(or)i Fo(sockbuf::connect)p Fn(.)p eop |
1963 |
%%Page: 15 17 |
1964 |
bop 0 -58 a Fn(Chapter)15 b(4:)k(so)q(c)o(kinetbuf)e(Class)1328 |
1965 |
b(15)0 183 y Fo(sockinetaddr)14 b(sina)g(=)h(ins.peeraddr\(\))240 |
1966 |
255 y Fn(returns)f(the)h(p)q(eer)g Fi(inet)h Fn(address)e(of)g(the)g |
1967 |
Fo(sockinetbuf)f Fn(ob)s(ject)h Fo(ins)p Fn(.)19 b(The)14 b(call)i(will)g |
1968 |
(mak)o(e)d(sense)240 318 y(only)j(after)e(a)h(call)h(to)f Fo |
1969 |
(sockbuf::connect)p Fn(.)0 390 y Fo(const)f(char*)h(hn)g(=)g |
1970 |
(ins.localhost\(\))240 462 y Fn(returns)j(the)f(lo)q(cal)i |
1971 |
Fi(inet)g Fn(thostname)e(of)h(the)f Fo(sockinetbuf)g Fn(ob)s(ject)g |
1972 |
Fo(ins)p Fn(.)26 b(The)18 b(call)h(will)g(mak)o(e)240 524 y(sense)d(only)f |
1973 |
(after)g(a)g(call)h(to)f(either)h Fo(sockbuf::bind)d Fn(or)i |
1974 |
Fo(sockbuf::connect)p Fn(.)0 596 y Fo(const)f(char*)h(hn)g(=)g |
1975 |
(ins.peerhost\(\))240 668 y Fn(returns)j(the)g(p)q(eer)h Fi(inet)h |
1976 |
Fn(thostname)d(of)h(the)g Fo(sockinetbuf)f Fn(ob)s(ject)h Fo(ins)p |
1977 |
Fn(.)28 b(The)18 b(call)i(will)f(mak)o(e)240 730 y(sense)d(only)f(after)g(a)g |
1978 |
(call)h(to)f Fo(sockbuf::connect)p Fn(.)0 802 y Fo(int)g(pn)g(=)g |
1979 |
(ins.localport\(\))240 875 y Fn(returns)26 b(the)g(lo)q(cal)h |
1980 |
Fi(inet)h Fn(p)q(ort)d(n)o(um)o(b)q(er)i(of)e(the)h Fo(sockinetbuf)f |
1981 |
Fn(ob)s(ject)g Fo(ins)h Fn(in)h(host)e(b)o(yte)240 937 y(order.)59 |
1982 |
b(The)28 b(call)i(will)g(mak)o(e)e(sense)g(only)h(after)f(a)g(call)h(to)f |
1983 |
(either)h Fo(sockbuf::bind)d Fn(or)240 999 y Fo(sockbuf::connect)p |
1984 |
Fn(.)0 1071 y Fo(int)15 b(pn)g(=)g(ins.peerport\(\))240 1143 |
1985 |
y Fn(returns)j(the)g(p)q(eer)h Fi(inet)h Fn(p)q(ort)d(n)o(um)o(b)q(er)i(of)f |
1986 |
(the)g Fo(sockinetbuf)e Fn(ob)s(ject)i Fo(ins)f Fn(in)i(lo)q(cal)h(host)d(b)o |
1987 |
(yte)240 1205 y(order.)j(The)15 b(call)h(will)h(mak)o(e)e(sense)h(only)f |
1988 |
(after)g(a)g(call)h(to)f Fo(sockbuf::connect)p Fn(.)0 1278 |
1989 |
y Fo(ins.bind)f(\(\))240 1350 y Fn(binds)i Fo(ins)f Fn(to)g(the)g(default)h |
1990 |
(address)f Fi(INADDR)p 1087 1350 14 2 v 17 w(ANY)22 b Fn(and)15 |
1991 |
b(the)g(default)h(p)q(ort.)0 1422 y Fo(ins.bind)e(\(adr,)h(portno\))240 |
1992 |
1494 y Fn(binds)h Fo(ins)f Fn(to)g(the)g(address)g Fo(adr)g |
1993 |
Fn(and)g(the)h(p)q(ort)f Fo(portno)p Fn(.)0 1566 y Fo(ins.bind)f(\(adr,)h |
1994 |
(serv,)f(proto\))240 1638 y Fn(binds)j Fo(ins)e Fn(to)f(the)i(address,)f |
1995 |
Fo(adr)g Fn(and)h(the)f(p)q(ort)g(corresp)q(onding)i(to)e(the)g(service)h |
1996 |
Fo(serv)f Fn(and)h(the)240 1700 y(proto)q(col)f Fo(proto>)p |
1997 |
Fn(.)0 1772 y Fo(ins.bind)f(\(thostname,)g(portno\))240 1844 |
1998 |
y Fn(binds)24 b Fo(ins)f Fn(to)f(the)h(address)g(corresp)q(onding)h(to)f(the) |
1999 |
g(hostname)f Fo(thostname)g Fn(and)h(the)g(p)q(ort)240 1907 |
2000 |
y Fo(portno)p Fn(.)0 1979 y Fo(ins.bind)14 b(\(thostname,)g(serv,)g(proto\)) |
2001 |
240 2051 y Fn(binds)j Fo(ins)e Fn(to)f(the)i(address)f(corresp)q(onding)i(to) |
2002 |
d(the)i(hostname)f Fo(thostname)f Fn(and)i(the)f(p)q(ort)g(cor-)240 |
2003 |
2113 y(resp)q(onding)h(to)f(the)g(service)h Fo(serv)f Fn(and)g(the)h(proto)q |
2004 |
(col)f Fo(proto>)p Fn(.)0 2185 y Fo(ins.connect)f(\(adr,)g(portno\))240 |
2005 |
2257 y Fn(connects)i Fo(ins)e Fn(to)h(the)g(address)g Fo(adr)g |
2006 |
Fn(and)h(the)f(p)q(ort)g Fo(portno)p Fn(.)0 2329 y Fo(ins.connect)f(\(adr,)g |
2007 |
(serv,)h(proto\))240 2401 y Fn(connects)i Fo(ins)f Fn(to)g(the)g(address,)h |
2008 |
Fo(adr)f Fn(and)h(the)f(p)q(ort)g(corresp)q(onding)i(to)e(the)g(service)i |
2009 |
Fo(serv)e Fn(and)240 2464 y(the)f(proto)q(col)g Fo(proto>)p |
2010 |
Fn(.)0 2536 y Fo(ins.connect)f(\(thostname,)f(portno\))240 |
2011 |
2608 y Fn(connects)18 b Fo(ins)f Fn(to)h(the)f(address)h(corresp)q(onding)h |
2012 |
(to)e(the)h(hostname)f Fo(thostname)g Fn(and)g(the)h(p)q(ort)240 |
2013 |
2670 y Fo(portno)p Fn(.)p eop |
2014 |
%%Page: 16 18 |
2015 |
bop 0 -58 a Fn(Chapter)15 b(4:)k(so)q(c)o(kinetbuf)e(Class)1328 |
2016 |
b(16)0 183 y Fo(ins.connect)14 b(\(thostname,)f(serv,)i(proto\))240 |
2017 |
259 y Fn(connects)j Fo(ins)f Fn(to)h(the)f(address)h(corresp)q(onding)h(to)e |
2018 |
(the)h(hostname)f Fo(thostname)g Fn(and)g(the)h(p)q(ort)240 |
2019 |
321 y(corresp)q(onding)e(to)f(the)g(service)h Fo(serv)f Fn(and)g(the)g(proto) |
2020 |
q(col)h Fo(proto>)p Fn(.)0 554 y Fm(4.2)33 b Fh(inet)15 b Fm(Datagram)f(So)r |
2021 |
(c)n(k)n(ets)62 692 y Fn(The)i(follo)o(wing)h(t)o(w)o(o)d(programs)h |
2022 |
(illustrates)i(ho)o(w)e(to)g(use)h Fo(sockinetbuf)e Fn(class)i(for)g |
2023 |
(datagram)e(connection)0 754 y(in)20 b Fi(inet)g Fn(domain.)32 |
2024 |
b Fo(tdinread.cc)17 b Fn(also)i(sho)o(ws)f(ho)o(w)h(to)f(use)h |
2025 |
Fo(isockinet)f Fn(class)h(and)g Fo(tdinwrite.cc)f Fn(sho)o(ws)0 |
2026 |
816 y(ho)o(w)d(to)f(use)i Fo(osockinet)e Fn(class.)0 1032 y |
2027 |
Fg(tdinread.cc)120 1170 y Fo(//)24 b(reads)f(data)g(sent)g(by)h(tdinwrite.cc) |
2028 |
120 1220 y(#include)f(<sockinet.h>)120 1320 y(int)g(main\(int)g(ac,)h(char**) |
2029 |
f(av\))120 1370 y({)311 1419 y(isockinet)46 b(is)24 b |
2030 |
(\(sockbuf::sock_dgram\);)311 1469 y(is->bind\(\);)311 1569 |
2031 |
y(cout)f(<<)h("localhost)e(=)i(")g(<<)f(so.localhost\(\))f(<<)i(endl)430 |
2032 |
1619 y(<<)g("localport)e(=)i(")g(<<)f(so.localport\(\))f(<<)i(endl;)311 |
2033 |
1718 y(char)214 b(buf[256];)311 1768 y(int)238 b(n;)311 1868 |
2034 |
y(is)23 b(>>)h(n;)311 1917 y(cout)f(<<)h(av[0])f(<<)h(":)f(";)311 |
2035 |
1967 y(while\(n--\))f({)502 2017 y(is)h(>>)h(buf;)502 2067 |
2036 |
y(cout)f(<<)h(buf)f(<<)h(')f(';)311 2117 y(})311 2167 y(cout)g(<<)h(endl;)311 |
2037 |
2266 y(return)f(0;)120 2316 y(})0 2532 y Fg(tdin)n(write.cc)120 |
2038 |
2670 y Fo(//)h(sends)f(data)g(to)h(tdinread.cc)p eop |
2039 |
%%Page: 17 19 |
2040 |
bop 0 -58 a Fn(Chapter)15 b(4:)k(so)q(c)o(kinetbuf)e(Class)1328 |
2041 |
b(17)120 183 y Fo(#include)23 b(<sockinetbuf.h>)120 233 y(#include)g |
2042 |
(<stdlib.h>)120 333 y(int)g(main\(int)g(ac,)h(char**)f(av\))120 |
2043 |
382 y({)311 432 y(if)g(\(ac)h(<)g(3\))f({)502 482 y(cerr)g(<<)h("USAGE:)f(")g |
2044 |
(<<)h(av[0])f(<<)h(")f(thostname)g(port-number)f(")621 532 |
2045 |
y(<<)i("data)f(...)g(")h(<<)g(endl;)502 582 y(return)f(1;)311 |
2046 |
632 y(})311 731 y(osockinet)g(os)g(\(sockbuf::sock_dgram\);)311 |
2047 |
781 y(os->connect)f(\(av[1],)h(atoi\(av[2]\)\);)311 881 y(cout)g(<<)h |
2048 |
("local:)f(")g(<<)h(so.localport\(\))e(<<)i(')f(')740 930 y(<<)h |
2049 |
(so.localhost\(\))e(<<)i(endl)430 980 y(<<)g("peer:)47 b(")23 |
2050 |
b(<<)h(so.peerport\(\))e(<<)i(')f(')740 1030 y(<<)h(so.peerhost\(\))e(<<)i |
2051 |
(endl;)311 1130 y(os)f(<<)h(ac-3;)f(av)h(+=)f(3;)311 1180 y(while\(*av\))f |
2052 |
(os)i(<<)g(*av++)f(<<)g(')h(';)311 1229 y(os)f(<<)h(endl;)311 |
2053 |
1329 y(return)f(0;)120 1379 y(})0 1664 y Fm(4.3)33 b Fh(inet)15 |
2054 |
b Fm(Stream)g(So)r(c)n(k)n(ets)62 1802 y Fn(The)j(follo)o(wing)g(t)o(w)o(o)e |
2055 |
(programs)h(illustrates)h(the)g(use)f(of)g Fo(sockinetbuf)f |
2056 |
Fn(class)i(for)f(stream)g(connection)h(in)0 1865 y Fi(inet)f |
2057 |
Fn(domain.)j(It)15 b(also)h(sho)o(ws)e(ho)o(w)h(to)f(use)i |
2058 |
Fo(iosockinet)e Fn(class.)0 2083 y Fg(tsinread.cc)120 2222 |
2059 |
y Fo(//)24 b(receives)e(strings)h(from)h(tsinwrite.cc)e(and)h(sends)g(the)h |
2060 |
(strlen)120 2271 y(//)g(of)f(each)g(string)h(back)f(to)g(tsinwrite.cc)120 |
2061 |
2321 y(#include)190 b(<sockinet.h>)120 2421 y(int)23 b(main\(\))120 |
2062 |
2471 y({)311 2521 y(sockinetbuf)118 b(si\(sockbuf::sock_stream\))o(;)311 |
2063 |
2570 y(si.bind\(\);)311 2670 y(cout)23 b(<<)h(si.localhost\(\))e(<<)h(')h(')g |
2064 |
(<<)f(si.localport\(\))f(<<)i(endl;)p eop |
2065 |
%%Page: 18 20 |
2066 |
bop 0 -58 a Fn(Chapter)15 b(4:)k(so)q(c)o(kinetbuf)e(Class)1328 |
2067 |
b(18)311 183 y Fo(si.listen\(\);)311 283 y(iosockinet)22 b(s)i(=)g |
2068 |
(si.accept\(\);)311 333 y(char)238 b(buf[1024];)311 432 y(while)23 |
2069 |
b(\(s)h(>>)f(buf\))h({)502 482 y(cout)f(<<)h(buf)f(<<)h(')f(';)502 |
2070 |
532 y(s)h(<<)f(::strlen\(buf\))f(<<)i(endl;)311 582 y(})311 |
2071 |
632 y(cout)f(<<)h(endl;)311 731 y(return)f(0;)120 781 y(})0 |
2072 |
989 y Fg(tsin)n(write.cc)120 1126 y Fo(//)h(sends)f(strings)g(to)g |
2073 |
(tsinread.cc)g(and)g(gets)g(back)h(their)f(length)120 1175 |
2074 |
y(//)h(usage:)f(tsinwrite)f(hostname)h(portno)120 1225 y(//)191 |
2075 |
b(see)23 b(the)h(output)f(of)g(tsinread)g(for)g(what)h(hostname)e(and)i |
2076 |
(portno)f(to)h(use)120 1325 y(#include)190 b(<sockinet.h>)120 |
2077 |
1375 y(#include)g(<stdlib.h>)120 1474 y(int)23 b(main\(int)g(ac,)h(char**)f |
2078 |
(av\))120 1524 y({)311 1574 y(iosockinet)f(sio)i(\(sockbuf::sock_stream\);) |
2079 |
311 1624 y(sio->connect)e(\(av[1],)h(atoi)g(\(av[2]\)\);)311 |
2080 |
1723 y(sio)g(<<)h("Hello!)f(This)g(is)h(a)f(test\\n")g(<<)h(flush;)311 |
2081 |
1823 y(//)f(terminate)g(the)h(while)f(loop)g(in)h(tsinread.cc)311 |
2082 |
1873 y(si.shutdown\(sockbuf::shut)o(_write\);)311 1972 y(int)f(len;)311 |
2083 |
2022 y(while)g(\(s)h(>>)f(len\))h(cout)f(<<)g(len)h(<<)g(')f(';)311 |
2084 |
2072 y(cout)g(<<)h(endl;)311 2172 y(return)f(0;)120 2221 y(})p |
2085 |
eop |
2086 |
%%Page: 19 21 |
2087 |
bop 0 -58 a Fn(Chapter)15 b(5:)k(so)q(c)o(kinetaddr)d(Class)1302 |
2088 |
b(19)0 183 y Fk(5)41 b(so)r(c)n(kinetaddr)14 b(Class)62 369 |
2089 |
y Fn(Class)c Fo(sockinetaddr)f Fn(is)i(deriv)o(ed)g(from)e |
2090 |
Fo(sockAddr)g Fn(declared)i(in)g Fo(<sockstream.h>)e Fn(and)h(from)f |
2091 |
Fo(sockaddr_in)0 432 y Fn(declared)17 b(in)f Fo(<netinet/in.h>)p |
2092 |
Fn(.)i(Alw)o(a)o(ys)d(use)g(a)g Fo(sockinetaddr)f Fn(ob)s(ject)h(for)f(an)i |
2093 |
(address)f(with)h Fi(inet)h Fn(domain)0 494 y(of)e(so)q(c)o(k)o(ets.)k(See)d |
2094 |
(Section)g(2.4)e([Connection)i(Establishmen)o(t],)f(page)g(9.)62 |
2095 |
631 y(In)h(what)f(follo)o(ws,)25 768 y Fl(\000)30 b Fo(adr)15 |
2096 |
b Fn(denotes)g(an)g Fi(inet)i Fn(address)e(in)h(host)f(b)o(yte)g(order)g(and) |
2097 |
h(is)f(of)g(t)o(yp)q(e)g(unsigned)i(long)25 842 y Fl(\000)30 |
2098 |
b Fo(serv)15 b Fn(denotes)g(a)g(service)h(lik)o(e)g Fo(")p |
2099 |
Fn(nn)o(tp)p Fo(")f Fn(and)h(is)f(of)g(t)o(yp)q(e)g(c)o(har*)25 |
2100 |
917 y Fl(\000)30 b Fo(proto)14 b Fn(denotes)i(a)f(proto)q(col)g(lik)o(e)h |
2101 |
Fo(")p Fn(tcp)p Fo(")f Fn(and)h(is)f(of)g(t)o(yp)q(e)g(c)o(har*)25 |
2102 |
991 y Fl(\000)30 b Fo(thostname)13 b Fn(is)i(of)e(t)o(yp)q(e)i(c)o(har*)e |
2103 |
(and)i(denotes)f(the)g(name)h(of)e(a)h(host)g(lik)o(e)h Fo |
2104 |
("kelvin.acc.virginia.edu")90 1054 y Fn(or)g Fo("128.143.24.31")p |
2105 |
Fn(.)25 1128 y Fl(\000)30 b Fo(portno)14 b Fn(denotes)i(a)f(p)q(ort)f(in)j |
2106 |
(host)d(b)o(yte)h(order)g(and)h(is)f(of)g(t)o(yp)q(e)g(in)o(t)0 |
2107 |
1265 y Fo(sockinetaddr)f(sina)240 1340 y Fn(Constructs)g(a)h |
2108 |
Fo(sockinetaddr)e Fn(ob)s(ject)h Fo(sina)g Fn(with)i(default)f(address)g |
2109 |
Fi(INADDR)p 1664 1340 14 2 v 17 w(ANY)21 b Fn(and)15 b(de-)240 |
2110 |
1402 y(fault)g(p)q(ort)g(n)o(um)o(b)q(er)h(0.)0 1477 y Fo(sockinetaddr)e |
2111 |
(sina\(adr,)f(portno\))240 1551 y Fn(Constructs)g(a)g Fo(sockinetaddr)f |
2112 |
Fn(ob)s(ject)h Fo(sina)g Fn(setting)g(inet)i(address)e(to)g |
2113 |
Fo(adr)g Fn(and)h(the)g(p)q(ort)f(n)o(um-)240 1613 y(b)q(er)j(to)e |
2114 |
Fo(portno)p Fn(.)19 b Fo(portno)c Fn(defaults)g(to)g(0.)0 1688 |
2115 |
y Fo(sockinetaddr)f(sina\(adr,)f(serv,)i(proto\))240 1762 y |
2116 |
Fn(Constructs)e(a)g Fo(sockinetaddr)f Fn(ob)s(ject)h Fo(sina)g |
2117 |
Fn(setting)g(inet)i(address)e(to)g Fo(adr)g Fn(and)h(the)g(p)q(ort)f(n)o(um-) |
2118 |
240 1825 y(b)q(er)k(corresp)q(onding)h(to)e(the)h(service)g |
2119 |
Fo(serv)g Fn(and)g(the)f(proto)q(col)h Fo(proto)p Fn(.)24 b(The)17 |
2120 |
b(proto)q(col)f(defaults)240 1887 y(to)f Fo(")p Fn(tcp)p Fo(")p |
2121 |
Fn(.)0 1961 y Fo(sockinetaddr)f(sina\(thostname,)f(portno\))240 |
2122 |
2036 y Fn(Constructs)29 b(a)g Fo(sockinetaddr)f Fn(ob)s(ject)g |
2123 |
Fo(sina)h Fn(setting)h(inet)g(address)g(to)e(the)i(address)f(of)240 |
2124 |
2098 y Fo(thostname)14 b Fn(and)h(the)h(p)q(ort)e(n)o(um)o(b)q(er)i(to)f |
2125 |
Fo(portno)p Fn(.)k Fo(portno)14 b Fn(defaults)i(to)e(0.)0 2173 |
2126 |
y Fo(sockinetaddr)g(sina\(thostname,)f(serv,)h(proto\))240 |
2127 |
2247 y Fn(Constructs)29 b(a)g Fo(sockinetaddr)f Fn(ob)s(ject)g |
2128 |
Fo(sina)h Fn(setting)h(inet)g(address)g(to)e(the)i(address)f(of)240 |
2129 |
2310 y Fo(thostname)20 b Fn(and)i(the)f(p)q(ort)h(n)o(um)o(b)q(er)f(corresp)q |
2130 |
(onding)i(to)e(the)g(service)i Fo(serv)d Fn(and)i(the)g(proto-)240 |
2131 |
2372 y(col)16 b Fo(proto)p Fn(.)j(The)c(proto)q(col)g(defaults)h(to)f |
2132 |
Fo(")p Fn(tcp)p Fo(")p Fn(.)0 2446 y Fo(void*)f(a)h(=)g(sina)240 |
2133 |
2521 y Fn(returns)g(the)g(address)h(of)e(the)i Fo(sockaddr_in)d |
2134 |
Fn(part)i(of)g Fo(sockinetaddr)e Fn(ob)s(ject)i Fo(sina)f Fn(as)h(v)o(oid*.)0 |
2135 |
2595 y Fo(int)g(sz)g(=)g(sina.size\(\))240 2670 y Fn(returns)g(the)g(sizeof)h |
2136 |
Fo(sockaddr_in)e Fn(part)g(of)h Fo(sockinetaddr)f Fn(ob)s(ject)g |
2137 |
Fo(sina)p Fn(.)p eop |
2138 |
%%Page: 20 22 |
2139 |
bop 0 -58 a Fn(Chapter)15 b(5:)k(so)q(c)o(kinetaddr)d(Class)1302 |
2140 |
b(20)0 183 y Fo(int)15 b(af)g(=)g(sina.family\(\))240 258 y |
2141 |
Fn(returns)g Fo(sockinetbuf::af_inet)d Fn(if)k(all)g(is)g(w)o(ell.)0 |
2142 |
333 y Fo(int)f(pn)g(=)g(sina.getport\(\))240 407 y Fn(returns)g(the)g(p)q |
2143 |
(ort)g(n)o(um)o(b)q(er)h(of)f(the)g Fo(sockinetaddr)e Fn(ob)s(ject)i |
2144 |
Fo(sina)g Fn(in)h(host)e(b)o(yte)h(order.)0 482 y Fo(const)f(char*)h(hn)g(=)g |
2145 |
(getthostname\(\))240 557 y Fn(returns)g(the)g(host)g(name)g(of)g(the)g |
2146 |
Fo(sockinetaddr)f Fn(ob)s(ject)g Fo(sina)p Fn(.)p eop |
2147 |
%%Page: 21 23 |
2148 |
bop 0 -58 a Fn(Chapter)15 b(6:)k(so)q(c)o(kunixbuf)e(Class)1317 |
2149 |
b(21)0 183 y Fk(6)41 b(so)r(c)n(kunixbuf)12 b(Class)62 353 |
2150 |
y Fo(sockunixbuf)d Fn(class)i(is)g(deriv)o(ed)g(from)f Fo(sockbuf)g |
2151 |
Fn(class)g(declared)i(in)f Fo(<sockstream.h>)e Fn(and)i(hence,)h(inherits)0 |
2152 |
416 y(most)j(of)g(the)h(public)i(mem)o(b)q(er)d(functions)i(of)e |
2153 |
Fo(sockbuf)p Fn(.)20 b(See)d(Chapter)e(2)g([so)q(c)o(kbuf)h(Class],)f(page)g |
2154 |
(4,)g(for)g(more)0 478 y(information)g(on)g Fo(sockbuf)p Fn(.)0 |
2155 |
686 y Fm(6.1)33 b(Metho)r(ds)62 823 y Fn(In)16 b(what)f(follo)o(ws,)25 |
2156 |
960 y Fl(\000)30 b Fo(ty)15 b Fn(denotes)g(the)h(so)q(c)o(k)o(et)e(t)o(yp)q |
2157 |
(e)h(and)h(is)g(of)e(t)o(yp)q(e)i Fo(sockbuf::type)25 1030 |
2158 |
y Fl(\000)30 b Fo(proto)14 b Fn(denotes)i(the)f(proto)q(col)g(n)o(um)o(b)q |
2159 |
(er)h(and)f(is)h(of)f(t)o(yp)q(e)g(in)o(t)25 1101 y Fl(\000)30 |
2160 |
b Fo(su)15 b Fn(is)h(a)e Fo(sockbuf)h Fn(and)g(m)o(ust)g(b)q(e)h(in)g |
2161 |
Fi(unix)j Fn(domain)25 1171 y Fl(\000)30 b Fo(path)15 b Fn(is)g(the)h |
2162 |
Fi(unix)j Fn(path)c(name)g(lik)o(e)i Fo(")p Fn(/tmp/unix)p |
2163 |
981 1171 14 2 v 16 w(so)q(c)o(k)o(et)p Fo(")0 1308 y(sockunixbuf)d(uns\(ty,)g |
2164 |
(proto\))240 1379 y Fn(Constructs)k(a)g Fo(sockunixbuf)f Fn(ob)s(ject)h |
2165 |
Fo(uns)g Fn(with)h Fo(ty)f Fn(as)g(its)h(t)o(yp)q(e)g(and)f |
2166 |
Fo(proto)g Fn(as)g(its)h(proto)q(col)240 1441 y(n)o(um)o(b)q(er.)h |
2167 |
Fo(proto)15 b Fn(defaults)g(to)g(0.)0 1512 y Fo(sockunixbuf)f(uns)g(=)h(su) |
2168 |
240 1582 y Fn(Constructs)f(a)h Fo(sockunixbuf)f Fn(ob)s(ject)h |
2169 |
Fo(uns)f Fn(whic)o(h)i(uses)g(the)f(same)g(so)q(c)o(k)o(et)g(as)f(is)i(used)g |
2170 |
(b)o(y)f Fo(su)p Fn(.)0 1653 y Fo(uns)g(=)g(su)66 b(sockunixbuf)14 |
2171 |
b Fn(ob)s(ject)h Fo(uns)g Fn(closes)g(its)h(curren)o(t)f(so)q(c)o(k)o(et)g |
2172 |
(if)h(no)f(other)g Fo(sockbuf)f Fn(is)i(referring)g(to)f(it)240 |
2173 |
1715 y(and)g(uses)h(the)f(so)q(c)o(k)o(et)g(that)f Fo(sockbuf)g |
2174 |
Fn(ob)s(ject)h Fo(su)g Fn(is)h(using.)0 1786 y Fo(uns.open\(ty,)e(proto\))240 |
2175 |
1856 y Fn(create)h(a)h Fo(sockunixbuf)e Fn(ob)s(ject)h(with)h |
2176 |
Fo(ty)f Fn(as)h(its)g(t)o(yp)q(e)f(and)h Fo(proto)f Fn(as)g(its)h(proto)q |
2177 |
(col)g(and)g(assign)240 1919 y(the)f Fo(sockunixbuf)f Fn(ob)s(ject)h(so)f |
2178 |
(created)i(to)e Fo(*this)p Fn(.)19 b(It)d(returns)f Fo(this)p |
2179 |
Fn(.)k Fo(proto)14 b Fn(defaults)i(to)f(0.)0 1989 y Fo(uns.bind\(path\))240 |
2180 |
2060 y Fn(binds)h Fo(uns)f Fn(to)g(the)g Fi(unix)k Fn(pathname)d |
2181 |
Fo(path)p Fn(.)0 2130 y Fo(uns.connect\(path\))240 2201 y Fn(connects)g |
2182 |
Fo(uns)e Fn(to)h(the)g Fi(unix)20 b Fn(pathname)15 b Fo(path)p |
2183 |
Fn(.)0 2408 y Fm(6.2)33 b Fh(unix)17 b Fm(Datagram)d(So)r(c)n(k)n(ets)62 |
2184 |
2545 y Fn(The)i(follo)o(wing)h(t)o(w)o(o)d(programs)h(illustrates)i(ho)o(w)e |
2185 |
(to)g(use)h Fo(sockunixbuf)e Fn(class)i(for)g(datagram)e(connection)0 |
2186 |
2608 y(in)19 b Fi(unix)j Fn(domain.)29 b Fo(tdunread.cc)16 |
2187 |
b Fn(also)i(sho)o(ws)g(ho)o(w)f(to)h(use)g Fo(isockunix)f Fn(class)h(and)g |
2188 |
Fo(tdunwrite.cc)f Fn(sho)o(ws)0 2670 y(ho)o(w)e(to)f(use)i |
2189 |
Fo(osockunix)e Fn(class.)p eop |
2190 |
%%Page: 22 24 |
2191 |
bop 0 -58 a Fn(Chapter)15 b(6:)k(so)q(c)o(kunixbuf)e(Class)1317 |
2192 |
b(22)0 183 y Fg(tdunread.cc)120 321 y Fo(//)24 b(reads)f(data)g(sent)g(by)h |
2193 |
(tdunwrite.cc)120 371 y(#include)f(<sockunix.h>)120 421 y(#include)g |
2194 |
(<unistd.h>)120 471 y(#include)g(<errno.h>)120 570 y(int)g(main\(int)g(ac,)h |
2195 |
(char**)f(av\))120 620 y({)311 670 y(if)g(\(ac)h(!=)g(2\))f({)502 |
2196 |
720 y(cerr)g(<<)h("USAGE:)f(")g(<<)h(av[0])f(<<)h(")f(socket_path_name\\n";) |
2197 |
502 770 y(return)g(1;)311 820 y(})311 919 y(//)g(isockunix)g(builds)g(the)h |
2198 |
(sockunixbuf)e(object)311 969 y(isockunix)46 b(su)24 b |
2199 |
(\(sockbuf::sock_dgram\);)311 1069 y(su->bind\(av[1]\);)311 |
2200 |
1168 y(cout)f(<<)h("Socket)f(name)g(=)h(")f(<<)h(av[1])f(<<)h(endl;)311 |
2201 |
1268 y(if)f(\(chmod\(av[1],)g(0777\))g(==)g(-1\))h({)502 1318 |
2202 |
y(perror\("chmod"\);)502 1367 y(return)f(1;)311 1417 y(})311 |
2203 |
1517 y(char)g(buf[1024];)311 1567 y(int)g(i;)311 1617 y(su)g(>>)h(i;)311 |
2204 |
1666 y(cout)f(<<)h(av[0])f(<<)h(":)f(")h(<<)f(i)h(<<)g(")g(strings:)e(";)311 |
2205 |
1716 y(while)h(\(i--\))g({)502 1766 y(su)g(>>)h(buf;)502 1816 |
2206 |
y(cout)47 b(<<)24 b(buf)f(<<)h(')f(';)311 1866 y(})311 1915 |
2207 |
y(cout)g(<<)h(endl;)311 2015 y(unlink\(av[1]\);)311 2065 y(return)f(0;)120 |
2208 |
2115 y(})0 2333 y Fg(tdun)n(write.cc)120 2471 y Fo(//)h(sends)f(data)g(to)h |
2209 |
(tdunread.cc)120 2521 y(#include)f(<sockunix.h>)120 2620 y(int)g(main\(int)g |
2210 |
(ac,)h(char**)f(av\))120 2670 y({)p eop |
2211 |
%%Page: 23 25 |
2212 |
bop 0 -58 a Fn(Chapter)15 b(6:)k(so)q(c)o(kunixbuf)e(Class)1317 |
2213 |
b(23)311 183 y Fo(if)23 b(\(ac)h(<)g(2\))f({)502 233 y(cerr)g(<<)h("USAGE:)f |
2214 |
(")g(<<)h(av[0])621 283 y(<<)g(")f(socket_path_name)f(data...\\n";)502 |
2215 |
333 y(return)h(1;)311 382 y(})311 482 y(osockunix)g(su)g |
2216 |
(\(sockbuf::sock_dgram\);)120 582 y(su->connect)f(\(av[1]\);)311 |
2217 |
681 y(su)h(<<)h(ac)g(<<)f(')h(';)311 731 y(while)f(\(*av\))g({)h(su)g(<<)f |
2218 |
(av[i])g(<<)h(')g(';)f(av++;)g(})311 781 y(su)g(<<)h(endl;)311 |
2219 |
881 y(return)f(0;)120 930 y(})0 1166 y Fm(6.3)33 b Fh(unix)17 |
2220 |
b Fm(Stream)f(So)r(c)n(k)n(ets)62 1304 y Fn(The)g(follo)o(wing)h(t)o(w)o(o)e |
2221 |
(programs)f(illustrates)j(ho)o(w)f(to)f(use)h Fo(sockunixbuf)f |
2222 |
Fn(class)h(for)f(stream)g(connection)i(in)0 1366 y Fi(unix)i |
2223 |
Fn(domain.)i(It)15 b(also)g(sho)o(ws)g(ho)o(w)f(to)h(use)g |
2224 |
Fo(iosockunix)f Fn(class.)0 1585 y Fg(tsunread.cc)120 1724 |
2225 |
y Fo(//)24 b(exchanges)e(char)i(strings)e(with)i(tsunwrite.cc)120 |
2226 |
1773 y(#include)f(<sockunix.h>)120 1823 y(#include)g(<unistd.h>)120 |
2227 |
1873 y(#include)g(<errno.h>)120 1973 y(int)g(main\(int)g(ac,)h(char**)f(av\)) |
2228 |
120 2022 y({)311 2072 y(if)g(\(ac)h(!=)g(2\))f({)502 2122 y(cerr)g(<<)h |
2229 |
("USAGE:)f(")g(<<)h(av[0])f(<<)h(")f(socket_path_name\\n";)502 |
2230 |
2172 y(return)g(1;)311 2222 y(})311 2321 y(sockunixbuf)46 b |
2231 |
(su\(sockbuf::sock_stream\);)311 2371 y(su.bind\(av)22 b([1]\);)311 |
2232 |
2471 y(cout)h(<<)h("Socket)f(name)g(=)h(")f(<<)h(av[1])f(<<)h(endl;)311 |
2233 |
2570 y(if)f(\(chmod\(av[1],)g(0777\))g(==)g(-1\))h({)502 2620 |
2234 |
y(perror\("chmod"\);)502 2670 y(return)f(1;)p eop |
2235 |
%%Page: 24 26 |
2236 |
bop 0 -58 a Fn(Chapter)15 b(6:)k(so)q(c)o(kunixbuf)e(Class)1317 |
2237 |
b(24)311 183 y Fo(})311 283 y(su.listen\(3\);)311 382 y(iosockunix)22 |
2238 |
b(ioput)i(=)f(su.accept)g(\(\);)311 432 y(char)166 b(buf[1024];)311 |
2239 |
532 y(ioput)23 b(<<)h(av[0])f(<<)g(')h(')g(<<)f(av[1])h(<<)f(endl;)311 |
2240 |
582 y(while)g(\()h(ioput)f(>>)h(buf)f(\))h(cout)f(<<)h(av[0])f(<<)g(":)h(")g |
2241 |
(<<)f(buf)h(<<)f(endl;)311 632 y(unlink\(av[1]\);)311 681 y(return)g(0;)120 |
2242 |
731 y(})0 939 y Fg(tsun)n(write.cc)120 1076 y Fo(//)h(exchanges)e(char)i |
2243 |
(strings)e(with)i(tsunread.cc)120 1126 y(#include)f(<sockunix.h>)120 |
2244 |
1225 y(int)g(main\(int)g(ac,)h(char**)f(av\))120 1275 y({)311 |
2245 |
1325 y(if)g(\(ac)h(<)g(2\))f({)502 1375 y(cerr)g(<<)h("USAGE:)f(")g(<<)h |
2246 |
(av[0])621 1424 y(<<)g(")f(socket_path_name)f(data...\\n";)502 |
2247 |
1474 y(return)h(1;)311 1524 y(})311 1624 y(iosockunix)f(oput)i |
2248 |
(\(sockbuf::sock_stream\);)311 1673 y(oput->connect)e(\(av)h([1]\);)311 |
2249 |
1773 y(char)g(buf[128];)311 1873 y(oput)g(>>)h(buf;)311 1923 |
2250 |
y(cout)f(<<)h(buf)f(<<)h(')g(';)311 1972 y(oput)f(>>)h(buf;)311 |
2251 |
2022 y(cout)f(<<)h(buf)f(<<)h(endl;)311 2122 y(while)f(\(*av\))g(oput)h(<<)f |
2252 |
(*av++)g(<<)h(')g(';)311 2172 y(oput)f(<<)h(endl;)311 2271 |
2253 |
y(return)f(0;)120 2321 y(})p eop |
2254 |
%%Page: 25 27 |
2255 |
bop 0 -58 a Fn(Chapter)15 b(7:)k(so)q(c)o(kunixaddr)e(Class)1290 |
2256 |
b(25)0 183 y Fk(7)41 b(so)r(c)n(kunixaddr)13 b(Class)62 370 |
2257 |
y Fn(Class)e Fo(sockunixaddr)e Fn(is)j(deriv)o(ed)g(from)e(class)h |
2258 |
Fo(sockAddr)f Fn(declared)i(in)f Fo(<sockstream.h>)e Fn(and)i(from)f(struct)0 |
2259 |
432 y Fo(sockaddr_un)15 b Fn(declared)i(in)h Fo(<sys/un.h>)p |
2260 |
Fn(.)k(Alw)o(a)o(ys)16 b(use)g Fo(sockunixaddr)f Fn(ob)s(jects)h(for)g |
2261 |
(addresses)g(with)h Fi(unix)0 495 y Fn(domain)f(of)e(so)q(c)o(k)o(ets.)20 |
2262 |
b(See)15 b(Section)i(2.4)d([Connection)h(Establishmen)o(t],)g(page)g(9.)62 |
2263 |
632 y(In)h(what)f(follo)o(ws,)25 769 y Fl(\000)30 b Fo(path)15 |
2264 |
b Fn(is)g(the)h Fi(unix)j Fn(path)c(name)g(lik)o(e)i Fo(")p |
2265 |
Fn(/tmp/unix)p 981 769 14 2 v 16 w(so)q(c)o(k)o(et)p Fo(")0 |
2266 |
906 y(sockunixaddr)d(suna\(path\))240 980 y Fn(Constructs)g(a)h |
2267 |
Fo(sockunixaddr)f Fn(ob)s(ject)g Fo(suna)h Fn(with)h Fo(path)e |
2268 |
Fn(as)h(the)g Fi(unix)20 b Fn(path)15 b(name.)0 1055 y Fo(void*)f(a)h(=)g |
2269 |
(suna)240 1130 y Fn(returns)g(the)g(address)h(of)e(the)i Fo(sockaddr_un)d |
2270 |
Fn(part)i(of)g Fo(sockunixaddr)e Fn(ob)s(ject)i Fo(suna)f Fn(as)h(v)o(oid*.)0 |
2271 |
1204 y Fo(int)g(sz)g(=)g(suna.size\(\))240 1279 y Fn(returns)g(the)g(sizeof)h |
2272 |
Fo(sockaddr_un)e Fn(part)g(of)h Fo(sockunixaddr)f Fn(ob)s(ject)g |
2273 |
Fo(suna)p Fn(.)0 1354 y Fo(int)h(af)g(=)g(suna.family\(\))240 |
2274 |
1429 y Fn(returns)g Fo(sockunixbuf::af_unix)d Fn(if)k(all)g(is)g(w)o(ell.)p |
2275 |
eop |
2276 |
%%Page: 26 28 |
2277 |
bop 0 -58 a Fn(Chapter)15 b(8:)k(so)q(c)o(kstream)c(Classes)1296 |
2278 |
b(26)0 183 y Fk(8)41 b(so)r(c)n(kstream)15 b(Classes)62 360 |
2279 |
y Fn(so)q(c)o(kstream)k(classes)i(are)f(designed)h(in)g(suc)o(h)g(a)f(w)o(a)o |
2280 |
(y)f(that)g(they)i(pro)o(vide)f(the)g(same)g(in)o(terface)h(as)e(their)0 |
2281 |
422 y(stream)e(coun)o(terparts)g(do.)28 b(W)l(e)18 b(ha)o(v)o(e)g |
2282 |
Fo(isockstream)e Fn(deriv)o(ed)j(from)e Fo(istream)g Fn(and)i |
2283 |
Fo(osockstream)d Fn(deriv)o(ed)0 485 y(from)e Fo(ostream)p |
2284 |
Fn(.)19 b(W)l(e)d(also)f(ha)o(v)o(e)g Fo(iosockstream)e Fn(whic)o(h)j(is)g |
2285 |
(deriv)o(ed)g(from)f Fo(iostream)p Fn(.)62 622 y(Eac)o(h)f(domain)h(also)f |
2286 |
(has)g(its)h(o)o(wn)e(set)h(of)g Fo(stream)g Fn(classes.)20 |
2287 |
b(F)l(or)13 b(example,)i Fo(unix)f Fn(domain)g(has)h Fo(isockunix)p |
2288 |
Fn(,)0 684 y Fo(osockunix)p Fn(,)e(and)h Fo(iosockunix)e Fn(deriv)o(ed)j |
2289 |
(from)f Fo(isockstream)p Fn(,)e Fo(osockstream)p Fn(,)g(and)j |
2290 |
Fo(iosockstream)d Fn(resp)q(ec-)0 746 y(tiv)o(ely)l(.)21 b(Similarly)l(,)c |
2291 |
Fo(inet)e Fn(domain)g(has)g Fo(isockinet)p Fn(,)f Fo(osockinet)p |
2292 |
Fn(,)f(and)j Fo(iosockinet)p Fn(.)0 960 y Fm(8.1)33 b(ioso)r(c)n(kstreams)0 |
2293 |
1158 y Fg(8.1.1)d(iso)r(c)n(kstream)16 b(Class)62 1295 y Fn(Since)i |
2294 |
Fo(isockstream)d Fn(is)j(publicly)h(deriv)o(ed)f(from)d Fo(istream)p |
2295 |
Fn(,)h(most)g(of)g(the)h(public)h(functions)g(of)e Fo(istream)0 |
2296 |
1357 y Fn(are)f(also)g(a)o(v)m(ailable)i(in)f Fo(isockstream)p |
2297 |
Fn(.)62 1494 y Fo(isockstream)h Fn(rede\014nes)i Fo(rdbuf\(\))f |
2298 |
Fn(de\014ned)h(in)g(its)g(virtual)g(base)f(class)h Fo(ios)p |
2299 |
Fn(.)29 b(Since,)20 b Fo(ios::rdbuf\(\))c Fn(is)0 1557 y(not)f(virtual,)h |
2300 |
(care)g(m)o(ust)f(b)q(e)h(tak)o(en)g(to)f(call)h(the)g(correct)g |
2301 |
Fo(rdbuf\(\))e Fn(through)i(a)f(reference)h(or)f(a)h(p)q(oin)o(ter)g(to)f(an) |
2302 |
0 1619 y(ob)s(ject)g(of)f(class)i Fo(isockstream)p Fn(.)62 |
2303 |
1756 y(In)g(what)f(follo)o(ws,)25 1893 y Fl(\000)30 b Fo(sb)15 |
2304 |
b Fn(is)h(a)e Fo(sockbuf)h Fn(ob)s(ject)25 1965 y Fl(\000)30 |
2305 |
b Fo(sbp)15 b Fn(is)g(a)g(p)q(oin)o(ter)h(to)f(a)f Fo(sockbuf)h |
2306 |
Fn(ob)s(ject)0 2102 y Fo(isockstream)f(is\(sb\))240 2174 y |
2307 |
Fn(Constructs)g(an)i Fo(isockstream)d Fn(ob)s(ject)i Fo(is)g |
2308 |
Fn(with)g Fo(sb)g Fn(as)g(its)g Fo(sockbuf)p Fn(.)0 2247 y |
2309 |
Fo(isockstream)f(is\(sbp\))240 2319 y Fn(Constructs)g(an)i |
2310 |
Fo(isockstream)d Fn(ob)s(ject)i Fo(is)g Fn(with)g Fo(*sbp)g |
2311 |
Fn(as)g(its)g Fo(sockbuf)p Fn(.)0 2391 y Fo(sbp)g(=)g(is.rdbuf\(\))240 |
2312 |
2463 y Fn(returns)g(a)g(p)q(oin)o(ter)h(to)e(the)h Fo(sockbuf)g |
2313 |
Fn(of)f(the)i Fo(isockstream)d Fn(ob)s(ject)i Fo(is)p Fn(.)0 |
2314 |
2535 y Fo(isockstream::operator)d(->)j(\(\))240 2608 y Fn(returns)f(a)f(p)q |
2315 |
(oin)o(ter)h(to)f(the)h Fo(isockstream)p Fn('s)e Fo(sockbuf)h |
2316 |
Fn(so)g(that)g(the)h(user)g(can)f(use)i Fo(isockstream)240 |
2317 |
2670 y Fn(ob)s(ject)g(as)f(a)h Fo(sockbuf)g Fn(ob)s(ject.)p |
2318 |
eop |
2319 |
%%Page: 27 29 |
2320 |
bop 0 -58 a Fn(Chapter)15 b(8:)k(so)q(c)o(kstream)c(Classes)1296 |
2321 |
b(27)455 183 y Fo(is->connect)23 b(\(sa\);)g(//)h(same)f(as)g |
2322 |
(is.rdbuf\(\)->connect)f(\(sa\);)0 392 y Fg(8.1.2)30 b(oso)r(c)n(kstream)15 |
2323 |
b(Class)62 529 y Fn(Since)j Fo(osockstream)d Fn(is)j(publicly)h(deriv)o(ed)f |
2324 |
(from)d Fo(ostream)p Fn(,)h(most)g(of)g(the)h(public)h(functions)g(of)e |
2325 |
Fo(ostream)0 591 y Fn(are)f(also)g(a)o(v)m(ailable)i(in)f Fo(osockstream)p |
2326 |
Fn(.)62 728 y Fo(osockstream)h Fn(rede\014nes)i Fo(rdbuf\(\))f |
2327 |
Fn(de\014ned)h(in)g(its)g(virtual)g(base)f(class)h Fo(ios)p |
2328 |
Fn(.)29 b(Since,)20 b Fo(ios::rdbuf\(\))c Fn(is)0 791 y(not)f(virtual,)h |
2329 |
(care)g(m)o(ust)f(b)q(e)h(tak)o(en)g(to)f(call)h(the)g(correct)g |
2330 |
Fo(rdbuf\(\))e Fn(through)i(a)f(reference)h(or)f(a)h(p)q(oin)o(ter)g(to)f(an) |
2331 |
0 853 y(ob)s(ject)g(of)f(class)i Fo(osockstream)p Fn(.)62 990 |
2332 |
y(In)g(what)f(follo)o(ws,)25 1127 y Fl(\000)30 b Fo(sb)15 b |
2333 |
Fn(is)h(a)e Fo(sockbuf)h Fn(ob)s(ject)25 1202 y Fl(\000)30 |
2334 |
b Fo(sbp)15 b Fn(is)g(a)g(p)q(oin)o(ter)h(to)f(a)f Fo(sockbuf)h |
2335 |
Fn(ob)s(ject)0 1339 y Fo(osockstream)f(os\(sb\))240 1414 y |
2336 |
Fn(Constructs)g(an)i Fo(osockstream)d Fn(ob)s(ject)i Fo(os)g |
2337 |
Fn(with)g Fo(sb)g Fn(as)g(its)g Fo(sockbuf)p Fn(.)0 1489 y |
2338 |
Fo(osockstream)f(os\(sbp\))240 1564 y Fn(Constructs)g(an)i |
2339 |
Fo(osockstream)d Fn(ob)s(ject)i Fo(os)g Fn(with)g Fo(*sbp)g |
2340 |
Fn(as)g(its)g Fo(sockbuf)p Fn(.)0 1639 y Fo(sbp)g(=)g(os.rdbuf\(\))240 |
2341 |
1713 y Fn(returns)g(a)g(p)q(oin)o(ter)h(to)e(the)h Fo(sockbuf)g |
2342 |
Fn(of)f(the)i Fo(osockstream)d Fn(ob)s(ject)i Fo(os)p Fn(.)0 |
2343 |
1788 y Fo(osockstream::operator)d(->)j(\(\))240 1863 y Fn(returns)f(a)f(p)q |
2344 |
(oin)o(ter)h(to)f(the)h Fo(osockstream)p Fn('s)e Fo(sockbuf)h |
2345 |
Fn(so)g(that)g(the)h(user)g(can)f(use)i Fo(osockstream)240 |
2346 |
1925 y Fn(ob)s(ject)g(as)f(a)h Fo(sockbuf)g Fn(ob)s(ject.)455 |
2347 |
2000 y Fo(os->connect)23 b(\(sa\);)g(//)h(same)f(as)g(os.rdbuf\(\)->connect)f |
2348 |
(\(sa\);)0 2209 y Fg(8.1.3)30 b(ioso)r(c)n(kstream)15 b(Class)62 |
2349 |
2346 y Fn(Since)e Fo(iosockstream)c Fn(is)j(publicly)i(deriv)o(ed)e(from)e |
2350 |
Fo(iostream)p Fn(,)g(most)h(of)f(the)h(public)j(functions)d(of)g |
2351 |
Fo(iostream)0 2408 y Fn(are)k(also)g(a)o(v)m(ailable)i(in)f |
2352 |
Fo(iosockstream)p Fn(.)62 2545 y Fo(iosockstream)f Fn(rede\014nes)j |
2353 |
Fo(rdbuf\(\))d Fn(de\014ned)j(in)g(its)f(virtual)g(base)g(class)g |
2354 |
Fo(ios)p Fn(.)23 b(Since,)c Fo(ios::rdbuf\(\))14 b Fn(is)0 |
2355 |
2608 y(not)h(virtual,)h(care)g(m)o(ust)f(b)q(e)h(tak)o(en)g(to)f(call)h(the)g |
2356 |
(correct)g Fo(rdbuf\(\))e Fn(through)i(a)f(reference)h(or)f(a)h(p)q(oin)o |
2357 |
(ter)g(to)f(an)0 2670 y(ob)s(ject)g(of)f(class)i Fo(iosockstream)p |
2358 |
Fn(.)p eop |
2359 |
%%Page: 28 30 |
2360 |
bop 0 -58 a Fn(Chapter)15 b(8:)k(so)q(c)o(kstream)c(Classes)1296 |
2361 |
b(28)62 183 y(In)16 b(what)f(follo)o(ws,)25 321 y Fl(\000)30 |
2362 |
b Fo(sb)15 b Fn(is)h(a)e Fo(sockbuf)h Fn(ob)s(ject)25 397 y |
2363 |
Fl(\000)30 b Fo(sbp)15 b Fn(is)g(a)g(p)q(oin)o(ter)h(to)f(a)f |
2364 |
Fo(sockbuf)h Fn(ob)s(ject)0 535 y Fo(iosockstream)f(io\(sb\))240 |
2365 |
611 y Fn(Constructs)g(an)i Fo(iosockstream)d Fn(ob)s(ject)i |
2366 |
Fo(io)g Fn(with)g Fo(sb)g Fn(as)g(its)g Fo(sockbuf)p Fn(.)0 |
2367 |
687 y Fo(iosockstream)f(io\(sbp\))240 763 y Fn(Constructs)g(an)i |
2368 |
Fo(iosockstream)d Fn(ob)s(ject)i Fo(io)g Fn(with)g Fo(*sbp)g |
2369 |
Fn(as)g(its)g Fo(sockbuf)p Fn(.)0 838 y Fo(sbp)g(=)g(io.rdbuf\(\))240 |
2370 |
914 y Fn(returns)g(a)g(p)q(oin)o(ter)h(to)e(the)h Fo(sockbuf)g |
2371 |
Fn(of)f(the)i Fo(iosockstream)d Fn(ob)s(ject)i Fo(io)p Fn(.)0 |
2372 |
990 y Fo(iosockstream::operator)d(->)j(\(\))240 1066 y Fn(returns)10 |
2373 |
b(a)g(p)q(oin)o(ter)g(to)g(the)g Fo(iosockstream)p Fn('s)e |
2374 |
Fo(sockbuf)h Fn(so)h(that)g(the)g(user)g(can)g(use)h Fo(iosockstream)240 |
2375 |
1128 y Fn(ob)s(ject)k(as)f(a)h Fo(sockbuf)g Fn(ob)s(ject.)455 |
2376 |
1204 y Fo(io->connect)23 b(\(sa\);)g(//)h(same)f(as)g(io.rdbuf\(\)->connect)f |
2377 |
(\(sa\);)0 1438 y Fm(8.2)33 b(ioso)r(c)n(kinet)15 b(Stream)h(Classes)62 |
2378 |
1576 y Fn(W)l(e)g(discus)g(only)g Fo(isockinet)e Fn(class)i(here.)21 |
2379 |
b Fo(osockinet)14 b Fn(and)i Fo(iosockinet)e Fn(are)h(similar)h(and)g(are)f |
2380 |
(left)h(out.)0 1638 y(Ho)o(w)o(ev)o(er,)e(they)h(are)g(co)o(v)o(ered)g(in)h |
2381 |
(the)f(examples)h(that)f(follo)o(w.)0 1855 y Fg(8.2.1)30 b(iso)r(c)n(kinet)62 |
2382 |
1993 y Fo(isockinet)19 b Fn(is)h(used)g(to)f(handle)i(in)o(terpro)q(cess)g |
2383 |
(comm)o(unication)f(in)h Fi(inet)g Fn(domain.)34 b(It)20 b(is)g(deriv)o(ed)h |
2384 |
(from)0 2055 y Fo(isockstream)f Fn(class)j(and)f(it)g(uses)g(a)g |
2385 |
Fo(sockinetbuf)e Fn(as)h(its)h(stream)g(bu\013er.)39 b(See)23 |
2386 |
b(Section)g(8.1.3)d([ioso)q(c)o(k-)0 2118 y(stream],)13 b(page)g(27,)h(for)f |
2387 |
(more)h(details)h(on)f Fo(isockstream)p Fn(.)j(See)e(Chapter)f(4)f([so)q(c)o |
2388 |
(kinetbuf)i(Class],)e(page)h(14,)g(for)0 2180 y(information)h(on)g |
2389 |
Fo(sockinetbuf)p Fn(.)62 2318 y(In)h(what)f(follo)o(ws,)25 |
2390 |
2456 y Fl(\000)30 b Fo(ty)17 b Fn(is)g(a)g Fo(sockbuf::type)e |
2391 |
Fn(and)j(m)o(ust)e(b)q(e)i(one)f(of)g Fo(sockbuf::sock_stream)p |
2392 |
Fn(,)d Fo(sockbuf::sock_dgram)p Fn(,)90 2518 y Fo(sockbuf::sock_raw)p |
2393 |
Fn(,)e Fo(sockbuf::sock_rdm)p Fn(,)h(and)i Fo(sockbuf::sock_seqpacket)25 |
2394 |
2594 y Fl(\000)30 b Fo(proto)14 b Fn(denotes)i(the)f(proto)q(col)g(n)o(um)o |
2395 |
(b)q(er)h(and)f(is)h(of)f(t)o(yp)q(e)g(in)o(t)25 2670 y Fl(\000)30 |
2396 |
b Fo(sb)15 b Fn(is)h(a)e Fo(sockbuf)h Fn(ob)s(ject)f(and)i(m)o(ust)e(b)q(e)i |
2397 |
(in)g Fi(inet)h Fn(domain)p eop |
2398 |
%%Page: 29 31 |
2399 |
bop 0 -58 a Fn(Chapter)15 b(8:)k(so)q(c)o(kstream)c(Classes)1296 |
2400 |
b(29)25 183 y Fl(\000)30 b Fo(sinp)15 b Fn(is)g(a)g(p)q(oin)o(ter)h(to)e(an)i |
2401 |
(ob)s(ject)e(of)h Fo(sockinetbuf)0 323 y(isockinet)f(is)h(\(ty,)f(proto\))240 |
2402 |
401 y Fn(constructs)k(an)g Fo(isockinet)g Fn(ob)s(ject)g Fo(is)g |
2403 |
Fn(whose)g Fo(sockinetbuf)f Fn(bu\013er)h(is)h(of)g(the)f(t)o(yp)q(e)h |
2404 |
Fo(ty)f Fn(and)240 463 y(has)d(the)g(proto)q(col)h(n)o(um)o(b)q(er)f |
2405 |
Fo(proto)p Fn(.)k(The)d(default)f(proto)q(col)h(n)o(um)o(b)q(er)f(is)h(0.)0 |
2406 |
540 y Fo(isockinet)e(is)h(\(sb\))240 618 y Fn(constructs)c(a)f |
2407 |
Fo(isockinet)g Fn(ob)s(ject)h Fo(is)f Fn(whose)h Fo(sockinetbuf)f |
2408 |
Fn(is)h Fo(sb)p Fn(.)18 b Fo(sb)11 b Fn(m)o(ust)g(b)q(e)g(in)h |
2409 |
Fi(inet)h Fn(domain.)0 696 y Fo(isockinet)h(is)h(\(sinp\))240 |
2410 |
773 y Fn(constructs)g(a)g Fo(isockinet)f Fn(ob)s(ject)g Fo(is)h |
2411 |
Fn(whose)g Fo(sockinetbuf)f Fn(is)i Fo(sinp)p Fn(.)0 851 y |
2412 |
Fo(sinp)f(=)g(is.rdbuf)f(\(\))240 928 y Fn(returns)h(a)g(p)q(oin)o(ter)h(to)e |
2413 |
(the)h Fo(sockinetbuf)f Fn(of)h Fo(isockinet)f Fn(ob)s(ject)g |
2414 |
Fo(is)p Fn(.)0 1006 y Fo(isockinet::operator)f(->)240 1083 |
2415 |
y Fn(returns)h Fo(sockinetbuf)e Fn(of)i Fo(sockinet)e Fn(so)i(that)f(the)h |
2416 |
Fo(sockinet)f Fn(ob)s(ject)g(acts)h(as)f(a)h(smart)e(p)q(oin)o(ter)240 |
2417 |
1146 y(to)j Fo(sockinetbuf)p Fn(.)551 1223 y Fo(is->localhost)22 |
2418 |
b(\(\);)h(//)h(same)f(as)h(is.rdbuf)f(\(\)->localhost)f(\(\);)0 |
2419 |
1456 y Fg(8.2.2)30 b(ioso)r(c)n(kinet)15 b(examples)62 1596 |
2420 |
y Fn(The)f(\014rst)g(pair)g(of)f(examples)i(demonstrates)e(datagram)f(so)q(c) |
2421 |
o(k)o(et)i(connections)h(in)f(the)g Fi(inet)i Fn(domain.)k(First,)0 |
2422 |
1658 y Fo(tdinread)g Fn(prin)o(ts)h(its)g(lo)q(cal)h(host)e(and)h(lo)q(cal)h |
2423 |
(p)q(ort)f(on)g(stdout)f(and)h(w)o(aits)f(for)h(input)h(in)f(the)g |
2424 |
(connection.)0 1721 y Fo(tdinwrite)c Fn(is)h(started)f(with)i(the)f(lo)q(cal) |
2425 |
h(host)e(and)h(lo)q(cal)i(p)q(ort)d(of)h Fo(tdinread)f Fn(as)g(argumen)o(ts.) |
2426 |
27 b(It)18 b(sends)h(the)0 1783 y(string)c Fo(")p Fn(Ho)o(w)g(do)g(y)o(e)g |
2427 |
(do!)p Fo(")f Fn(to)h Fo(tdinread)f Fn(whic)o(h)i(in)g(turn)f(reads)g(the)h |
2428 |
(string)f(and)g(prin)o(ts)h(on)f(its)g(stdout.)120 1923 y Fo(//)24 |
2429 |
b(tdinread.cc)120 1973 y(#include)f(<sockinet.h>)120 2072 y(int)g(main)h |
2430 |
(\(\))120 2122 y({)215 2172 y(char)g(buf[256];)215 2222 y(isockinet)f(is)h |
2431 |
(\(sockbuf::sock_dgram\);)215 2271 y(is->bind)f(\(\);)215 2371 |
2432 |
y(cout)h(<<)f(is->localhost\(\))f(<<)i(')f(')h(<<)g(is->localport\(\))e(<<)h |
2433 |
(endl;)215 2471 y(is.getline)g(\(buf\);)215 2521 y(cout)h(<<)f(buf)h(<<)f |
2434 |
(endl;)215 2620 y(return)g(0;)120 2670 y(})p eop |
2435 |
%%Page: 30 32 |
2436 |
bop 0 -58 a Fn(Chapter)15 b(8:)k(so)q(c)o(kstream)c(Classes)1296 |
2437 |
b(30)120 183 y Fo(//)24 b(tdinwrite.cc--tdinwrite)c(hostname)j(portno)120 |
2438 |
233 y(#include)g(<sockinet.h>)120 283 y(#include)g(<stdlib.h>)120 |
2439 |
382 y(int)g(main)h(\(int)f(ac,)h(char**)f(av\))120 432 y({)215 |
2440 |
482 y(osockinet)g(os)h(\(sockbuf::sock_dgram\);)215 532 y(os->connect)f |
2441 |
(\(av[1],)g(atoi\(av[2]\)\);)215 582 y(os)h(<<)g("How)f(do)h(ye)f(do!")g(<<)h |
2442 |
(endl;)215 632 y(return)f(0;)120 681 y(})62 933 y Fn(The)15 |
2443 |
b(next)f(example)h(comm)o(unicates)g(with)g(an)f(nn)o(tp)g(serv)o(er)g |
2444 |
(through)g(a)g Fo(sockbuf::sock_stream)e Fn(so)q(c)o(k)o(et)0 |
2445 |
995 y(connection)k(in)h Fi(inet)g Fn(domain.)k(After)15 b(establishing)i(a)e |
2446 |
(connection)i(to)d(the)i(nn)o(tp)f(serv)o(er,)g(it)h(sends)g(a)f |
2447 |
Fo(")p Fn(HELP)p Fo(")0 1057 y Fn(command)g(and)g(gets)g(bac)o(k)g(the)g |
2448 |
(HELP)h(message)f(b)q(efore)g(sending)i(the)e Fo(")p Fn(QUIT)p |
2449 |
Fo(")g Fn(command.)120 1214 y Fo(//)24 b(tnntp.cc)120 1264 |
2450 |
y(#include)f(<sockinet.h>)120 1363 y(int)g(main)h(\(\))120 |
2451 |
1413 y({)215 1463 y(char)48 b(buf[1024];)215 1513 y(iosockinet)23 |
2452 |
b(io)h(\(sockbuf::sock_stream\);)215 1563 y(io->connect)f |
2453 |
(\("murdoch.acc.virginia.ed)o(u",)e("nntp",)i("tcp"\);)215 |
2454 |
1613 y(io.getline)g(\(buf,)g(1024\);)g(cout)g(<<)h(buf)g(<<)f(endl;)215 |
2455 |
1662 y(io)h(<<)g("HELP\\r\\n")e(<<)i(flush;)215 1712 y(io.getline)f(\(buf,)g |
2456 |
(1024\);)g(cout)g(<<)h(buf)g(<<)f(endl;)215 1762 y(while)h(\(io.getline)e |
2457 |
(\(buf,)h(1024\)\))311 1812 y(if)g(\(buf[0])g(==)h('.')f(&&)h(buf[1])f(==)h |
2458 |
('\\r'\))f(break;)311 1862 y(else)g(if)h(\(buf[0])f(==)g('.')h(&&)f(buf[1])g |
2459 |
(==)h('.'\))f(cout)h(<<)f(buf+1)g(<<)h(endl;)311 1911 y(else)f(cout)h(<<)f |
2460 |
(buf)h(<<)f(endl;)215 1961 y(io)h(<<)g("QUIT\\r\\n")e(<<)i(flush;)215 |
2461 |
2011 y(io.getline)f(\(buf,)g(1024\);)g(cout)g(<<)h(buf)g(<<)f(endl;)215 |
2462 |
2061 y(return)g(0;)120 2111 y(})0 2513 y Fm(8.3)33 b(ioso)r(c)n(kunix)16 |
2463 |
b(Classes)62 2670 y Fn(W)l(e)g(discuss)g(only)g Fo(isockunix)d |
2464 |
Fn(here.)21 b Fo(osockunix)14 b Fn(and)h Fo(iosockunix)f Fn(are)h(similar.)p |
2465 |
eop |
2466 |
%%Page: 31 33 |
2467 |
bop 0 -58 a Fn(Chapter)15 b(8:)k(so)q(c)o(kstream)c(Classes)1296 |
2468 |
b(31)0 183 y Fg(8.3.1)30 b(iso)r(c)n(kunix)16 b(class)62 323 |
2469 |
y Fo(isockunix)i Fn(is)h(used)h(to)e(handle)i(in)o(terpro)q(cess)f(comm)o |
2470 |
(unication)h(in)f Fi(unix)k Fn(domain.)32 b(It)19 b(is)g(deriv)o(ed)h(from)0 |
2471 |
385 y Fo(isockstream)11 b Fn(class)i(and)f(it)h(uses)g(a)f |
2472 |
Fo(sockunixbuf)e Fn(as)j(its)f(stream)g(bu\013er.)19 b(See)13 |
2473 |
b(Section)g(8.1.3)e([ioso)q(c)o(kstream],)0 447 y(page)16 b(27,)g(for)g(more) |
2474 |
g(details)i(on)e Fo(isockstream)p Fn(.)23 b(See)17 b(Chapter)f(6)h([so)q(c)o |
2475 |
(kunixbuf)g(Class],)f(page)h(21,)f(for)g(infor-)0 509 y(mation)f(on)g |
2476 |
Fo(sockunixbuf)p Fn(.)62 649 y(In)h(what)f(follo)o(ws,)25 788 |
2477 |
y Fl(\000)30 b Fo(ty)17 b Fn(is)g(a)g Fo(sockbuf::type)e Fn(and)j(m)o(ust)e |
2478 |
(b)q(e)i(one)f(of)g Fo(sockbuf::sock_stream)p Fn(,)d Fo(sockbuf::sock_dgram)p |
2479 |
Fn(,)90 850 y Fo(sockbuf::sock_raw)p Fn(,)e Fo(sockbuf::sock_rdm)p |
2480 |
Fn(,)h(and)i Fo(sockbuf::sock_seqpacket)25 927 y Fl(\000)30 |
2481 |
b Fo(proto)14 b Fn(denotes)i(the)f(proto)q(col)g(n)o(um)o(b)q(er)h(and)f(is)h |
2482 |
(of)f(t)o(yp)q(e)g(in)o(t)25 1004 y Fl(\000)30 b Fo(sb)15 b |
2483 |
Fn(is)h(a)e Fo(sockbuf)h Fn(ob)s(ject)f(and)i(m)o(ust)e(b)q(e)i(in)g |
2484 |
Fi(unix)k Fn(domain)25 1081 y Fl(\000)30 b Fo(sinp)15 b Fn(is)g(a)g(p)q(oin)o |
2485 |
(ter)h(to)e(an)i(ob)s(ject)e(of)h Fo(sockunixbuf)0 1221 y(isockunix)f(is)h |
2486 |
(\(ty,)f(proto\))240 1298 y Fn(constructs)k(an)g Fo(isockunix)g |
2487 |
Fn(ob)s(ject)g Fo(is)g Fn(whose)g Fo(sockunixbuf)f Fn(bu\013er)h(is)h(of)g |
2488 |
(the)f(t)o(yp)q(e)h Fo(ty)f Fn(and)240 1360 y(has)d(the)g(proto)q(col)h(n)o |
2489 |
(um)o(b)q(er)f Fo(proto)p Fn(.)k(The)d(default)f(proto)q(col)h(n)o(um)o(b)q |
2490 |
(er)f(is)h(0.)0 1437 y Fo(isockunix)e(is)h(\(sb\))240 1514 |
2491 |
y Fn(constructs)22 b(a)g Fo(isockunix)f Fn(ob)s(ject)h Fo(is)g |
2492 |
Fn(whose)h Fo(sockunixbuf)d Fn(is)j Fo(sb)p Fn(.)42 b Fo(sb)22 |
2493 |
b Fn(m)o(ust)g(b)q(e)h(in)g Fi(unix)240 1576 y Fn(domain.)0 |
2494 |
1653 y Fo(isockunix)14 b(is)h(\(sinp\))240 1730 y Fn(constructs)g(a)g |
2495 |
Fo(isockunix)f Fn(ob)s(ject)g Fo(is)h Fn(whose)g Fo(sockunixbuf)f |
2496 |
Fn(is)i Fo(sinp)p Fn(.)0 1807 y Fo(sinp)f(=)g(is.rdbuf)f(\(\))240 |
2497 |
1884 y Fn(returns)h(a)g(p)q(oin)o(ter)h(to)e(the)h Fo(sockunixbuf)f |
2498 |
Fn(of)h Fo(isockunix)f Fn(ob)s(ject)g Fo(is)p Fn(.)0 1961 y |
2499 |
Fo(isockunix::operator)f(->)240 2038 y Fn(returns)h Fo(sockunixbuf)e |
2500 |
Fn(of)i Fo(sockunix)e Fn(so)i(that)f(the)h Fo(sockunix)f Fn(ob)s(ject)g(acts) |
2501 |
h(as)f(a)h(smart)e(p)q(oin)o(ter)240 2101 y(to)j Fo(sockunixbuf)p |
2502 |
Fn(.)551 2178 y Fo(is->localhost)22 b(\(\);)h(//)h(same)f(as)h(is.rdbuf)f |
2503 |
(\(\)->localhost)f(\(\);)0 2406 y Fg(8.3.2)30 b(ioso)r(c)n(kunix)16 |
2504 |
b(examples)62 2545 y Fo(tsunread)h Fn(listens)j(for)d(connections.)30 |
2505 |
b(When)18 b Fo(tsunwrite)f Fn(requests)h(connection,)h Fo(tsunread)e |
2506 |
Fn(accepts)i(it)0 2608 y(and)14 b(w)o(aits)e(for)h(input.)20 |
2507 |
b Fo(tsunwrite)12 b Fn(sends)i(the)g(string)f Fo(")p Fn(Hello!!!)p |
2508 |
Fo(")g Fn(to)g Fo(tsunread)p Fn(.)18 b Fo(tsunread)12 b Fn(reads)i(the)f |
2509 |
(string)0 2670 y(sen)o(t)i(b)o(y)g Fo(tsunwrite)f Fn(and)h(prin)o(ts)h(on)f |
2510 |
(its)g(stdout.)p eop |
2511 |
%%Page: 32 34 |
2512 |
bop 0 -58 a Fn(Chapter)15 b(8:)k(so)q(c)o(kstream)c(Classes)1296 |
2513 |
b(32)120 183 y Fo(//)24 b(tsunread.cc)120 233 y(#include)f(<sockunix.h>)120 |
2514 |
283 y(#include)g(<unistd.h>)120 382 y(int)g(main)h(\(\))120 |
2515 |
432 y({)215 482 y(sockunixbuf)f(sunb)g(\(sockbuf::sock_stream\);)215 |
2516 |
532 y(sunb.bind)g(\("/tmp/socket+-"\);)215 582 y(sunb.listen)g(\(2\);)215 |
2517 |
632 y(isockunix)g(is)h(=)f(sunb.accept)g(\(\);)215 681 y(char)h(buf[32];)215 |
2518 |
731 y(is)g(>>)g(buf;)f(cout)g(<<)h(buf)f(<<)h(endl;)215 781 |
2519 |
y(unlink)f(\("/tmp/socket+-"\);)215 831 y(return)g(0;)120 881 |
2520 |
y(})120 1018 y(//)h(tsunwrite.cc)120 1067 y(#include)f(<sockunix.h>)120 |
2521 |
1117 y(int)g(main)h(\(\))120 1167 y({)215 1217 y(osockunix)f(os)h |
2522 |
(\(sockbuf::sock_stream\);)215 1267 y(os->connect)f(\("/tmp/socket++"\);)215 |
2523 |
1316 y(os)h(<<)g("Hello!!!\\n")e(<<)h(flush;)215 1366 y(return)g(0;)120 |
2524 |
1416 y(})p eop |
2525 |
%%Page: 33 35 |
2526 |
bop 0 -58 a Fn(Chapter)15 b(9:)k(pip)q(estream)d(Classes)1297 |
2527 |
b(33)0 183 y Fk(9)41 b(pip)r(estream)14 b(Classes)62 370 y |
2528 |
Fo(pipestream)e Fn(stream)h(classes)h(pro)o(vide)f(the)h(services)g(of)f(the) |
2529 |
g Fi(UNIX)19 b Fn(system)13 b(calls)h Fo(pipe)f Fn(and)g Fo(socketpair)0 |
2530 |
432 y Fn(and)g(the)g(C)g(library)h(function)g Fo(popen)p Fn(.)k |
2531 |
Fo(ipipestream)p Fn(,)12 b Fo(opipestream)p Fn(,)f(and)i Fo(iopipestream)f |
2532 |
Fn(are)g(obtained)i(b)o(y)0 495 y(simply)k(deriving)h(from)d |
2533 |
Fo(isockstream)p Fn(,)f Fo(osockstream)h Fn(and)h Fo(iosockstream)e |
2534 |
Fn(resp)q(ectiv)o(ely)l(.)27 b(See)18 b(Chapter)e(8)0 557 y([so)q(c)o |
2535 |
(kstream)e(Classes],)g(page)h(26)g(for)g(details.)62 694 y(In)h(what)f(follo) |
2536 |
o(ws,)25 831 y Fl(\000)30 b Fo(ip)15 b Fn(is)h(an)f Fo(ipipestream)e |
2537 |
Fn(ob)s(ject)25 905 y Fl(\000)30 b Fo(op)15 b Fn(is)h(an)f |
2538 |
Fo(opipestream)e Fn(ob)s(ject)25 980 y Fl(\000)30 b Fo(iop)15 |
2539 |
b Fn(is)g(an)h Fo(iopipestream)d Fn(ob)s(ject)25 1055 y Fl(\000)30 |
2540 |
b Fo(cmd)15 b Fn(is)g(a)g(c)o(har*)g(denoting)h(an)f(executable)h(lik)o(e)h |
2541 |
Fo(")p Fn(w)o(c)p Fo(")25 1130 y Fl(\000)30 b Fo(ty)15 b Fn(is)h(of)e(t)o(yp) |
2542 |
q(e)i Fo(sockbuf::type)d Fn(indicating)k(the)e(t)o(yp)q(e)h(of)e(the)i |
2543 |
(connection)25 1204 y Fl(\000)30 b Fo(proto)14 b Fn(is)i(an)f |
2544 |
Fo(int)g Fn(denoting)h(a)f(proto)q(col)g(n)o(um)o(b)q(er)0 |
2545 |
1341 y Fo(ipipestream)f(ip\(cmd\))240 1416 y Fn(construct)22 |
2546 |
b(an)f Fo(ipipestream)g Fn(ob)s(ject)g Fo(ip)g Fn(suc)o(h)h(that)g(the)f |
2547 |
(output)h(of)f(the)h(command)g Fo(cmd)f Fn(is)240 1478 y(a)o(v)m(ailable)c |
2548 |
(as)e(input)h(through)f Fo(ip)p Fn(.)0 1553 y Fo(opipestream)f(op\(cmd\))240 |
2549 |
1628 y Fn(construct)h(an)g Fo(opipestream)e Fn(ob)s(ject)h |
2550 |
Fo(op)h Fn(suc)o(h)g(that)f(the)i(input)f(for)g(the)g(command)g |
2551 |
Fo(cmd)f Fn(can)h(b)q(e)240 1690 y(send)h(through)f Fo(op)p |
2552 |
Fn(.)0 1765 y Fo(iopipestream)f(iop\(cmd\))240 1839 y Fn(construct)22 |
2553 |
b(an)f Fo(iopipestream)f Fn(ob)s(ject)i Fo(iop)f Fn(suc)o(h)h(that)f(the)h |
2554 |
(input)h(and)f(the)g(output)g(to)f(the)240 1902 y(command)15 |
2555 |
b Fo(cmd)g Fn(can)g(b)q(e)h(sen)o(t)f(and)g(receiv)o(ed)i(through)e |
2556 |
Fo(iop)p Fn(.)0 1976 y Fo(iopipestream)f(iop\(ty,)g(proto\))240 |
2557 |
2051 y Fn(construct)20 b(a)h Fo(iopipestream)e Fn(ob)s(ject)h |
2558 |
Fo(iop)g Fn(whose)h(so)q(c)o(k)o(et)f(is)h(a)g(so)q(c)o(k)o(etpair)f(of)g(t)o |
2559 |
(yp)q(e)h Fo(ty)g Fn(with)240 2113 y(proto)q(col)15 b(n)o(um)o(b)q(er)g |
2560 |
Fo(proto)p Fn(.)k Fo(ty)c Fn(defaults)h(to)e Fo(sockbuf::sock_stream)e |
2561 |
Fn(and)k Fo(proto)e Fn(defaults)i(to)240 2176 y(0.)k(Ob)s(ject)15 |
2562 |
b Fo(iop)g Fn(can)g(b)q(e)h(used)g(either)f(as)g(a)g Fo(pipe)g |
2563 |
Fn(or)f(as)h(a)g Fo(socketpair)p Fn(.)0 2250 y Fo(iop.pid)f(\(\))240 |
2564 |
2325 y Fn(return)g(the)g(pro)q(cess)g(id)h(of)f(the)g(c)o(hild)h(if)g(the)f |
2565 |
(curren)o(t)g(pro)q(cess)g(is)g(the)g(paren)o(t)g(or)g(return)f(0.)20 |
2566 |
b(If)14 b(the)240 2387 y(pro)q(cess)h(has)h(not)e(fork)o(ed)h(y)o(et,)f |
2567 |
(return)i(-1.)0 2462 y Fo(iopipestream::fork)d(\(\))240 2537 |
2568 |
y(fork\(\))k Fn(is)i(a)e(static)h(function)h(of)e(class)i Fo(iopipestream)p |
2569 |
Fn(.)26 b Fo(fork\(\))17 b Fn(forks)h(the)g(curren)o(t)g(pro)q(cess)240 |
2570 |
2599 y(and)13 b(appropriately)h(sets)e(the)h Fo(cpid)f Fn(\014eld)i(of)f(the) |
2571 |
g Fo(iopipestream)e Fn(ob)s(jects)h(that)g(ha)o(v)o(e)h(not)f(fork)o(ed)240 |
2572 |
2661 y(y)o(et.)p eop |
2573 |
%%Page: 34 36 |
2574 |
bop 0 -58 a Fn(Chapter)15 b(9:)k(pip)q(estream)d(Classes)1297 |
2575 |
b(34)0 183 y Fm(9.1)33 b(pip)r(estream)15 b(as)g(pip)r(e)62 |
2576 |
321 y Fo(pipe)g Fn(is)h(used)f(to)g(comm)o(unicate)g(b)q(et)o(w)o(een)h |
2577 |
(paren)o(t)f(and)g(c)o(hild)i(pro)q(cesses)f(in)g(the)f Fi(unix)k |
2578 |
Fn(domain.)62 458 y(The)d(follo)o(wing)h(example)g(illustrates)g(ho)o(w)e(to) |
2579 |
h(use)g Fo(iopipestream)e Fn(class)j(as)e(a)h Fo(pipe)p Fn(.)22 |
2580 |
b(The)16 b(paren)o(t)f(sends)0 521 y(the)g(string)h Fo(")p |
2581 |
Fn(I)f(am)g(the)h(paren)o(t)p Fo(")f Fn(to)f(the)i(c)o(hild)h(and)e(receiv)o |
2582 |
(es)h(the)g(string)f Fo(")p Fn(I)h(am)f(the)g(c)o(hild)p Fo(")i |
2583 |
Fn(from)e(c)o(hild.)22 b(The)0 583 y(c)o(hild,)e(in)e(turn,)g(receiv)o(es)h |
2584 |
(the)f(string)g Fo(")p Fn(I)g(am)f(the)h(paren)o(t)p Fo(")f |
2585 |
Fn(from)g(paren)o(t)h(and)g(sends)g(the)g(string)f Fo(")p Fn(I)i(am)e(the)0 |
2586 |
645 y(c)o(hild)p Fo(")j Fn(to)e(the)h(paren)o(t.)30 b(Note)18 |
2587 |
b(the)h(same)g Fo(iopipestream)e Fn(ob)s(ject)h(is)h(used)g(for)f(input)i |
2588 |
(and)f(output)f(in)i(eac)o(h)0 708 y(pro)q(cess.)120 845 y |
2589 |
Fo(#include)j(<pipestream.h>)120 945 y(int)g(main\(\))120 995 |
2590 |
y({)311 1044 y(iopipestream)f(p;)311 1094 y(if)h(\()h(p.fork\(\))f(\))h({)502 |
2591 |
1144 y(char)f(buf[128];)502 1194 y(p)h(<<)f("I)h(am)f(the)h(parent\\n")e(<<)i |
2592 |
(flush;)502 1244 y(cout)f(<<)h("parent:)e(";)502 1293 y(while\(p)h(>>)g |
2593 |
(buf\))693 1343 y(cout)g(<<)h(buf)f(<<)h(')f(';)502 1393 y(cout)g(<<)h(endl;) |
2594 |
311 1443 y(}else)f({)502 1493 y(char)g(buf[128];)502 1542 y(p.getline\(buf,)f |
2595 |
(127\);)502 1592 y(cout)h(<<)h("child:)f(")g(<<)h(buf)f(<<)h(endl;)502 |
2596 |
1642 y(p)g(<<)f("I)h(am)f(the)h(child\\n")f(<<)g(flush;)311 |
2597 |
1692 y(})311 1742 y(return)g(0;)120 1792 y(})0 2021 y Fm(9.2)33 |
2598 |
b(pip)r(estream)15 b(as)g(so)r(c)n(k)n(etpair)62 2159 y Fn(Lik)o(e)23 |
2599 |
b(pip)q(es,)j(so)q(c)o(k)o(etpairs)c(also)g(allo)o(w)g(comm)o(unication)h(b)q |
2600 |
(et)o(w)o(een)g(paren)o(t)f(and)g(c)o(hild)i(pro)q(cesses.)42 |
2601 |
b(But)0 2221 y(so)q(c)o(k)o(etpairs)15 b(are)f(more)h(\015exible)i(than)e |
2602 |
(pip)q(es)h(in)g(the)f(sense)g(that)f(they)h(let)h(the)f(users)g(c)o(ho)q |
2603 |
(ose)g(the)g(so)q(c)o(k)o(et)f(t)o(yp)q(e)0 2283 y(and)h(proto)q(col.)62 |
2604 |
2421 y(The)f(follo)o(wing)h(example)g(illustrates)g(the)f(use)g(of)g |
2605 |
Fo(iopipestream)e Fn(class)j(as)e(a)h Fo(socketpair)e Fn(whose)i(t)o(yp)q(e)g |
2606 |
(is)0 2483 y Fo(sockbuf::sock_dgram)p Fn(.)i(The)d(paren)o(t)f(sends)h(the)f |
2607 |
(string)h Fo(")p Fn(I)f(am)g(the)h(paren)o(t)p Fo(")f Fn(to)f(the)i(c)o(hild) |
2608 |
h(and)f(receiv)o(es)g(the)0 2545 y(string)h Fo(")p Fn(I)h(am)f(the)g(c)o |
2609 |
(hild)p Fo(")i Fn(from)e(the)g(c)o(hild.)21 b(The)15 b(c)o(hild,)h(in)f |
2610 |
(turn,)f(receiv)o(es)h(and)g(sends)g(the)f(strings)g Fo(")p |
2611 |
Fn(I)h(am)f(the)0 2608 y(paren)o(t)p Fo(")i Fn(and)g Fo(")p |
2612 |
Fn(I)g(am)g(the)g(c)o(hild)p Fo(")i Fn(resp)q(ectiv)o(ely)g(from)d(and)i(to)e |
2613 |
(the)i(paren)o(t.)22 b(Note)16 b(in)h(the)f(follo)o(wing)h(example)0 |
2614 |
2670 y(that)d(the)i(same)f Fo(iopipestream)e Fn(ob)s(ject)i(is)h(used)f(for)g |
2615 |
(b)q(oth)g(the)g(input)i(and)e(the)g(output)g(in)h(eac)o(h)g(pro)q(cess.)p |
2616 |
eop |
2617 |
%%Page: 35 37 |
2618 |
bop 0 -58 a Fn(Chapter)15 b(9:)k(pip)q(estream)d(Classes)1297 |
2619 |
b(35)120 183 y Fo(#include)23 b(<pipestream.h>)120 283 y(int)g(main\(\))120 |
2620 |
333 y({)311 382 y(iopipestream)f(p\(sockbuf::sock_dgram\);)311 |
2621 |
432 y(if)h(\()h(iopipestream::fork\(\))d(\))j({)502 482 y(char)f(buf[128];) |
2622 |
502 532 y(p)h(<<)f("I)h(am)f(the)h(parent\\n")e(<<)i(flush;)502 |
2623 |
582 y(p.getline\(buf,)e(127\);)502 632 y(cout)h(<<)h("parent:)e(")i(<<)g(buf) |
2624 |
f(<<)h(endl;)311 681 y(}else)f({)502 731 y(char)g(buf[128];)502 |
2625 |
781 y(p.getline\(buf,)f(127\);)502 831 y(cout)h(<<)h("child:)f(")g(<<)h(buf)f |
2626 |
(<<)h(endl;)502 881 y(p)g(<<)f("I)h(am)f(the)h(child\\n")f(<<)g(flush;)311 |
2627 |
930 y(})311 980 y(return)g(0;)120 1030 y(})0 1276 y Fm(9.3)33 |
2628 |
b(pip)r(estream)15 b(as)g(p)r(op)r(en)62 1415 y Fo(popen)c |
2629 |
Fn(is)h(used)f(to)g(call)h(an)g(executable)g(and)f(send)h(inputs)h(and)e |
2630 |
(outputs)g(to)g(that)f(executable.)20 b(F)l(or)10 b(example,)0 |
2631 |
1477 y(the)15 b(follo)o(wing)h(example)g(executes)g Fo(")p |
2632 |
Fn(/bin/date)p Fo(")p Fn(,)f(gets)g(its)g(output,)g(and)g(prin)o(ts)g(it)h |
2633 |
(to)f(stdout.)120 1617 y Fo(#include)23 b(<pipestream.h>)120 |
2634 |
1716 y(int)g(main)h(\(\))120 1766 y({)215 1816 y(char)g(buf[128];)215 |
2635 |
1866 y(ipipestream)f(p\("/bin/date"\);)215 1965 y(p.getline)g(\(buf,)g |
2636 |
(127\);)215 2015 y(cout)h(<<)f(buf)h(<<)f(endl;)215 2065 y(return)g(0;)120 |
2637 |
2115 y(})62 2331 y Fn(Here)16 b(is)f(an)h(example)g(that)e(prin)o(ts)h |
2638 |
Fo(")p Fn(Hello)i(W)l(orld!!)p Fo(")d Fn(on)i(stdout.)j(It)c(uses)h |
2639 |
Fo(opipestream)d Fn(ob)s(ject.)120 2471 y Fo(#include)23 b(<pipestream.h>)120 |
2640 |
2570 y(int)g(main)h(\(\))120 2620 y({)215 2670 y(opipestream)f |
2641 |
(p\("/bin/cat"\);)p eop |
2642 |
%%Page: 36 38 |
2643 |
bop 0 -58 a Fn(Chapter)15 b(9:)k(pip)q(estream)d(Classes)1297 |
2644 |
b(36)215 183 y Fo(p)24 b(<<)g("Hello)f(World!!\\n")f(<<)i(endl;)215 |
2645 |
233 y(return)f(0;)120 283 y(})62 495 y Fn(The)16 b(follo)o(wing)g(example)g |
2646 |
(illustrates)g(the)f(use)h(of)e Fo(iopipestream)g Fn(for)h(b)q(oth)g(input)h |
2647 |
(and)f(output.)120 632 y Fo(#include)23 b(<pipestream.h>)120 |
2648 |
731 y(int)g(main\(\))120 781 y({)311 831 y(char)g(buf[128];)311 |
2649 |
881 y(iopipestream)f(p\("lpc"\);)311 930 y(p)i(<<)f("help\\nquit\\n")f(<<)i |
2650 |
(flush;)311 980 y(while)f(\()h(p.getline\(buf,)e(127\))h(\))h(cout)f(<<)h |
2651 |
(buf)f(<<)h(endl;)311 1030 y(return)f(0;)120 1080 y(})p eop |
2652 |
%%Page: 37 39 |
2653 |
bop 0 -58 a Fn(Chapter)15 b(10:)k(F)l(ork)c(Class)1440 b(37)0 |
2654 |
183 y Fk(10)41 b(F)-7 b(ork)15 b(Class)62 370 y Fn(Y)l(ou)h(can)f(e\013ectiv) |
2655 |
o(ely)i(use)f(the)f Fo(Fork)g Fn(wrapp)q(er)g(class)h(to)f(create)g(c)o(hild) |
2656 |
i(pro)q(cesses.)k(Y)l(ou)16 b(can)f(use)h(the)g Fo(Fork)0 432 |
2657 |
y Fn(class,)f(instead)h(of)f(directly)h(using)g(the)g(system)e(call)j(fork)d |
2658 |
(\(\),)g(if)i(y)o(ou)f(desire)h(the)f(follo)o(wing:)37 569 |
2659 |
y Fl(\017)30 b Fn(Av)o(oid)16 b(zom)o(bie)f(pro)q(cesses)37 |
2660 |
644 y Fl(\017)30 b Fn(Optionally)17 b(kill)g(c)o(hild)g(pro)q(cesses)e(when)h |
2661 |
(the)f(paren)o(t)g(pro)q(cess)h(terminates.)37 719 y Fl(\017)30 |
2662 |
b Fn(W)l(an)o(t)14 b(to)h(kno)o(w)g(the)g(reason)g(for)f(abnormal)i |
2663 |
(termination)f(of)g(c)o(hild)i(pro)q(cesses.)62 930 y(In)f(what)f(follo)o |
2664 |
(ws,)25 1067 y Fl(\000)30 b Fo(killchild)14 b Fn(is)i(an)f(in)o(teger.)25 |
2665 |
1142 y Fl(\000)30 b Fo(reason)14 b Fn(is)i(an)f(in)o(teger.)25 |
2666 |
1217 y Fl(\000)30 b Fo(signo)14 b Fn(is)i(a)f(v)m(alid)i(signal.)25 |
2667 |
1291 y Fl(\000)30 b Fo(f)15 b Fn(is)h(a)f Fo(Fork)f Fn(ob)s(ject.)0 |
2668 |
1428 y Fo(Fork)h(f\(killchild,)e(reason\))240 1503 y Fn(constructs)i(a)g |
2669 |
Fo(Fork)g Fn(ob)s(ject)f Fo(f)p Fn(.)20 b(The)c(constructor)e(creates)h(a)g |
2670 |
(c)o(hild)i(pro)q(cess.)j(When)c(the)f(paren)o(t)240 1565 y(pro)q(cess)h |
2671 |
(terminates,)g(it)h(will)g(kill)h(the)e(c)o(hild)i(pro)q(cess)e(if)h |
2672 |
Fo(killchild)e Fn(is)h(not)g(0.)22 b(Otherwise,)17 b(the)240 |
2673 |
1628 y(paren)o(t)c(pro)q(cess)g(will)i(w)o(ait)d(un)o(til)j(all)f(its)f(c)o |
2674 |
(hild)i(pro)q(cesses)e(die.)20 b(If)14 b Fo(reason)e Fn(is)i(not)e(0,)h(then) |
2675 |
g(it)h(giv)o(es)240 1690 y(the)h(reason)g(for)g(a)g(c)o(hild)h(pro)q(cess's)f |
2676 |
(death)h(on)f(the)g(stderr.)0 1765 y Fo(f.is_child)f(\(\))240 |
2677 |
1839 y Fn(returns)j(1)f(if)i(the)f(curren)o(t)g(pro)q(cess)g(is)g(the)g(c)o |
2678 |
(hild)i(pro)q(cess)e(follo)o(wing)h(the)f(fork)f(in)i(constructing)240 |
2679 |
1902 y(the)d Fo(Fork)g Fn(ob)s(ject)g Fo(f)p Fn(.)k(Otherwise,)d(return)f(0.) |
2680 |
0 1976 y Fo(f.is_parent)f(\(\))240 2051 y Fn(returns)g(1)h(if)g(the)f(curren) |
2681 |
o(t)h(pro)q(cess)g(is)g(the)f(paren)o(t)h(pro)q(cess)f(follo)o(wing)i(the)e |
2682 |
(fork)g(in)i(constructing)240 2113 y(the)f Fo(Fork)g Fn(ob)s(ject)g |
2683 |
Fo(f)p Fn(.)k(Otherwise,)d(return)f(0.)0 2188 y Fo(f.process_id)f(\(\))240 |
2684 |
2263 y Fn(returns)h(the)f(pro)q(cess)h(id)h(of)e(the)h(c)o(hild)h(pro)q |
2685 |
(cess,)f(if)g(the)g(curren)o(t)g(pro)q(cess)g(is)g(the)g(paren)o(t)f(pro)q |
2686 |
(cess.)240 2325 y(Returns)i(0,)e(if)i(the)f(curren)o(t)g(pro)q(cess)h(is)f |
2687 |
(the)h(c)o(hild)h(pro)q(cess.)j(Returns)15 b(-1,)g(if)h(fork)e(failed.)0 |
2688 |
2400 y Fo(Fork::suicide_signal)e(\(signo\))240 2474 y Fn(is)k(a)f(static)h |
2689 |
(function.)22 b(Up)q(on)16 b(the)f(reciept)i(of)e(the)h(signal)g |
2690 |
Fo(signo)p Fn(,)f(the)h(curren)o(t)f(pro)q(cess)h(will)h(kill)240 |
2691 |
2537 y(all)e(its)f(c)o(hild)i(pro)q(cesses)e(created)g(through)g |
2692 |
Fo(Fork::Fork\(int,)f(int\))h Fn(irresp)q(ectiv)o(e)h(of)f(the)g(v)m(alue)240 |
2693 |
2599 y(of)h(the)h Fo(killchild)f Fn(\015ag)g(used)h(in)h(the)f(construction)g |
2694 |
(of)f(the)h Fo(Fork)f Fn(ob)s(jects.)21 b Fo(signo)15 b Fn(defaults)i(to)240 |
2695 |
2661 y(SIGTERM)e(signal.)p eop |
2696 |
%%Page: 38 40 |
2697 |
bop 0 -58 a Fn(Chapter)15 b(10:)k(F)l(ork)c(Class)1440 b(38)0 |
2698 |
183 y Fm(10.1)32 b(F)-6 b(ork)17 b(Example)62 336 y Fn(The)g(follo)o(wing)g |
2699 |
(example)g(illustrates)h(the)e(use)h(of)f(the)h Fo(Fork)e Fn(class)i(to)f |
2700 |
(create)g(c)o(hild)i(pro)q(cesses.)24 b(First,)16 b(w)o(e)0 |
2701 |
398 y(set)e(up)i Fi(SIGTERM)j Fn(signal)d(handler)g(to)e(kill)i(all)g(the)f |
2702 |
(c)o(hild)h(pro)q(cesses,)f(b)o(y)g(callling)i Fo(Fork::suicide_signal)0 |
2703 |
460 y(\(\))p Fn(.)j(Second,)15 b(w)o(e)g(create)g(sev)o(eral)g(c)o(hild)i |
2704 |
(and)f(grandc)o(hild)g(pro)q(cesses.)62 612 y(Y)l(ou)g(can)f(kill)j(the)d |
2705 |
(top)g(most)g(paren)o(t)g(pro)q(cess)g(and)h(all)g(its)g(c)o(hildren)h(b)o(y) |
2706 |
e(sending)i(a)e Fi(SIGTERM)20 b Fn(signal)d(to)0 675 y(the)e(top)g(most)f |
2707 |
(paren)o(t)h(pro)q(cess.)120 827 y Fo(//)24 b(tfork.C)120 877 |
2708 |
y(#include)f(<iostream.h>)120 927 y(#include)g(<Fork.h>)120 |
2709 |
1026 y(static)g(void)g(print)h(\(char*)f(name,)g(pid_t)g(child\))120 |
2710 |
1076 y({)168 1126 y(if)g(\(child\))215 1176 y(cerr)h(<<)f("Parent)g(")h(<<)g |
2711 |
(getppid)e(\(\))i(<<)g(";)f(")263 1225 y(<<)h(name)f(<<)h(')f(')h(<<)g |
2712 |
(getpid)f(\(\))g(<<)h(";)g(Child)f(")g(<<)h(child)f(<<)h(";\\n";)120 |
2713 |
1275 y(})120 1375 y(int)f(main)h(\(int)f(ac,)h(char**)f(av\))120 |
2714 |
1425 y({)168 1474 y(Fork::suicide_signal)e(\(SIGTERM\);)168 |
2715 |
1574 y(Fork)i(a\(0,)g(1\);)168 1674 y(print)g(\("a",)g(a.process_id)f |
2716 |
(\(\)\);)168 1773 y(if)h(\(a.is_child)g(\(\)\))g({)215 1823 |
2717 |
y(sleep)h(\(3000\);)168 1873 y(})f(else)h(if)f(\(a.is_parent)g(\(\)\))g({)215 |
2718 |
1923 y(Fork)h(b)f(\(1,)h(1\);)215 1973 y(print)g(\("b",)f(b.process_id)f |
2719 |
(\(\)\);)215 2022 y({)263 2072 y(Fork)h(c)h(\(b.is_parent)e(\(\),)i(1\);)263 |
2720 |
2122 y(if)g(\(b.is_child)e(\(\)\))120 2172 y(print)h(\("cchild",)g |
2721 |
(c.process_id)f(\(\)\);)263 2222 y(else)120 2271 y(print)h(\("cparent",)g |
2722 |
(c.process_id)f(\(\)\);)263 2321 y(if)i(\(c.is_child)e(\(\)\))i({)120 |
2723 |
2371 y(sleep)f(\(3000\);)120 2421 y(return)g(0;)263 2471 y(})215 |
2724 |
2521 y(})215 2570 y(if)h(\(b.is_child)e(\(\)\))i({)263 2620 |
2725 |
y(sleep)f(\(120\);)263 2670 y(return)g(0x8;)p eop |
2726 |
%%Page: 39 41 |
2727 |
bop 0 -58 a Fn(Chapter)15 b(10:)k(F)l(ork)c(Class)1440 b(39)215 |
2728 |
183 y Fo(})168 233 y(})168 333 y(return)23 b(0;)120 382 y(})p |
2729 |
eop |
2730 |
%%Page: 40 42 |
2731 |
bop 0 -58 a Fn(Chapter)15 b(11:)k(Class)c(proto)q(col)1368 |
2732 |
b(40)0 183 y Fk(11)41 b(Class)15 b(proto)r(col)62 382 y Fo(protocol)i |
2733 |
Fn(class)h(is)h(the)f(base)g(class)g(for)f(all)i(the)f(other)f(application)j |
2734 |
(proto)q(col)e(classes)g(lik)o(e)h Fo(echo)p Fn(,)f Fo(smtp)p |
2735 |
Fn(,)0 444 y(etc.)h Fo(protocol)13 b Fn(is)i(deriv)o(ed)f(publicly)j(from)c |
2736 |
Fo(iosockstream)p Fn(.)18 b(It)c(uses)g Fo(protocolbuf)e Fn(class,)i(a)g |
2737 |
(nested)g(class)g(of)0 506 y Fo(protocol)p Fn(,)g(as)g(its)i(stream)e |
2738 |
(bu\013er.)62 646 y(The)g Fo(protocol)e Fn(class)h(is)h(an)f(abstract)g |
2739 |
(class)g(and)h(th)o(us,)f(y)o(ou)g(cannot)g(instan)o(tiate)g(an)g(ob)s(ject)g |
2740 |
(of)f Fo(protocol)p Fn(.)0 891 y Fm(11.1)32 b(Class)14 b(proto)r(col::proto)r |
2741 |
(colbuf)62 1030 y Fo(protocol::protocolbuf)i Fn(class)k(is)f(publicly)j |
2742 |
(deriv)o(ed)e(from)e Fo(sockinetbuf)g Fn(and)h(th)o(us,)g(it)h(inherits)g |
2743 |
(all)0 1093 y(the)c(latter's)f(public)j(mem)o(b)q(er)e(functions.)23 |
2744 |
b(In)16 b(addition,)h(the)f Fo(protocolbuf)e Fn(de\014nes)j(the)f(follo)o |
2745 |
(wing)h(mem)o(b)q(er)0 1155 y(functions.)62 1294 y(In)f(what)f(follo)o(ws,)25 |
2746 |
1434 y Fl(\000)30 b Fo(p)15 b Fn(is)h(an)f(ob)s(ject)f(of)h(a)g(non-abstract) |
2747 |
g(class)g(deriv)o(ed)h(from)f Fo(protocolbuf)p Fn(.)25 1511 |
2748 |
y Fl(\000)30 b Fo(pname)14 b Fn(is)i(the)f(transp)q(ort)g(proto)q(col)g(name) |
2749 |
g(whic)o(h)h(is)g(either)g Fo(protocol::tcp)d Fn(or)i Fo(protocol::udp)p |
2750 |
Fn(.)25 1588 y Fl(\000)30 b Fo(addr)15 b Fn(is)g(an)g(unsigned)i(long)f |
2751 |
(denoting)f(the)h(v)m(alid)h(address)e(of)g(a)f(mac)o(hine)j(in)f(host)e(b)o |
2752 |
(yte)h(order.)25 1665 y Fl(\000)30 b Fo(host)15 b Fn(is)g(a)g(c)o(har)g |
2753 |
(string)g(denoting)h(the)f(name)h(of)e(a)h(mac)o(hine)h(lik)o(e)h |
2754 |
Fo(")p Fn(k)o(elvin.seas.virginia.edu)p Fo(")p Fn(.)25 1742 |
2755 |
y Fl(\000)30 b Fo(portno)14 b Fn(is)i(an)f(in)o(t)h(and)f(denotes)g(the)h(p)q |
2756 |
(ort)f(n)o(um)o(b)q(er)g(in)h(host)f(b)o(yte)g(order.)0 1881 |
2757 |
y Fo(protocol::protocolbuf::pro)o(tocolbu)o(f)e(\(pname\))240 |
2758 |
1958 y Fn(constructs)i Fo(protocolbuf)e Fn(ob)s(ject)i(with)h(the)f(transp)q |
2759 |
(ort)f(proto)q(col)h(set)g(to)g Fo(pname)p Fn(.)0 2036 y Fo(p.protocol_name)e |
2760 |
(\(\))240 2113 y Fn(returns)i(the)g(name)h(of)e(the)i(transp)q(ort)e(proto)q |
2761 |
(col)h(of)g Fo(p)g Fn(as)g(a)g(c)o(har)f(string.)0 2190 y Fo(p.rfc_name)g |
2762 |
(\(\))240 2267 y Fn(returns)25 b(the)h(name)f(of)g(the)g(application)i(proto) |
2763 |
q(col)f(name)f(of)g Fo(p)g Fn(as)g(a)g(c)o(har)g(string.)51 |
2764 |
b Fo(pro-)240 2329 y(tocolbuf::rfc_name)13 b(\(\))26 b Fn(is)h(a)f(pure)h |
2765 |
(virtual)g(function;)32 b(th)o(us,)d(an)o(y)d(class)g(deriv)o(ed)i(from)240 |
2766 |
2391 y Fo(protocol::protocolbuf)12 b Fn(should)k(pro)o(vide)g(a)f |
2767 |
(de\014nition)i(for)e Fo(protocolbuf::rfc_name)d(\(\))p Fn(.)0 |
2768 |
2468 y Fo(p.rfc_doc)i(\(\))240 2545 y Fn(returns)21 b(the)g(RF)o(C)f(do)q |
2769 |
(cumen)o(t)i(name)f(of)f(the)h(application)i(proto)q(col)d(of)h |
2770 |
Fo(p)g Fn(as)f(a)h(c)o(har)f(string.)240 2608 y Fo(protocolbuf::rfc_doc)12 |
2771 |
b(\(\))22 b Fn(is)g(a)g(pure)g(virtual)h(function;)j(th)o(us,)d(an)o(y)e |
2772 |
(class)i(deriv)o(ed)g(from)240 2670 y Fo(protocol::protocolbuf)12 |
2773 |
b Fn(should)k(pro)o(vide)g(a)f(de\014nition)i(for)e Fo(protocolbuf::rfc_doc)d |
2774 |
(\(\))p Fn(.)p eop |
2775 |
%%Page: 41 43 |
2776 |
bop 0 -58 a Fn(Chapter)15 b(11:)k(Class)c(proto)q(col)1368 |
2777 |
b(41)0 183 y Fo(p.serve_clients)13 b(\(portno\))240 258 y Fn(con)o(v)o(erts)j |
2778 |
Fo(p)g Fn(in)o(to)g(a)g(serv)o(er.)23 b(Use)17 b(the)g(p)q(ort)f(sp)q |
2779 |
(eci\014ed)i(in)f Fo(/etc/services)e Fn(for)h(the)g(application)240 |
2780 |
320 y(if)i Fo(portno)f(<)g Fn(0.)26 b(Use)18 b(a)f(default)h(p)q(ort)f(if)h |
2781 |
Fo(0)d(<=)g(portno)f(<=)h(1024)p Fn(.)26 b(Otherwise,)19 b(use)f |
2782 |
Fo(portno)e Fn(as)240 382 y(the)e(p)q(ort)g(to)g(accept)g(clien)o(ts)i |
2783 |
(requesting)f(service.)20 b Fo(protocolbuf::serve_clients\(\))11 |
2784 |
b Fn(is)j(pure)240 445 y(virtual)h(function;)g(th)o(us,)f(an)o(y)g(class)h |
2785 |
(deriv)o(ed)g(from)f Fo(protocol::protocolbuf)d Fn(should)k(pro)o(vide)240 |
2786 |
507 y(a)g(de\014nition)i(for)d Fo(protocolbuf::serve_clients\(\))p |
2787 |
Fn(.)240 582 y(Please)i(do)f(not)g(c)o(hange)g(the)g(meaning)h(of)f |
2788 |
Fo(portno)f Fn(when)i(y)o(ou)f(deriv)o(e)h(y)o(our)e(o)o(wn)h(class.)0 |
2789 |
656 y Fo(p.bind)f(\(\))34 b Fn(same)15 b(as)g Fo(p.serve_clients)e(\(-1\))p |
2790 |
Fn(.)0 731 y Fo(p.connect)h(\(\))240 806 y Fn(connects)i(to)e(the)h(lo)q(cal) |
2791 |
i(host's)d(serv)o(er)h(for)f(the)i(application.)21 b Fo(p)15 |
2792 |
b Fn(acts)g(as)g(the)g(clien)o(t.)0 881 y Fo(p.connect)f(\(addr\))240 |
2793 |
955 y Fn(connects)h(to)e(the)h(serv)o(er)g(running)h(at)f(the)g(mac)o(hine)h |
2794 |
(with)g(address,)f Fo(addr)p Fn(.)k Fo(p)c Fn(acts)g(as)g(the)g(clien)o(t.)0 |
2795 |
1030 y Fo(p.connect)g(\(host\))240 1105 y Fn(connects)i(to)e(the)h(serv)o(er) |
2796 |
g(running)i(at)d(the)h(mac)o(hine,)h Fo(host)p Fn(.)j Fo(p)c |
2797 |
Fn(acts)g(as)g(the)g(clien)o(t.)0 1180 y Fo(p.connect)f(\(host,)g(portno\)) |
2798 |
240 1254 y Fn(connects)19 b(to)e(the)i(serv)o(er)f(servicing)i(clien)o(ts)f |
2799 |
(at)f Fo(portno)f Fn(at)h(the)g(mac)o(hine,)i Fo(host)p Fn(.)29 |
2800 |
b(Unlik)o(e)20 b(this)240 1316 y(connect)13 b(call,)g(the)f(other)g(v)m |
2801 |
(arian)o(ts)g(of)g(connect)g(uses)g(the)h(p)q(ort)e(sp)q(eci\014ed)k(in)e |
2802 |
(the)f Fo(/etc/services)240 1379 y Fn(\014le.)p eop |
2803 |
%%Page: 42 44 |
2804 |
bop 0 -58 a Fn(Chapter)15 b(12:)k(Ec)o(ho)c(Class)1433 b(42)0 |
2805 |
183 y Fk(12)41 b(Ec)n(ho)15 b(Class)62 374 y Fn(The)g Fo(echo)g |
2806 |
Fn(class)g(implemen)o(ts)h(RF)o(C)f(862.)j(An)e Fo(echo)e Fn(ob)s(ject,)g(as) |
2807 |
g(a)h(clien)o(t,)h(will)g(get)f(bac)o(k)g(what)f(ev)o(er)h(data)0 |
2808 |
437 y(it)f(sends)f(to)g(an)g Fo(echo)g Fn(serv)o(er.)19 b(Similarly)l(,)c(an) |
2809 |
f Fo(echo)e Fn(ob)s(ject,)h(as)g(a)g(serv)o(er,)g(will)i(ec)o(ho)e(bac)o(k)h |
2810 |
(the)f(data)g(it)g(receiv)o(es)0 499 y(from)h(its)i(clien)o(t.)62 |
2811 |
637 y(The)i Fo(echo)f Fn(class)h(is)g(deriv)o(ed)g(from)f Fo(protocol)g |
2812 |
Fn(class,)h(and)f(uses)h Fo(echo::echobuf)e Fn(as)h(its)h(stream)e(bu\013er.) |
2813 |
0 699 y Fo(echo::echobuf)d Fn(is)j(in)g(turn)f(is)h(deriv)o(ed)g(from)f |
2814 |
Fo(protocol::protcolbuf)p Fn(.)62 837 y(In)h(what)f(follo)o(ws,)25 |
2815 |
975 y Fl(\000)30 b Fo(e)15 b Fn(is)h(a)f Fo(echo)f Fn(ob)s(ject.)25 |
2816 |
1051 y Fl(\000)30 b Fo(pname)14 b Fn(is)i(a)f(transp)q(ort)f(proto)q(col)h |
2817 |
(name)h(and)f(m)o(ust)g(b)q(e)h(either)f Fo(protocol::tcp)f |
2818 |
Fn(or)h Fo(protocol::udp)p Fn(.)0 1188 y Fo(echo)g(e)g(\(pname\))240 |
2819 |
1264 y Fn(constructs)g(the)g Fo(echo)g Fn(ob)s(ject,)f Fo(e)h |
2820 |
Fn(with)g Fo(pname)g Fn(as)g(its)g(transp)q(ort)f(proto)q(col)i(name.)0 |
2821 |
1340 y Fo(echo::operator)d(->)i(\(\))240 1415 y Fn(an)g Fo(echo)g |
2822 |
Fn(ob)s(ject)f(is)i(a)f(smart)f(p)q(oin)o(ter)i(for)e(the)i(underlying)h |
2823 |
Fo(echobuf)p Fn(.)0 1631 y Fg(12.0.1)29 b(tsec)n(ho.C)120 1769 |
2824 |
y Fo(//)24 b(echo)f(server.)g(Serves)g(clients)g(at)g(port)h(4000.)120 |
2825 |
1818 y(#include)f(<echo.h>)120 1868 y(#include)g(<stdlib.h>)120 |
2826 |
1968 y(int)g(main)h(\(\))120 2018 y({)168 2068 y(echo)f(server)g |
2827 |
(\(protocol::tcp\);)168 2117 y(server->serve_clients)e(\(4000\);)168 |
2828 |
2167 y(return)i(1;)120 2217 y(})0 2432 y Fg(12.0.2)29 b(tcec)n(ho.C)120 |
2829 |
2570 y Fo(//)24 b(echo)f(client.)g(Sends)g("mary)g(had)h(a)f(litte)h(lamb")f |
2830 |
(to)g(the)h(server)120 2620 y(#include)f(<echo.h>)120 2670 |
2831 |
y(#include)g(<stdlib.h>)p eop |
2832 |
%%Page: 43 45 |
2833 |
bop 0 -58 a Fn(Chapter)15 b(12:)k(Ec)o(ho)c(Class)1433 b(43)120 |
2834 |
233 y Fo(int)23 b(main)h(\(\))120 283 y({)168 333 y(echo)f |
2835 |
(e\(protocol::tcp\);)168 432 y(e->connect)f(\("kelvin.seas.virginia.edu",)e |
2836 |
(4000\);)168 532 y(cout)j(<<)h(e->rfc_name)e(\(\))i(<<)f(')h(')g(<<)f |
2837 |
(e->rfc_doc)g(\(\))g(<<)h(endl;)168 632 y(e)f(<<)h("mary)f(had)h(a)f(little)g |
2838 |
(lamb\\r\\n")g(<<)h(flush;)168 731 y(char)f(buf)g([256];)168 |
2839 |
781 y(e.getline)f(\(buf,)i(255\);)168 881 y(cout)f(<<)h("got)f(back:)g(")h |
2840 |
(<<)f(buf)h(<<)f(endl;)168 930 y(return)g(0;)120 980 y(})p |
2841 |
eop |
2842 |
%%Page: 44 46 |
2843 |
bop 0 -58 a Fn(Chapter)15 b(13:)k(SMTP)c(Class)1400 b(44)0 |
2844 |
183 y Fk(13)41 b(SMTP)15 b(Class)62 359 y Fn(The)k Fo(smtp)f |
2845 |
Fn(class,)i(whic)o(h)f(is)h(deriv)o(ed)f(from)f Fo(protocol)g |
2846 |
Fn(class,)i(implemen)o(ts)f(RF)o(C)g(821.)29 b(It)19 b(can)g(b)q(e)g(used)0 |
2847 |
422 y(only)d(as)f(a)f(clien)o(t.)22 b(Serv)o(er)15 b(function)h(is)f(not)g(y) |
2848 |
o(et)g(implemen)o(ted.)62 559 y Fo(smtp)h Fn(uses)g Fo(smtp::smtpbuf)f |
2849 |
Fn(as)g(its)i(underlying)h(stream)d(bu\013er.)23 b(Also,)16 |
2850 |
b(lik)o(e)i(the)e Fo(protocol)f Fn(class,)i Fo(smtp)0 621 y |
2851 |
Fn(is)f(a)f(smart)f(p)q(oin)o(ter)h(class)h(for)f(it)g(is)h |
2852 |
Fo(smtp::smtpbuf)p Fn(.)62 758 y(In)g(what)f(follo)o(ws,)25 |
2853 |
895 y Fl(\000)30 b Fo(s)15 b Fn(is)h(an)f Fo(smtp)f Fn(ob)s(ject.)25 |
2854 |
967 y Fl(\000)30 b Fo(sb)15 b Fn(is)h(an)f Fo(smtp::smtpbuf)e |
2855 |
Fn(ob)s(ject.)25 1039 y Fl(\000)30 b Fo(io)15 b Fn(is)h(a)e(p)q(oin)o(ter)i |
2856 |
(to)f(an)g Fo(ostream)p Fn(.)25 1111 y Fl(\000)30 b Fo(buf)15 |
2857 |
b Fn(is)g(a)g(c)o(har)g(bu\013er)g(of)g(length)h Fo(buflen)p |
2858 |
Fn(.)25 1183 y Fl(\000)30 b Fo(str,)15 b(str0,)f(str1,)h(...)f |
2859 |
Fn(are)h(all)h(c)o(har)f(strings.)0 1320 y Fo(smtp)g(s)g(\(io\))240 |
2860 |
1392 y Fn(constructs)e(an)h Fo(smtp)e Fn(clien)o(t,)j Fo(s)p |
2861 |
Fn(.)k(An)o(y)14 b(resp)q(onse)g(the)f(clien)o(t)i(gets)e(from)g(the)h(serv)o |
2862 |
(er)f(is)h(sen)o(t)f(to)g(the)240 1455 y(ostream,)h Fo(io)p |
2863 |
Fn(.)0 1527 y Fo(sb.get_response)f(\(\))240 1599 y Fn(gets)i(the)g(serv)o(er) |
2864 |
g(resp)q(onse)h(and)f(sends)h(it)f(to)g Fo(io)f Fn(of)h(the)h |
2865 |
Fo(smtpbuf)p Fn(.)0 1671 y Fo(sb.send_cmd)e(\(str0,)g(str1,)g(str2\))240 |
2866 |
1743 y Fn(concatenates)k(strings)g Fo(str0)p Fn(,)g Fo(str1)p |
2867 |
Fn(,)g(and)h Fo(str2)e Fn(and)i(sends)f(the)h(concatenated)f(string)g(to)g |
2868 |
(the)240 1805 y(serv)o(er)d(b)q(efore)g(getting)g(its)h(resp)q(onse.)0 |
2869 |
1877 y Fo(sb.send_buf)e(\(buf,)g(buflen\))240 1949 y Fn(sends)i(the)f(con)o |
2870 |
(ten)o(ts)g(of)f(the)i Fo(buf)e Fn(to)h(the)g(serv)o(er.)0 |
2871 |
2021 y Fo(sb.helo)f(\(\))0 2093 y(sb.help)g(\(str\))0 2165 |
2872 |
y(sb.quit)g(\(\))0 2238 y(sb.turn)g(\(\))0 2310 y(sb.rset)g(\(\))0 |
2873 |
2382 y(sb.noop)g(\(\))0 2454 y(sb.data)g(\(\))0 2526 y(sb.vrfy)g(\(str\))0 |
2874 |
2598 y(sb.expn)g(\(str\))240 2670 y Fn(implemen)o(ts)i(the)g(resp)q(ectiv)o |
2875 |
(e)g Fi(sm)o(tp)g Fn(commands.)k(See)15 b(RF)o(C)g(821)g(for)f(the)h(meaning) |
2876 |
h(of)f(eac)o(h.)p eop |
2877 |
%%Page: 45 47 |
2878 |
bop 0 -58 a Fn(Chapter)15 b(13:)k(SMTP)c(Class)1400 b(45)0 |
2879 |
183 y Fo(sb.mail)14 b(\(str\))240 257 y Fn(sends)22 b(the)f(mail)g(command)g |
2880 |
(to)g(the)g(serv)o(er.)37 b Fo(str)20 b Fn(is)i(the)f(the)g(rev)o(erse)g |
2881 |
(path)g(or)f(the)h Fi(FR)o(OM)240 319 y Fn(address.)0 393 y |
2882 |
Fo(sb.rcpt)14 b(\(str\))240 466 y Fn(sends)g(the)f(recipien)o(t)i(command)e |
2883 |
(to)f(the)h(serv)o(er.)19 b Fo(str)13 b Fn(is)h(the)f(forw)o(ard)f(path)h(or) |
2884 |
f(the)i Fi(TO)h Fn(address.)0 540 y Fo(sb.data)f(\(buf,)h(buflen\))240 |
2885 |
614 y Fn(sends)f(the)g(con)o(ten)o(ts)f(of)g(the)h(bu\013er,)f |
2886 |
Fo(buf)g Fn(as)g(the)h(mail)g(data)f(to)g(the)h(recipien)o(t)h(previously)g |
2887 |
(estab-)240 676 y(lished)i(through)e Fo(smtpbuf::rcpt\(\))e |
2888 |
Fn(calls.)0 749 y Fo(sb.data)h(\(filename\))240 823 y Fn(sends)19 |
2889 |
b(the)g(con)o(ten)o(ts)f(of)g(the)g(\014le,)i Fo(filename)e |
2890 |
Fn(as)g(the)h(mail)g(data)f(to)g(the)h(recipien)o(t)h(previously)240 |
2891 |
885 y(established)d(through)e Fo(smtpbuf::rcpt\(\))e Fn(calls.)0 |
2892 |
1088 y Fg(13.0.1)29 b(tcsm)n(tp.C)120 1225 y Fo(//)24 b(smtp)f(client.)120 |
2893 |
1275 y(//)h(The)f(president)g(sends)g(a)h(message)e(to)i(gs4t@virginia.edu.) |
2894 |
120 1325 y(#include)f(<smtp.h>)120 1375 y(#include)g(<stdio.h>)120 |
2895 |
1425 y(#include)g(<pwd.h>)120 1474 y(#include)g(<unistd.h>)120 |
2896 |
1574 y(int)g(main)h(\(\))120 1624 y({)168 1674 y(smtp)f(client)g(\(&cout\);) |
2897 |
168 1773 y(//)g(establish)g(connection)168 1823 y(client->connect)f |
2898 |
(\("fulton.seas.virginia.)o(edu"\);)168 1873 y(client->helo)g(\(\);)168 |
2899 |
1973 y(//)h(get)h(help)168 2022 y(client->help)e(\(\);)168 |
2900 |
2122 y(//)h(setup)g(the)h(FROM)f(address)168 2172 y(client->mail)f |
2901 |
(\("president@whitehouse.gov)o("\);)168 2271 y(//)h(setup)g(the)h(TO)g |
2902 |
(address)168 2321 y(client->rcpt)e(\("gs4t@virginia.edu"\);)168 |
2903 |
2421 y(//)h(send)h(the)f(message)168 2471 y(client->data)f(\(\);)168 |
2904 |
2521 y(client)h(<<)g("Hi)h(Sekar,)f(I)h(appoint)e(you)i(as)g(the)f(director)g |
2905 |
(of)g(NASA\\r\\n")g(<<)h(flush;)168 2570 y(client)f(<<)g(")96 |
2906 |
b(-Bill,)23 b(Hill,)g(and)g(Chel\\r\\n")g(<<)h(flush;)168 2620 |
2907 |
y(cout)f(<<)h(client;)f(//)g(get)h(the)f(server)g(response.)p |
2908 |
eop |
2909 |
%%Page: 46 48 |
2910 |
bop 0 -58 a Fn(Chapter)15 b(13:)k(SMTP)c(Class)1400 b(46)168 |
2911 |
183 y Fo(//)23 b(finally)g(quit)168 233 y(client->quit)f(\(\);)168 |
2912 |
333 y(return)h(0;)120 382 y(})p eop |
2913 |
%%Page: 47 49 |
2914 |
bop 0 -58 a Fn(Chapter)15 b(14:)k(Error)14 b(Handling)1349 |
2915 |
b(47)0 183 y Fk(14)41 b(Error)15 b(Handling)62 370 y Fn(Eac)o(h)k(class)h(in) |
2916 |
g(the)f(So)q(c)o(k)o(et)p Fo(++)g Fn(library)h(uses)f Fo(error\(const)14 |
2917 |
b(char*\))k Fn(mem)o(b)q(er)i(function)g(to)e(rep)q(ort)h(an)o(y)0 |
2918 |
432 y(errors)g(that)f(ma)o(y)h(o)q(ccur)g(during)i(a)e(system)g(call.)33 |
2919 |
b(It)19 b(\014rst)g(calls)i Fo(perror\(\))d Fn(to)g(rep)q(ort)h(the)h(error)e |
2920 |
(message)0 495 y(for)h(the)h Fo(errno)g Fn(set)f(b)o(y)h(the)g(system)g |
2921 |
(call.)35 b(It)20 b(then)h(calls)g Fo(sock_error)14 b(\(const)g(char*)g(nm,)h |
2922 |
(const)g(char*)0 557 y(errmsg\))f Fn(where)i Fo(nm)f Fn(is)g(the)h(name)f(of) |
2923 |
f(the)i(class.)62 694 y(The)g Fo(sock_error\(\))d Fn(function)j(simply)h |
2924 |
(prin)o(ts)e(the)g Fo(nm)g Fn(and)h(the)f Fo(errmsg)f Fn(on)h(the)h |
2925 |
Fi(stderr)p Fn(.)p eop |
2926 |
%%Page: 48 50 |
2927 |
bop 0 -58 a Fn(Chapter)15 b(15:)k(Pitfalls)1510 b(48)0 183 |
2928 |
y Fk(15)41 b(Pitfalls)62 374 y Fn(Deadlo)q(c)o(ks)19 b(in)g(datagram)e(so)q |
2929 |
(c)o(k)o(ets)h(are)g(the)h(most)f(common)g(mistak)o(es)g(that)g(no)o(vices)h |
2930 |
(mak)o(e.)29 b(T)l(o)18 b(allevi-)0 436 y(ate)i(the)g(problem,)i |
2931 |
Fo(sockbuf)d Fn(class)h(pro)o(vides)h(timeout)f(facilities)i(that)e(can)g(b)q |
2932 |
(e)h(used)g(e\013ectiv)o(ely)g(to)e(a)o(v)o(oid)0 498 y(deadlo)q(c)o(ks.)62 |
2933 |
636 y(Consider)14 b(the)g(follo)o(wing)h(simple)g(tsm)o(tp)d(example)j(whic)o |
2934 |
(h)f(sends)h(the)e(HELP)h(command)g(to)f(a)g(sm)o(tp)g(serv)o(er)0 |
2935 |
698 y(and)18 b(gets)g(bac)o(k)f(the)h(help)i(message.)27 b(Supp)q(ose)19 |
2936 |
b(it)g(do)q(es)f(not)f(kno)o(w)h(the)g(size)h(of)e(the)h(help)i(message)d |
2937 |
(nor)h(the)0 761 y(format)c(of)h(the)h(message.)k(In)d(suc)o(h)f(cases,)f |
2938 |
(the)g(timeout)h(facilities)i(of)d Fo(sockbuf)f Fn(class)i(pro)o(vides)g(the) |
2939 |
g(required)0 823 y(to)q(ols.)62 961 y(The)i(example)h(terminates)f(the)g |
2940 |
(help)h(message)e(reception)i(if)g(the)f(there)g(is)g(no)g(input)h(activit)o |
2941 |
(y)f(from)f(the)0 1023 y(sm)o(tp)e(serv)o(er)f(for)h(10)g(seconds.)0 |
2942 |
1237 y Fg(tsm)n(tp.cc)120 1375 y Fo(#include)23 b(<sockinet.h>)120 |
2943 |
1474 y(int)g(main\(\))120 1524 y({)120 1574 y(iosockinet)70 |
2944 |
b(sio\(sockbuf::sock_stream\);)120 1674 y(sio->connect\("kelvin.seas.)o |
2945 |
(virgini)o(a.edu",)20 b("smtp",)j("tcp"\);)120 1773 y(char)g(buf[512];)120 |
2946 |
1823 y(sio.getline\(buf,)f(511\);)h(cout)g(<<)h(buf)f(<<)h(endl;)120 |
2947 |
1873 y(sio)f(<<)h("HELO)f(kelvin\\n")g(<<)g(flush;)120 1923 |
2948 |
y(sio.getline\(buf,)f(511\);)h(cout)g(<<)h(buf)f(<<)h(endl;)120 |
2949 |
2022 y(sio)f(<<)h("HELP\\n")f(<<)g(flush;)311 2122 y(//)g(set)h(the)f |
2950 |
(receive)g(timeout)g(to)h(10)f(seconds)311 2172 y(int)g(tmo)h(=)g |
2951 |
(sio->recvtimeout\(10\);)120 2271 y(while)f(\()h(sio.getline\(buf,)e(511\))h |
2952 |
(\))h(cout)f(<<)h(buf)f(<<)h(endl;)120 2321 y(//)g(if)f(the)h(above)f(while)g |
2953 |
(loop)g(terminated)g(due)g(to)h(timeout)120 2371 y(//)g(clear)f(the)g(state)g |
2954 |
(of)h(sio.)120 2421 y(if)g(\()f(!sio->is_eof\(\))f(\))120 2471 |
2955 |
y(sio.clear\(\);)120 2521 y(sio->recvtimeout\(tmo\);)f(//)i(reset)h(the)f |
2956 |
(receive)g(timeout)g(time)120 2620 y(sio)g(<<)h("QUIT\\n")f(<<)g(flush;)120 |
2957 |
2670 y(sio.getline\(buf,)f(511\);)h(cout)g(<<)h(buf)f(<<)h(endl;)p |
2958 |
eop |
2959 |
%%Page: 49 51 |
2960 |
bop 0 -58 a Fn(Chapter)15 b(15:)k(Pitfalls)1510 b(49)311 183 |
2961 |
y Fo(return)23 b(0;)120 233 y(})p eop |
2962 |
%%Page: 50 52 |
2963 |
bop 0 -58 a Fn(Index)1795 b(50)0 183 y Fk(Index)0 416 y Fm(A)0 |
2964 |
482 y Ff(accepting)15 b(connections)7 b Fe(:)h(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:) |
2965 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
2966 |
(:)g(:)g(:)20 b Ff(9)0 540 y(ac)o(kno)o(wledgmen)o(ts)13 b |
2967 |
Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
2968 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23 |
2969 |
b Ff(2)0 667 y Fm(B)0 734 y Ff(base)14 b(address)g(class)5 |
2970 |
b Fe(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g |
2971 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)17 |
2972 |
b Ff(13)0 792 y(binding)f(addresses)8 b Fe(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:) |
2973 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
2974 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Ff(9)0 919 y Fm(C)0 985 y Ff(class)14 |
2975 |
b(iso)q(c)o(kinet)f Fe(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
2976 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
2977 |
(:)g(:)g(:)g(:)g(:)24 b Ff(28)0 1043 y(class)14 b(iso)q(c)o(kunix)6 |
2978 |
b Fe(:)j(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
2979 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 |
2980 |
b Ff(31)0 1102 y(class)14 b(so)q(c)o(kbuf)5 b Fe(:)i(:)f(:)g(:)g(:)g(:)g(:)g |
2981 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g |
2982 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)17 b |
2983 |
Ff(4)0 1160 y(common)d(mistak)o(es)6 b Fe(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
2984 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
2985 |
(:)g(:)g(:)g(:)g(:)g(:)19 b Ff(48)0 1218 y(connect)6 b Fe(:)h(:)f(:)g(:)h(:)f |
2986 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
2987 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
2988 |
(:)g(:)19 b Ff(9)0 1276 y(connection)c(establishmen)o(t)t Fe(:)9 |
2989 |
b(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
2990 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Ff(9)0 1334 y(Cop)o(yrigh)o(t)t |
2991 |
Fe(:)7 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
2992 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
2993 |
(:)f(:)g(:)g(:)g(:)g(:)16 b Ff(1)0 1392 y(cop)o(yrigh)o(t)f(notice)t |
2994 |
Fe(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g |
2995 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)16 |
2996 |
b Ff(1)0 1519 y Fm(D)0 1586 y Ff(datagram)e(inet)d Fe(:)6 b(:)h(:)f(:)g(:)g |
2997 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
2998 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)23 b Ff(16)0 |
2999 |
1644 y(datagram)14 b(unix)6 b Fe(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3000 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3001 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)18 b Ff(21)0 1771 y Fm(E)0 1837 |
3002 |
y Ff(ec)o(ho)13 b(class)t Fe(:)8 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) |
3003 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3004 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)17 b Ff(42)0 1895 |
3005 |
y Fd(echo::echo)t Fe(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3006 |
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3007 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Ff(42)0 1953 y Fd(echo::oper)o(at)o(or-)o(>)6 |
3008 |
b Fe(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3009 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 |
3010 |
b Ff(42)0 2012 y(error)13 b(handling)g Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3011 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3012 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Ff(47)0 2139 y |
3013 |
Fm(F)0 2205 y Ff(\015ushing)15 b(bu\013ers)d Fe(:)6 b(:)g(:)g(:)h(:)f(:)g(:)g |
3014 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3015 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23 b Ff(4)0 2263 |
3016 |
y(\015ushing)15 b(output)d Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3017 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3018 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Ff(8)0 2321 y(fork)13 b(class)8 |
3019 |
b Fe(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3020 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3021 |
(:)g(:)g(:)g(:)g(:)21 b Ff(37)0 2379 y(fork)13 b(example)t |
3022 |
Fe(:)7 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3023 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3024 |
(:)g(:)16 b Ff(38)0 2438 y Fd(Fork::Fork)t Fe(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g |
3025 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3026 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b |
3027 |
Ff(37)0 2496 y Fd(Fork::is)p 162 2496 12 2 v 11 w(child)10 |
3028 |
b Fe(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3029 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 |
3030 |
b Ff(37)0 2554 y Fd(Fork::is)p 162 2554 V 11 w(parent)8 b Fe(:)e(:)g(:)g(:)g |
3031 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3032 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Ff(37)0 2612 |
3033 |
y Fd(Fork::proc)o(es)o(s)p 260 2612 V 11 w(id)9 b Fe(:)c(:)h(:)g(:)g(:)h(:)f |
3034 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3035 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Ff(37)0 2670 y Fd(Fork::suic)o(id)o(e)p |
3036 |
260 2670 V 11 w(signal)t Fe(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3037 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 |
3038 |
b Ff(37)1015 416 y Fm(G)1015 482 y Fd(getpeername)9 b(\(see)i(sockinetbu)o |
3039 |
(f::)o(pee)o(ra)o(ddr)o(\))6 b Fe(:)g(:)g(:)g(:)g(:)g(:)g(:)23 |
3040 |
b Ff(15)1015 540 y Fd(getsockname)9 b(\(see)i(sockinetbu)o(f::)o(loc)o(al)o |
3041 |
(add)o(r\))c Fe(:)s(:)g(:)f(:)g(:)g(:)21 b Ff(14)1015 598 y(getso)q(c)o(k)o |
3042 |
(opt)6 b Fe(:)i(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3043 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3044 |
(:)g(:)g(:)g(:)h(:)f(:)19 b Ff(10)1015 725 y Fm(I)1015 792 |
3045 |
y Ff(inet)14 b(address)g(class)9 b Fe(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3046 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3047 |
(:)h(:)f(:)g(:)g(:)22 b Ff(19)1015 850 y(inet)14 b(domain)s |
3048 |
Fe(:)8 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3049 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3050 |
(:)f(:)g(:)16 b Ff(14)1015 908 y Fd(iopipestrea)o(m:)o(:fo)o(rk)s |
3051 |
Fe(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3052 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Ff(33)1015 |
3053 |
966 y Fd(iopipestrea)o(m:)o(:io)o(pip)o(es)o(tre)o(am)7 b Fe(:)f(:)g(:)g(:)g |
3054 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 |
3055 |
b Ff(33)1015 1024 y Fd(iopipestrea)o(m:)o(:pi)o(d)5 b Fe(:)s(:)h(:)g(:)g(:)g |
3056 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3057 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 b Ff(33)1015 1082 y(ioso)q(c)o(kinet)e |
3058 |
(example)5 b Fe(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3059 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)18 |
3060 |
b Ff(17)1015 1140 y(ioso)q(c)o(kinet)e(examples)6 b Fe(:)i(:)e(:)g(:)g(:)g(:) |
3061 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3062 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)19 b Ff(29)1015 1198 y(ioso)q(c)o(kstream)c(class) |
3063 |
d Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3064 |
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 |
3065 |
b Ff(27)1015 1256 y(ioso)q(c)o(kstream)15 b(classes)s Fe(:)8 |
3066 |
b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3067 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)16 b Ff(26)1015 |
3068 |
1315 y Fd(iosockstrea)o(m:)o(:io)o(soc)o(ks)o(tre)o(am)7 b |
3069 |
Fe(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3070 |
g(:)g(:)24 b Ff(28)1015 1373 y Fd(iosockstrea)o(m:)o(:op)o(era)o(to)o(r->)t |
3071 |
Fe(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3072 |
(:)g(:)g(:)g(:)g(:)g(:)18 b Ff(28)1015 1431 y Fd(iosockstrea)o(m:)o(:rd)o |
3073 |
(buf)7 b Fe(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3074 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Ff(28)1015 |
3075 |
1489 y(ioso)q(c)o(kunix)16 b(class)5 b Fe(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3076 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3077 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 b Ff(30)1015 1547 y(ioso)q(c)o(kunix)e |
3078 |
(example)9 b Fe(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3079 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 |
3080 |
b Ff(23)1015 1605 y(ioso)q(c)o(kunix)16 b(examples)c Fe(:)6 |
3081 |
b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3082 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)23 b Ff(31)1015 |
3083 |
1663 y Fd(ipipestream)o(::)o(ipi)o(pes)o(tr)o(eam)t Fe(:)s(:)6 |
3084 |
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3085 |
(:)g(:)g(:)18 b Ff(33)1015 1721 y(iso)q(c)o(kinet)e(class)c |
3086 |
Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3087 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)24 |
3088 |
b Ff(28)1015 1779 y(iso)q(c)o(kinet)16 b(example)6 b Fe(:)h(:)g(:)f(:)g(:)g |
3089 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3090 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19 b Ff(16)1015 1838 |
3091 |
y Fd(isockinet::)o(is)o(ock)o(ine)o(t)6 b Fe(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3092 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3093 |
(:)23 b Ff(29)1015 1896 y Fd(isockinet::)o(op)o(era)o(tor)o(->)7 |
3094 |
b Fe(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3095 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Ff(29)1015 1954 y Fd(isockinet::)o |
3096 |
(rd)o(buf)5 b Fe(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3097 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19 |
3098 |
b Ff(29)1015 2012 y(iso)q(c)o(kstream)c(class)s Fe(:)7 b(:)g(:)f(:)g(:)g(:)g |
3099 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3100 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)16 b Ff(26)1015 2070 |
3101 |
y Fd(isockstream)o(::)o(iso)o(cks)o(tr)o(eam)t Fe(:)s(:)6 b(:)g(:)g(:)g(:)g |
3102 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 |
3103 |
b Ff(26)1015 2128 y Fd(isockstream)o(::)o(ope)o(rat)o(or)o(->)5 |
3104 |
b Fe(:)s(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3105 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)19 b Ff(26)1015 2186 y Fd(isockstream)o(::)o(rdb)o |
3106 |
(uf)s Fe(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3107 |
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 |
3108 |
b Ff(26)1015 2244 y(iso)q(c)o(kunix)f(class)6 b Fe(:)h(:)g(:)f(:)g(:)g(:)g(:) |
3109 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3110 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)19 b Ff(31)1015 |
3111 |
2303 y(iso)q(c)o(kunix)d(example)c Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3112 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3113 |
(:)g(:)g(:)g(:)g(:)23 b Ff(21)1015 2361 y Fd(isockunix::)o(is)o(ock)o(uni)o |
3114 |
(x)6 b Fe(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3115 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Ff(31)1015 |
3116 |
2419 y Fd(isockunix::)o(op)o(era)o(tor)o(->)7 b Fe(:)t(:)f(:)g(:)g(:)g(:)g(:) |
3117 |
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3118 |
(:)22 b Ff(31)1015 2477 y Fd(isockunix::)o(rd)o(buf)5 b Fe(:)t(:)h(:)g(:)g(:) |
3119 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3120 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19 b Ff(31)1015 2604 y Fm(L)1015 |
3121 |
2670 y Ff(listening)9 b Fe(:)g(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) |
3122 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3123 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)21 b Ff(9)p |
3124 |
eop |
3125 |
%%Page: 51 53 |
3126 |
bop 0 -58 a Fn(Index)1795 b(51)0 183 y Fm(N)0 250 y Ff(names)10 |
3127 |
b Fe(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3128 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3129 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Ff(9)0 367 y Fm(O)0 |
3130 |
433 y Fd(opipestrea)o(m:)o(:op)o(ip)o(est)o(rea)o(m)t Fe(:)s(:)6 |
3131 |
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3132 |
(:)g(:)g(:)17 b Ff(33)0 492 y(option)d(getting)s Fe(:)8 b(:)e(:)g(:)g(:)g(:)g |
3133 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3134 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b |
3135 |
Ff(9)0 550 y(option)e(setting)5 b Fe(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3136 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3137 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Ff(9)0 608 y(oso)q(c)o(kinet)d |
3138 |
(example)d Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3139 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 |
3140 |
b Ff(16)0 666 y(oso)q(c)o(kstream)14 b(class)7 b Fe(:)h(:)e(:)g(:)g(:)g(:)g |
3141 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3142 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)20 b Ff(27)0 724 y Fd(osockstrea)o(m:)o |
3143 |
(:op)o(er)o(ato)o(r->)5 b Fe(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g |
3144 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 b Ff(27)0 |
3145 |
782 y Fd(osockstrea)o(m:)o(:os)o(oc)o(kst)o(rea)o(m)t Fe(:)s(:)6 |
3146 |
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3147 |
(:)g(:)g(:)17 b Ff(27)0 840 y Fd(osockstrea)o(m:)o(:rd)o(bu)o(f)t |
3148 |
Fe(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3149 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)16 b Ff(27)0 |
3150 |
898 y(oso)q(c)o(kunix)f(example)6 b Fe(:)i(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3151 |
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3152 |
(:)g(:)h(:)f(:)18 b Ff(21)0 956 y(o)o(v)o(erview)c(of)f(so)q(c)o(k)o(et)p |
3153 |
Fd(++)c Fe(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3154 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)22 |
3155 |
b Ff(3)0 1074 y Fm(P)0 1140 y Fd(pipe)t Fe(:)5 b(:)h(:)g(:)g(:)g(:)g(:)g(:)g |
3156 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3157 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3158 |
(:)17 b Ff(33)0 1198 y(pip)q(e)d(example)d Fe(:)6 b(:)g(:)h(:)f(:)g(:)g(:)g |
3159 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3160 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)22 b Ff(34)0 |
3161 |
1256 y(pip)q(estream)15 b(classes)c Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3162 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3163 |
(:)h(:)f(:)g(:)g(:)22 b Ff(33)0 1315 y(pip)q(estream)15 b(examples)5 |
3164 |
b Fe(:)i(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3165 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Ff(33)0 |
3166 |
1373 y(pitfalls)t Fe(:)8 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) |
3167 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3168 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)16 b Ff(48)0 |
3169 |
1431 y Fd(popen)s Fe(:)t(:)6 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3170 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3171 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Ff(33)0 |
3172 |
1489 y(p)q(op)q(en)e(example)f Fe(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3173 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3174 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Ff(35)0 1547 y Fd(protcolbuf)o(::)o(pro)o(to) |
3175 |
o(col)p 397 1547 12 2 v 10 w(name)6 b Fe(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3176 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 b |
3177 |
Ff(40)0 1605 y(proto)q(col)14 b(class)7 b Fe(:)g(:)f(:)g(:)h(:)f(:)g(:)g(:)g |
3178 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3179 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)19 b Ff(40)0 1663 |
3180 |
y(proto)q(colbuf)c(class)5 b Fe(:)i(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3181 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3182 |
(:)g(:)g(:)g(:)g(:)18 b Ff(40)0 1721 y Fd(protocolbu)o(f:)o(:bi)o(nd)t |
3183 |
Fe(:)s(:)6 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3184 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b |
3185 |
Ff(41)0 1779 y Fd(protocolbu)o(f:)o(:co)o(nn)o(ect)6 b Fe(:)g(:)g(:)g(:)g(:)g |
3186 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3187 |
(:)h(:)f(:)g(:)22 b Ff(41)0 1838 y Fd(protocolbu)o(f:)o(:pr)o(ot)o(oco)o(lbu) |
3188 |
o(f)t Fe(:)s(:)6 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3189 |
g(:)g(:)g(:)h(:)f(:)g(:)g(:)17 b Ff(40)0 1896 y Fd(protocolbu)o(f:)o(:rf)o(c) |
3190 |
p 319 1896 V 11 w(doc)t Fe(:)5 b(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3191 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 |
3192 |
b Ff(40)0 1954 y Fd(protocolbu)o(f:)o(:rf)o(c)p 319 1954 V |
3193 |
11 w(name)9 b Fe(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3194 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Ff(40)0 |
3195 |
2012 y Fd(protocolbu)o(f:)o(:se)o(rv)o(e)p 358 2012 V 11 w(clients)5 |
3196 |
b Fe(:)s(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3197 |
(:)g(:)g(:)h(:)17 b Ff(41)0 2129 y Fm(R)0 2196 y Ff(read)c(timeouts)5 |
3198 |
b Fe(:)j(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3199 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3200 |
(:)18 b Ff(11)0 2313 y Fm(S)0 2379 y Ff(setso)q(c)o(k)o(opt)8 |
3201 |
b Fe(:)f(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3202 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3203 |
(:)g(:)g(:)g(:)21 b Ff(10)0 2438 y(sm)o(tp)13 b(class)c Fe(:)e(:)f(:)g(:)g(:) |
3204 |
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3205 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 |
3206 |
b Ff(44)0 2496 y Fd(smtp::smtp)t Fe(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3207 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3208 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Ff(44)0 2554 |
3209 |
y Fd(smtpbuf::g)o(et)p 240 2554 V 10 w(response)8 b Fe(:)f(:)f(:)g(:)g(:)g(:) |
3210 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3211 |
(:)g(:)24 b Ff(44)0 2612 y Fd(smtpbuf::s)o(en)o(d)p 260 2612 |
3212 |
V 11 w(buf)8 b Fe(:)d(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3213 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 |
3214 |
b Ff(44)0 2670 y Fd(smtpbuf::s)o(en)o(d)p 260 2670 V 11 w(cmd)8 |
3215 |
b Fe(:)d(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3216 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b |
3217 |
Ff(44)1015 183 y(so)q(c)o(kAddr)14 b(class)5 b Fe(:)j(:)e(:)g(:)g(:)g(:)g(:)g |
3218 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3219 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 b Ff(13)1015 |
3220 |
241 y Fd(sockAddr::f)o(am)o(ily)5 b Fe(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3221 |
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3222 |
(:)g(:)h(:)f(:)19 b Ff(13)1015 299 y Fd(sockAddr::o)o(pe)o(rat)o(or)9 |
3223 |
b(void*)f Fe(:)t(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3224 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Ff(13)1015 358 y Fd(sockAddr::s)o(iz)o(e) |
3225 |
9 b Fe(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) |
3226 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 |
3227 |
b Ff(13)1015 416 y(so)q(c)o(kbuf)14 b(class)5 b Fe(:)j(:)e(:)g(:)g(:)g(:)g(:) |
3228 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3229 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b |
3230 |
Ff(4)1015 474 y(so)q(c)o(kbuf)c(constructors)9 b Fe(:)f(:)e(:)g(:)g(:)g(:)g |
3231 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3232 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)22 b Ff(4)1015 532 y(so)q(c)o(kbuf)14 |
3233 |
b(destructor)9 b Fe(:)f(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3234 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3235 |
(:)22 b Ff(5)1015 590 y(so)q(c)o(kbuf)14 b(reading)7 b Fe(:)h(:)f(:)f(:)g(:)g |
3236 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3237 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)20 b Ff(5)1015 |
3238 |
648 y(so)q(c)o(kbuf)14 b(writing)d Fe(:)6 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3239 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3240 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)22 b Ff(5)1015 706 y Fd(sockbuf::~s)o(oc)o |
3241 |
(kbu)o(f)6 b Fe(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3242 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)19 |
3243 |
b Ff(5)1015 764 y Fd(sockbuf::ac)o(ce)o(pt)8 b Fe(:)s(:)e(:)g(:)g(:)h(:)f(:)g |
3244 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3245 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Ff(9)1015 823 y Fd(sockbuf::bi)o(nd)8 |
3246 |
b Fe(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3247 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 |
3248 |
b Ff(9)1015 881 y Fd(sockbuf::br)o(oa)o(dca)o(st)s Fe(:)s(:)6 |
3249 |
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3250 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Ff(11)1015 939 |
3251 |
y Fd(sockbuf::cl)o(ea)o(rer)o(ror)7 b Fe(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3252 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3253 |
(:)24 b Ff(10)1015 997 y Fd(sockbuf::cl)o(os)o(e)7 b Fe(:)f(:)g(:)g(:)g(:)g |
3254 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3255 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b Ff(5)1015 |
3256 |
1055 y Fd(sockbuf::co)o(nn)o(ect)6 b Fe(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3257 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3258 |
(:)g(:)h(:)f(:)g(:)g(:)20 b Ff(9)1015 1113 y Fd(sockbuf::de)o(bu)o(g)9 |
3259 |
b Fe(:)s(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3260 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 |
3261 |
b Ff(10)1015 1171 y Fd(sockbuf::do)o(al)o(loc)o(ate)r Fe(:)t(:)6 |
3262 |
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3263 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)16 b Ff(8)1015 1229 |
3264 |
y Fd(sockbuf::do)o(nt)o(rou)o(te)s Fe(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3265 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3266 |
(:)g(:)g(:)17 b Ff(11)1015 1287 y Fd(sockbuf::fl)o(us)o(h)p |
3267 |
1295 1287 V 11 w(output)t Fe(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3268 |
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 |
3269 |
b Ff(8)1015 1346 y Fd(sockbuf::ge)o(to)o(pt)7 b Fe(:)s(:)f(:)g(:)g(:)g(:)h(:) |
3270 |
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3271 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Ff(10)1015 1404 y Fd(sockbuf::ge)o(tt)o |
3272 |
(ype)5 b Fe(:)t(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3273 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)19 |
3274 |
b Ff(10)1015 1462 y Fd(sockbuf::is)p 1236 1462 V 10 w(eof)10 |
3275 |
b Fe(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g |
3276 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 |
3277 |
b Ff(6)1015 1520 y Fd(sockbuf::is)p 1236 1520 V 10 w(exceptionpe)o(nd)o(ing)r |
3278 |
Fe(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3279 |
(:)g(:)g(:)16 b Ff(7)1015 1578 y Fd(sockbuf::is)p 1236 1578 |
3280 |
V 10 w(open)6 b Fe(:)f(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3281 |
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)18 |
3282 |
b Ff(5,)13 b(6)1015 1636 y Fd(sockbuf::is)p 1236 1636 V 10 |
3283 |
w(readready)s Fe(:)t(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3284 |
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 |
3285 |
b Ff(7)1015 1694 y Fd(sockbuf::is)p 1236 1694 V 10 w(writeready)7 |
3286 |
b Fe(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3287 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Ff(7)1015 1752 y Fd(sockbuf::ke)o(ep) |
3288 |
o(ali)o(ve)s Fe(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3289 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 |
3290 |
b Ff(11)1015 1810 y Fd(sockbuf::li)o(ng)o(er)7 b Fe(:)s(:)f(:)g(:)g(:)g(:)h |
3291 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3292 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Ff(11)1015 1869 y Fd(sockbuf::li)o |
3293 |
(st)o(en)8 b Fe(:)s(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3294 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3295 |
(:)22 b Ff(9)1015 1927 y Fd(sockbuf::ms)o(gf)o(lag)8 b Fe(:)e(:)g(:)g(:)g(:)g |
3296 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3297 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Ff(6,)13 b(7)1015 1985 y Fd(sockbuf::oo)o(bi) |
3298 |
o(nli)o(ne)s Fe(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3299 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 |
3300 |
b Ff(11)1015 2043 y Fd(sockbuf::op)o(en)8 b Fe(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3301 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3302 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Ff(5)1015 2101 |
3303 |
y Fd(sockbuf::op)o(er)o(ato)o(r=)t Fe(:)s(:)6 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3304 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3305 |
(:)g(:)g(:)g(:)18 b Ff(5)1015 2159 y Fd(sockbuf::ov)o(er)o(flo)o(w)6 |
3306 |
b Fe(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3307 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)19 |
3308 |
b Ff(8)1015 2217 y Fd(sockbuf::rc)o(vb)o(uf)7 b Fe(:)s(:)f(:)g(:)g(:)g(:)h(:) |
3309 |
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3310 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)21 b Ff(11)1015 2275 y Fd(sockbuf::re)o(ad)8 |
3311 |
b Fe(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3312 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 |
3313 |
b Ff(7)1015 2334 y Fd(sockbuf::re)o(cv)8 b Fe(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3314 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3315 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Ff(7)1015 2392 |
3316 |
y Fd(sockbuf::re)o(cv)o(fro)o(m)6 b Fe(:)s(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3317 |
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3318 |
(:)g(:)g(:)g(:)19 b Ff(7)1015 2450 y Fd(sockbuf::re)o(cv)o(msg)6 |
3319 |
b Fe(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3320 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)20 |
3321 |
b Ff(7)1015 2508 y Fd(sockbuf::re)o(cv)o(tim)o(eou)o(t)5 b |
3322 |
Fe(:)s(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3323 |
g(:)g(:)g(:)h(:)f(:)g(:)g(:)18 b Ff(8,)13 b(12)1015 2566 y |
3324 |
Fd(sockbuf::re)o(us)o(ead)o(dr)s Fe(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3325 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3326 |
(:)g(:)17 b Ff(11)1015 2624 y Fd(sockbuf::se)o(nd)8 b Fe(:)e(:)g(:)g(:)g(:)g |
3327 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3328 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Ff(6)p |
3329 |
eop |
3330 |
%%Page: 52 54 |
3331 |
bop 0 -58 a Fn(Index)1795 b(52)0 183 y Fd(sockbuf::s)o(en)o(dms)o(g)7 |
3332 |
b Fe(:)s(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3333 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 |
3334 |
b Ff(6)0 241 y Fd(sockbuf::s)o(en)o(dti)o(me)o(out)t Fe(:)t(:)6 |
3335 |
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3336 |
(:)g(:)g(:)g(:)g(:)18 b Ff(8,)13 b(12)0 299 y Fd(sockbuf::s)o(en)o(dto)8 |
3337 |
b Fe(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3338 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 |
3339 |
b Ff(6)0 358 y Fd(sockbuf::s)o(et)o(opt)6 b Fe(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3340 |
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3341 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)20 b Ff(10)0 416 y Fd(sockbuf::s)o(hu)o(tdo)o(wn)5 |
3342 |
b Fe(:)s(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3343 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 |
3344 |
b Ff(5)0 474 y Fd(sockbuf::s)o(hu)o(tho)o(w)7 b Fe(:)s(:)f(:)g(:)g(:)g(:)g(:) |
3345 |
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3346 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Ff(5)0 532 y Fd(sockbuf::s)o(nd)o(buf)6 |
3347 |
b Fe(:)t(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3348 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)20 |
3349 |
b Ff(11)0 590 y Fd(sockbuf::s)o(oc)o(kbu)o(f)7 b Fe(:)s(:)f(:)g(:)g(:)g(:)g |
3350 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g |
3351 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Ff(4)0 648 y Fd(sockbuf::s)o(yn)o(c)8 |
3352 |
b Fe(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3353 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 |
3354 |
b Ff(8)0 706 y Fd(sockbuf::s)o(ys)p 240 706 12 2 v 10 w(read)9 |
3355 |
b Fe(:)c(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3356 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)21 |
3357 |
b Ff(7)0 764 y Fd(sockbuf::s)o(ys)p 240 764 V 10 w(write)7 |
3358 |
b Fe(:)e(:)h(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3359 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b |
3360 |
Ff(6)0 823 y Fd(sockbuf::t)o(yp)o(e)8 b Fe(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) |
3361 |
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3362 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Ff(4)0 881 y Fd(sockbuf::u)o(nd)o |
3363 |
(erf)o(lo)o(w)5 b Fe(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g |
3364 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)17 |
3365 |
b Ff(8)0 939 y Fd(sockbuf::w)o(ri)o(te)6 b Fe(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3366 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3367 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Ff(6)0 997 y Fd(sockbuf::x)o(sp)o |
3368 |
(utn)8 b Fe(:)s(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3369 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 |
3370 |
b Ff(8)0 1055 y(so)q(c)o(k)o(et)13 b(options)h Fe(:)6 b(:)g(:)g(:)g(:)g(:)g |
3371 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3372 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 b Ff(9)0 |
3373 |
1113 y Fd(socketpair)t Fe(:)s(:)7 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3374 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3375 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Ff(33)0 1171 y(so)q(c)o(k)o(etpair)d |
3376 |
(example)s Fe(:)8 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g |
3377 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)16 |
3378 |
b Ff(34)0 1229 y(so)q(c)o(kinetaddr)f(class)s Fe(:)8 b(:)e(:)g(:)g(:)g(:)g(:) |
3379 |
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3380 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)16 b Ff(19)0 1287 y Fd(sockinetad)o(dr)o(::f)o |
3381 |
(am)o(ily)6 b Fe(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3382 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Ff(20)0 |
3383 |
1346 y Fd(sockinetad)o(dr)o(::g)o(et)o(por)o(t)8 b Fe(:)s(:)e(:)g(:)g(:)h(:)f |
3384 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3385 |
(:)g(:)21 b Ff(20)0 1404 y Fd(sockinetad)o(dr)o(::g)o(et)o(tho)o(stn)o(am)o |
3386 |
(e)7 b Fe(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3387 |
(:)f(:)g(:)g(:)23 b Ff(20)0 1462 y Fd(sockinetad)o(dr)o(::o)o(pe)o(rat)o(or)9 |
3388 |
b(void*)h Fe(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3389 |
(:)g(:)g(:)24 b Ff(19)0 1520 y Fd(sockinetad)o(dr)o(::s)o(iz)o(e)t |
3390 |
Fe(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3391 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)16 b Ff(19)0 |
3392 |
1578 y Fd(sockinetad)o(dr)o(::s)o(oc)o(kin)o(eta)o(dd)o(r)7 |
3393 |
b Fe(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3394 |
(:)g(:)g(:)23 b Ff(19)0 1636 y(so)q(c)o(kinetbuf)15 b(class)6 |
3395 |
b Fe(:)h(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3396 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)19 |
3397 |
b Ff(14)0 1694 y(so)q(c)o(kinetbuf)c(dgram)e(example)f Fe(:)6 |
3398 |
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3399 |
(:)g(:)g(:)g(:)23 b Ff(16)0 1752 y(so)q(c)o(kinetbuf)15 b(stream)e(example)7 |
3400 |
b Fe(:)g(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3401 |
(:)g(:)h(:)f(:)g(:)g(:)19 b Ff(17)0 1810 y Fd(sockinetbu)o(f:)o(:bi)o(nd)t |
3402 |
Fe(:)s(:)6 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3403 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b |
3404 |
Ff(15)0 1869 y Fd(sockinetbu)o(f:)o(:co)o(nn)o(ect)6 b Fe(:)g(:)g(:)g(:)g(:)g |
3405 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3406 |
(:)h(:)f(:)g(:)22 b Ff(15)0 1927 y Fd(sockinetbu)o(f:)o(:lo)o(ca)o(lad)o(dr)7 |
3407 |
b Fe(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3408 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Ff(14)0 1985 y Fd(sockinetbu)o(f:)o(:lo)o |
3409 |
(ca)o(lho)o(st)7 b Fe(:)s(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3410 |
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)20 b Ff(15)0 |
3411 |
2043 y Fd(sockinetbu)o(f:)o(:lo)o(ca)o(lpo)o(rt)7 b Fe(:)s(:)f(:)g(:)g(:)g(:) |
3412 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3413 |
(:)20 b Ff(15)1015 183 y Fd(sockinetbuf)o(::)o(ope)o(n)5 b |
3414 |
Fe(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3415 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 b Ff(14)1015 |
3416 |
241 y Fd(sockinetbuf)o(::)o(ope)o(rat)o(or)9 b(=)g Fe(:)d(:)g(:)g(:)g(:)g(:)g |
3417 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 |
3418 |
b Ff(14)1015 299 y Fd(sockinetbuf)o(::)o(pee)o(rad)o(dr)7 b |
3419 |
Fe(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) |
3420 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Ff(15)1015 358 y Fd(sockinetbuf)o(::)o |
3421 |
(pee)o(rho)o(st)7 b Fe(:)t(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) |
3422 |
f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Ff(15)1015 |
3423 |
416 y Fd(sockinetbuf)o(::)o(pee)o(rpo)o(rt)7 b Fe(:)t(:)f(:)g(:)g(:)g(:)g(:)g |
3424 |
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3425 |
(:)22 b Ff(15)1015 474 y Fd(sockinetbuf)o(::)o(soc)o(kin)o(et)o(buf)t |
3426 |
Fe(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g |
3427 |
(:)g(:)g(:)g(:)g(:)g(:)18 b Ff(14)1015 532 y(so)q(c)o(kstream)c(classes)d |
3428 |
Fe(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3429 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 |
3430 |
b Ff(26)1015 590 y(so)q(c)o(kunixadd)q(r)15 b(class)7 b Fe(:)h(:)e(:)g(:)g(:) |
3431 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3432 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)20 b Ff(25)1015 648 y Fd(sockunixadd)o(r:) |
3433 |
o(:fa)o(mil)o(y)6 b Fe(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3434 |
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 |
3435 |
b Ff(25)1015 706 y Fd(sockunixadd)o(r:)o(:op)o(era)o(to)o(r)10 |
3436 |
b(void*)f Fe(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3437 |
(:)g(:)g(:)25 b Ff(25)1015 764 y Fd(sockunixadd)o(r:)o(:si)o(ze)s |
3438 |
Fe(:)s(:)6 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3439 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)17 b Ff(25)1015 |
3440 |
823 y Fd(sockunixadd)o(r:)o(:so)o(cku)o(ni)o(xad)o(dr)7 b Fe(:)f(:)g(:)g(:)g |
3441 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)24 |
3442 |
b Ff(25)1015 881 y(so)q(c)o(kunixbuf)16 b(class)11 b Fe(:)6 |
3443 |
b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3444 |
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)23 b |
3445 |
Ff(21)1015 939 y(so)q(c)o(kunixbuf)16 b(example)5 b Fe(:)j(:)e(:)g(:)g(:)g(:) |
3446 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3447 |
(:)g(:)g(:)h(:)f(:)g(:)18 b Ff(23)1015 997 y Fd(sockunixbuf)o(::)o(bin)o(d)5 |
3448 |
b Fe(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3449 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 b |
3450 |
Ff(21)1015 1055 y Fd(sockunixbuf)o(::)o(con)o(nec)o(t)6 b Fe(:)g(:)h(:)f(:)g |
3451 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3452 |
(:)g(:)g(:)g(:)g(:)23 b Ff(21)1015 1113 y Fd(sockunixbuf)o(::)o(ope)o(n)5 |
3453 |
b Fe(:)s(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3454 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)18 b |
3455 |
Ff(21)1015 1171 y Fd(sockunixbuf)o(::)o(ope)o(rat)o(or)9 b(=)g |
3456 |
Fe(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:) |
3457 |
g(:)g(:)g(:)g(:)g(:)h(:)22 b Ff(21)1015 1229 y Fd(sockunixbuf)o(::)o(soc)o |
3458 |
(kun)o(ix)o(buf)t Fe(:)s(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) |
3459 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)18 b Ff(21)1015 1287 |
3460 |
y(stream)c(inet)8 b Fe(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) |
3461 |
g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3462 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Ff(17)1015 1346 y(stream)14 |
3463 |
b(unix)s Fe(:)8 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3464 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3465 |
(:)g(:)g(:)g(:)g(:)17 b Ff(23)1015 1473 y Fm(T)1015 1539 y |
3466 |
Ff(timeout)d(example)6 b Fe(:)i(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f |
3467 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3468 |
(:)g(:)g(:)g(:)19 b Ff(48)1015 1597 y(timeouts)5 b Fe(:)j(:)e(:)g(:)g(:)g(:)g |
3469 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3470 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)18 |
3471 |
b Ff(11)1015 1725 y Fm(U)1015 1791 y Ff(unix)d(address)f(class)t |
3472 |
Fe(:)7 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h |
3473 |
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)17 |
3474 |
b Ff(25)1015 1849 y(unix)e(domain)7 b Fe(:)g(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g |
3475 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g |
3476 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)20 b Ff(21)1015 |
3477 |
1977 y Fm(W)1015 2043 y Ff(write)14 b(timeouts)7 b Fe(:)g(:)f(:)g(:)g(:)h(:)f |
3478 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g |
3479 |
(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)20 b Ff(11)p |
3480 |
eop |
3481 |
%%Page: -1 55 |
3482 |
bop 1937 -58 a Fn(i)0 183 y Fk(T)-7 b(able)15 b(of)g(Con)n(ten)n(ts)0 |
3483 |
358 y Fm(So)r(c)n(k)n(et)p Fc(++)22 b Fm(Library)j(Cop)n(yrigh)n(t)f(Notice) |
3484 |
14 b Fb(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3485 |
(:)h(:)f(:)g(:)36 b Fm(1)0 498 y(Ac)n(kno)n(wledgmen)n(ts)14 |
3486 |
b Fb(:)c(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3487 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3488 |
(:)h(:)f(:)36 b Fm(2)0 638 y(1)67 b(Ov)n(erview)23 b(of)f(So)r(c)n(k)n(et)p |
3489 |
Fc(++)g Fm(Library)c Fb(:)10 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) |
3490 |
h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b Fm(3)0 778 y(2)67 |
3491 |
b Fc(sockbuf)21 b Fm(Class)6 b Fb(:)i(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h |
3492 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f |
3493 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)28 b Fm(4)149 |
3494 |
856 y Fn(2.1)45 b(Constructors)10 b Fa(:)c(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) |
3495 |
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3496 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3497 |
(:)f(:)g(:)g(:)g(:)h(:)24 b Fn(4)149 918 y(2.2)45 b(Destructor)11 |
3498 |
b Fa(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3499 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3500 |
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)26 |
3501 |
b Fn(5)149 980 y(2.3)45 b(Reading)16 b(and)g(W)l(riting)10 |
3502 |
b Fa(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3503 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3504 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)24 b Fn(5)149 1043 y(2.4)45 |
3505 |
b(Establishing)17 b(connections)5 b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) |
3506 |
h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3507 |
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)19 b |
3508 |
Fn(9)149 1105 y(2.5)45 b(Getting)15 b(and)g(Setting)h(So)q(c)o(k)o(et)f |
3509 |
(Options)g Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3510 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)28 |
3511 |
b Fn(9)149 1167 y(2.6)45 b(Time)16 b(Outs)f(While)i(Reading)f(and)f(W)l |
3512 |
(riting)9 b Fa(:)g(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) |
3513 |
f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)24 b Fn(11)0 1292 |
3514 |
y Fm(3)67 b(so)r(c)n(kAddr)23 b(Class)10 b Fb(:)f(:)h(:)g(:)g(:)g(:)h(:)f(:)g |
3515 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3516 |
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)32 b Fm(13)0 1432 |
3517 |
y(4)67 b(so)r(c)n(kinetbuf)23 b(Class)8 b Fb(:)h(:)i(:)f(:)g(:)g(:)g(:)h(:)f |
3518 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3519 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)31 b Fm(14)149 1510 y Fn(4.1)45 |
3520 |
b(Metho)q(ds)10 b Fa(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3521 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3522 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3523 |
(:)g(:)g(:)h(:)f(:)25 b Fn(14)149 1572 y(4.2)45 b Fi(inet)17 |
3524 |
b Fn(Datagram)c(So)q(c)o(k)o(ets)e Fa(:)c(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3525 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3526 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)26 b |
3527 |
Fn(16)149 1634 y(4.3)45 b Fi(inet)17 b Fn(Stream)e(So)q(c)o(k)o(ets)10 |
3528 |
b Fa(:)c(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3529 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3530 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 b Fn(17)0 1759 y Fm(5)67 |
3531 |
b(so)r(c)n(kinetaddr)24 b(Class)15 b Fb(:)8 b(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g |
3532 |
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3533 |
(:)h(:)f(:)g(:)g(:)g(:)38 b Fm(19)0 1899 y(6)67 b(so)r(c)n(kunixbuf)24 |
3534 |
b(Class)13 b Fb(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h |
3535 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f |
3536 |
(:)36 b Fm(21)149 1977 y Fn(6.1)45 b(Metho)q(ds)10 b Fa(:)e(:)f(:)g(:)g(:)g |
3537 |
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3538 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3539 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)25 b |
3540 |
Fn(21)149 2039 y(6.2)45 b Fi(unix)19 b Fn(Datagram)14 b(So)q(c)o(k)o(ets)5 |
3541 |
b Fa(:)h(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3542 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3543 |
(:)h(:)f(:)g(:)g(:)g(:)20 b Fn(21)149 2101 y(6.3)45 b Fi(unix)19 |
3544 |
b Fn(Stream)c(So)q(c)o(k)o(ets)e Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3545 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g |
3546 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)28 |
3547 |
b Fn(23)0 2226 y Fm(7)67 b(so)r(c)n(kunixaddr)25 b(Class)7 |
3548 |
b Fb(:)h(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g |
3549 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)30 |
3550 |
b Fm(25)0 2366 y(8)67 b(so)r(c)n(kstream)21 b(Classes)10 b |
3551 |
Fb(:)f(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) |
3552 |
f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)33 |
3553 |
b Fm(26)149 2444 y Fn(8.1)45 b(ioso)q(c)o(kstreams)11 b Fa(:)6 |
3554 |
b(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3555 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3556 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fn(26)299 |
3557 |
2506 y(8.1.1)44 b(iso)q(c)o(kstream)15 b(Class)10 b Fa(:)d(:)g(:)h(:)f(:)g(:) |
3558 |
g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3559 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)25 b |
3560 |
Fn(26)299 2568 y(8.1.2)44 b(oso)q(c)o(kstream)14 b(Class)5 |
3561 |
b Fa(:)i(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3562 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3563 |
(:)f(:)20 b Fn(27)299 2630 y(8.1.3)44 b(ioso)q(c)o(kstream)14 |
3564 |
b(Class)9 b Fa(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) |
3565 |
f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3566 |
(:)f(:)g(:)24 b Fn(27)p eop |
3567 |
%%Page: -2 56 |
3568 |
bop 1925 -58 a Fn(ii)149 42 y(8.2)45 b(ioso)q(c)o(kinet)16 |
3569 |
b(Stream)f(Classes)e Fa(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3570 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3571 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)28 b Fn(28)299 104 y(8.2.1)44 |
3572 |
b(iso)q(c)o(kinet)8 b Fa(:)h(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3573 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3574 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)23 |
3575 |
b Fn(28)299 166 y(8.2.2)44 b(ioso)q(c)o(kinet)16 b(examples)10 |
3576 |
b Fa(:)e(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3577 |
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)25 |
3578 |
b Fn(29)149 228 y(8.3)45 b(ioso)q(c)o(kunix)16 b(Classes)5 |
3579 |
b Fa(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3580 |
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3581 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)20 b Fn(30)299 291 |
3582 |
y(8.3.1)44 b(iso)q(c)o(kunix)17 b(class)10 b Fa(:)d(:)g(:)h(:)f(:)g(:)g(:)g |
3583 |
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3584 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25 |
3585 |
b Fn(31)299 353 y(8.3.2)44 b(ioso)q(c)o(kunix)16 b(examples)t |
3586 |
Fa(:)9 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3587 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)19 |
3588 |
b Fn(31)0 477 y Fm(9)67 b(pip)r(estream)23 b(Classes)10 b Fb(:)e(:)i(:)h(:)f |
3589 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g |
3590 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fm(33)149 555 |
3591 |
y Fn(9.1)45 b(pip)q(estream)16 b(as)f(pip)q(e)10 b Fa(:)f(:)e(:)g(:)g(:)h(:)f |
3592 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3593 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h |
3594 |
(:)f(:)g(:)25 b Fn(34)149 617 y(9.2)45 b(pip)q(estream)16 b(as)f(so)q(c)o(k)o |
3595 |
(etpair)e Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:) |
3596 |
g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3597 |
(:)g(:)g(:)h(:)f(:)g(:)28 b Fn(34)149 680 y(9.3)45 b(pip)q(estream)16 |
3598 |
b(as)f(p)q(op)q(en)e Fa(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3599 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3600 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fn(35)0 |
3601 |
804 y Fm(10)66 b(F)-6 b(ork)24 b(Class)13 b Fb(:)c(:)i(:)f(:)g(:)g(:)g(:)h(:) |
3602 |
f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3603 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)36 |
3604 |
b Fm(37)149 882 y Fn(10.1)45 b(F)l(ork)14 b(Example)6 b Fa(:)i(:)f(:)h(:)f(:) |
3605 |
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3606 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3607 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)21 b Fn(38)0 1007 y Fm(11)66 |
3608 |
b(Class)22 b(proto)r(col)11 b Fb(:)f(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3609 |
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3610 |
(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fm(40)149 1084 y Fn(11.1)45 |
3611 |
b(Class)15 b(proto)q(col::proto)q(colbuf)10 b Fa(:)c(:)i(:)f(:)g(:)g(:)g(:)h |
3612 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3613 |
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)24 b Fn(40)0 |
3614 |
1209 y Fm(12)66 b(Ec)n(ho)23 b(Class)8 b Fb(:)h(:)h(:)h(:)f(:)g(:)g(:)h(:)f |
3615 |
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g |
3616 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)31 |
3617 |
b Fm(42)299 1287 y Fn(12.0.1)43 b(tsec)o(ho.C)10 b Fa(:)c(:)i(:)f(:)g(:)g(:)h |
3618 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3619 |
(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3620 |
(:)g(:)h(:)24 b Fn(42)299 1349 y(12.0.2)43 b(tcec)o(ho.C)8 |
3621 |
b Fa(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3622 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3623 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)23 b Fn(42)0 1474 y |
3624 |
Fm(13)66 b(SMTP)23 b(Class)9 b Fb(:)g(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3625 |
(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g |
3626 |
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)32 b Fm(44)299 1551 |
3627 |
y Fn(13.0.1)43 b(tcsm)o(tp.C)13 b Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:) |
3628 |
f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3629 |
(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)28 |
3630 |
b Fn(45)0 1676 y Fm(14)66 b(Error)24 b(Handling)7 b Fb(:)12 |
3631 |
b(:)e(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g |
3632 |
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)30 |
3633 |
b Fm(47)0 1816 y(15)66 b(Pitfalls)11 b Fb(:)h(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g |
3634 |
(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g |
3635 |
(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)34 |
3636 |
b Fm(48)0 1956 y(Index)7 b Fb(:)12 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h |
3637 |
(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f |
3638 |
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g |
3639 |
(:)g(:)h(:)f(:)30 b Fm(50)p eop |
3640 |
%%Trailer |
3641 |
end |
3642 |
userdict /end-hook known{end-hook}if |
3643 |
%%EOF |