blob: 6cf9e694f30f1efca9bac19465b2bcb74f95ae78 [file] [log] [blame]
%!PS-Adobe-2.0
%%Creator: dvipsk 5.55a Copyright 1986, 1994 Radical Eye Software
%%Title: glxspec.dvi
%%Pages: 27
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: whaeberli
%%EndComments
%DVIPSCommandLine: dvips glxspec
%DVIPSParameters: dpi=300, compressed, comments removed
%DVIPSSource: TeX output 1997.07.09:1335
%%BeginProcSet: texc.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N
/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id
gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp
add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add
/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{
dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1
adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2
idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string
putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval
adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg}
{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{
adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2
chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{]
}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
%%BeginFont: whaeberli
/F_whaeberli 10 dict def
F_whaeberli begin
/FontType 3 def
/FontMatrix [0.001 0 0 0.001 0 0] def
/FontBBox [0 -319 777 703] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 32 /space put
Encoding 33 /exclam put
Encoding 34 /quotedbl put
Encoding 35 /numbersign put
Encoding 36 /dollar put
Encoding 37 /percent put
Encoding 38 /ampersand put
Encoding 39 /quoteright put
Encoding 40 /parenleft put
Encoding 41 /parenright put
Encoding 42 /asterisk put
Encoding 43 /plus put
Encoding 44 /comma put
Encoding 45 /hyphen put
Encoding 46 /period put
Encoding 47 /slash put
Encoding 48 /zero put
Encoding 49 /one put
Encoding 50 /two put
Encoding 51 /three put
Encoding 52 /four put
Encoding 53 /five put
Encoding 54 /six put
Encoding 55 /seven put
Encoding 56 /eight put
Encoding 57 /nine put
Encoding 58 /colon put
Encoding 59 /semicolon put
Encoding 60 /less put
Encoding 61 /equal put
Encoding 62 /greater put
Encoding 63 /question put
Encoding 64 /at put
Encoding 65 /A put
Encoding 66 /B put
Encoding 67 /C put
Encoding 68 /D put
Encoding 69 /E put
Encoding 70 /F put
Encoding 71 /G put
Encoding 72 /H put
Encoding 73 /I put
Encoding 74 /J put
Encoding 75 /K put
Encoding 76 /L put
Encoding 77 /M put
Encoding 78 /N put
Encoding 79 /O put
Encoding 80 /P put
Encoding 81 /Q put
Encoding 82 /R put
Encoding 83 /S put
Encoding 84 /T put
Encoding 85 /U put
Encoding 86 /V put
Encoding 87 /W put
Encoding 88 /X put
Encoding 89 /Y put
Encoding 90 /Z put
Encoding 91 /bracketleft put
Encoding 92 /backslash put
Encoding 93 /bracketright put
Encoding 94 /asciicircum put
Encoding 95 /underscore put
Encoding 96 /quoteleft put
Encoding 97 /a put
Encoding 98 /b put
Encoding 99 /c put
Encoding 100 /d put
Encoding 101 /e put
Encoding 102 /f put
Encoding 103 /g put
Encoding 104 /h put
Encoding 105 /i put
Encoding 106 /j put
Encoding 107 /k put
Encoding 108 /l put
Encoding 109 /m put
Encoding 110 /n put
Encoding 111 /o put
Encoding 112 /p put
Encoding 113 /q put
Encoding 114 /r put
Encoding 115 /s put
Encoding 116 /t put
Encoding 117 /u put
Encoding 118 /v put
Encoding 119 /w put
Encoding 120 /x put
Encoding 121 /y put
Encoding 122 /z put
Encoding 123 /braceleft put
Encoding 124 /bar put
Encoding 125 /braceright put
Encoding 126 /asciitilde put
/CharProcs 96 dict def
CharProcs begin
/.notdef {} def
/space {
600 0 0 0 600 800 setcachedevice
} def
/exclam {
259 0 69 -14 321 624 setcachedevice
newpath
111 -14 moveto
156 13 lineto
157 79 lineto
105 101 lineto
69 48 lineto
75 12 lineto
closepath
147 143 moveto
180 170 lineto
321 611 lineto
287 624 lineto
251 570 lineto
124 158 lineto
closepath
fill
} def
/quotedbl {
304 0 161 483 377 681 setcachedevice
newpath
189 483 moveto
221 512 lineto
245 666 lineto
222 681 lineto
190 653 lineto
161 507 lineto
closepath
280 493 moveto
319 546 lineto
377 665 lineto
355 681 lineto
320 657 lineto
250 509 lineto
closepath
fill
} def
/numbersign {
515 0 103 70 533 587 setcachedevice
newpath
263 70 moveto
300 92 lineto
376 215 lineto
382 224 lineto
465 239 lineto
474 277 lineto
427 286 lineto
419 289 lineto
425 300 lineto
451 349 lineto
458 356 lineto
468 358 lineto
529 370 lineto
533 407 lineto
495 414 lineto
488 416 lineto
491 425 lineto
533 536 lineto
514 554 lineto
479 532 lineto
425 412 lineto
416 407 lineto
385 404 lineto
375 402 lineto
370 409 lineto
428 570 lineto
397 587 lineto
366 544 lineto
310 404 lineto
304 395 lineto
169 368 lineto
162 338 lineto
207 326 lineto
259 333 lineto
270 335 lineto
273 326 lineto
248 277 lineto
241 268 lineto
232 266 lineto
118 246 lineto
103 218 lineto
131 196 lineto
203 208 lineto
209 202 lineto
168 96 lineto
185 76 lineto
220 98 lineto
268 207 lineto
275 216 lineto
284 217 lineto
306 221 lineto
316 219 lineto
316 211 lineto
246 98 lineto
closepath
311 287 moveto
337 338 lineto
347 342 lineto
380 347 lineto
389 345 lineto
383 335 lineto
356 286 lineto
347 277 lineto
315 275 lineto
305 277 lineto
closepath
fill
} def
/dollar {
552 0 103 -28 562 625 setcachedevice
newpath
181 -28 moveto
219 -16 lineto
270 90 lineto
276 100 lineto
286 101 lineto
328 104 lineto
337 101 lineto
333 90 lineto
312 -8 lineto
336 -19 lineto
370 19 lineto
397 112 lineto
405 119 lineto
503 172 lineto
541 250 lineto
522 333 lineto
475 379 lineto
470 386 lineto
493 500 lineto
496 510 lineto
506 513 lineto
555 523 lineto
562 560 lineto
513 569 lineto
503 566 lineto
502 575 lineto
500 625 lineto
462 625 lineto
443 565 lineto
440 555 lineto
431 550 lineto
421 546 lineto
410 541 lineto
405 547 lineto
394 583 lineto
356 573 lineto
346 522 lineto
343 512 lineto
287 456 lineto
290 409 lineto
313 393 lineto
319 386 lineto
246 171 lineto
237 165 lineto
159 218 lineto
128 237 lineto
103 216 lineto
111 181 lineto
193 119 lineto
210 112 lineto
218 107 lineto
214 97 lineto
171 -13 lineto
closepath
298 158 moveto
301 168 lineto
364 351 lineto
367 361 lineto
377 365 lineto
402 352 lineto
403 344 lineto
355 167 lineto
349 160 lineto
307 156 lineto
closepath
418 184 moveto
421 194 lineto
446 298 lineto
448 308 lineto
456 312 lineto
464 308 lineto
484 245 lineto
457 199 lineto
426 184 lineto
closepath
405 418 moveto
396 421 lineto
387 425 lineto
386 435 lineto
392 469 lineto
394 479 lineto
405 485 lineto
426 493 lineto
432 490 lineto
430 479 lineto
420 425 lineto
414 414 lineto
closepath
fill
} def
/percent {
549 0 51 -96 613 643 setcachedevice
newpath
60 -96 moveto
97 -81 lineto
613 623 lineto
585 643 lineto
523 578 lineto
51 -61 lineto
closepath
378 63 moveto
461 86 lineto
517 142 lineto
516 192 lineto
512 200 lineto
504 204 lineto
512 214 lineto
512 250 lineto
462 244 lineto
372 173 lineto
338 107 lineto
360 68 lineto
closepath
398 122 moveto
404 131 lineto
435 165 lineto
444 172 lineto
453 171 lineto
459 164 lineto
462 156 lineto
455 145 lineto
406 119 lineto
closepath
208 333 moveto
292 351 lineto
346 407 lineto
340 465 lineto
336 472 lineto
343 479 lineto
359 515 lineto
307 537 lineto
215 509 lineto
149 446 lineto
137 386 lineto
180 340 lineto
closepath
215 393 moveto
194 409 lineto
224 455 lineto
254 472 lineto
265 474 lineto
268 469 lineto
281 435 lineto
289 430 lineto
292 421 lineto
287 412 lineto
225 389 lineto
closepath
fill
} def
/ampersand {
521 0 75 2 465 570 setcachedevice
newpath
444 2 moveto
454 4 lineto
463 13 lineto
465 50 lineto
365 150 lineto
364 158 lineto
391 203 lineto
372 223 lineto
342 209 lineto
335 201 lineto
327 203 lineto
295 284 lineto
294 293 lineto
408 433 lineto
433 526 lineto
402 570 lineto
343 565 lineto
270 495 lineto
228 384 lineto
224 296 lineto
105 158 lineto
75 78 lineto
92 34 lineto
157 17 lineto
259 61 lineto
305 96 lineto
312 104 lineto
321 101 lineto
434 2 lineto
closepath
134 90 moveto
182 178 lineto
238 237 lineto
248 240 lineto
251 231 lineto
283 160 lineto
288 152 lineto
281 143 lineto
186 81 lineto
143 75 lineto
134 79 lineto
closepath
286 377 moveto
316 469 lineto
363 518 lineto
372 518 lineto
375 508 lineto
344 428 lineto
300 374 lineto
294 365 lineto
285 367 lineto
closepath
fill
} def
/quoteright {
219 0 146 418 276 614 setcachedevice
newpath
158 418 moveto
195 435 lineto
276 589 lineto
253 614 lineto
221 587 lineto
146 432 lineto
closepath
fill
} def
/parenleft {
293 0 99 -59 366 689 setcachedevice
newpath
179 -59 moveto
209 -54 lineto
220 -17 lineto
164 79 lineto
161 229 lineto
222 444 lineto
309 597 lineto
366 666 lineto
353 689 lineto
314 675 lineto
215 552 lineto
126 333 lineto
99 136 lineto
127 4 lineto
closepath
fill
} def
/parenright {
321 0 117 -105 317 685 setcachedevice
newpath
140 -105 moveto
180 -71 lineto
272 93 lineto
314 268 lineto
317 460 lineto
270 626 lineto
225 685 lineto
195 679 lineto
189 642 lineto
247 513 lineto
264 316 lineto
221 109 lineto
138 -45 lineto
117 -93 lineto
closepath
fill
} def
/asterisk {
416 0 117 208 436 513 setcachedevice
newpath
173 208 moveto
217 238 lineto
239 264 lineto
246 266 lineto
249 256 lineto
279 209 lineto
316 224 lineto
315 261 lineto
296 305 lineto
292 314 lineto
302 319 lineto
426 361 lineto
436 400 lineto
398 404 lineto
346 386 lineto
334 384 lineto
337 393 lineto
395 499 lineto
363 513 lineto
276 397 lineto
270 388 lineto
262 386 lineto
258 395 lineto
228 465 lineto
189 455 lineto
193 398 lineto
207 361 lineto
211 354 lineto
206 347 lineto
123 317 lineto
117 289 lineto
151 275 lineto
172 282 lineto
183 286 lineto
187 280 lineto
179 273 lineto
154 225 lineto
closepath
fill
} def
/plus {
530 0 117 79 533 476 setcachedevice
newpath
286 79 moveto
313 112 lineto
347 259 lineto
354 266 lineto
364 268 lineto
510 282 lineto
533 317 lineto
503 335 lineto
377 324 lineto
366 324 lineto
365 333 lineto
379 476 lineto
342 476 lineto
318 397 lineto
307 335 lineto
303 324 lineto
293 324 lineto
136 321 lineto
117 287 lineto
147 268 lineto
281 268 lineto
289 263 lineto
289 254 lineto
259 90 lineto
closepath
fill
} def
/comma {
247 0 43 -111 201 107 setcachedevice
newpath
74 -108 moveto
140 -46 lineto
201 71 lineto
194 107 lineto
163 103 lineto
79 -41 lineto
43 -82 lineto
63 -111 lineto
closepath
fill
} def
/hyphen {
500 0 111 231 494 289 setcachedevice
newpath
389 231 moveto
481 233 lineto
494 270 lineto
429 286 lineto
129 289 lineto
111 254 lineto
141 238 lineto
closepath
fill
} def
/period {
210 0 68 20 164 108 setcachedevice
newpath
98 20 moveto
150 32 lineto
164 71 lineto
124 108 lineto
76 82 lineto
68 41 lineto
closepath
fill
} def
/slash {
512 0 51 -71 569 625 setcachedevice
newpath
70 -71 moveto
115 -43 lineto
303 185 lineto
569 588 lineto
564 625 lineto
525 614 lineto
210 145 lineto
51 -43 lineto
closepath
fill
} def
/zero {
524 0 107 43 545 603 setcachedevice
newpath
211 43 moveto
305 71 lineto
440 175 lineto
525 307 lineto
545 430 lineto
510 508 lineto
449 550 lineto
442 556 lineto
447 565 lineto
449 596 lineto
401 603 lineto
285 536 lineto
180 416 lineto
117 287 lineto
107 165 lineto
143 78 lineto
200 43 lineto
closepath
213 104 moveto
169 160 lineto
173 282 lineto
237 411 lineto
351 522 lineto
380 540 lineto
388 537 lineto
403 505 lineto
465 463 lineto
488 381 lineto
447 270 lineto
349 162 lineto
253 104 lineto
closepath
fill
} def
/one {
194 0 62 -7 238 584 setcachedevice
newpath
90 -4 moveto
118 25 lineto
223 448 lineto
238 572 lineto
214 584 lineto
184 558 lineto
93 133 lineto
62 10 lineto
71 -4 lineto
80 -7 lineto
closepath
fill
} def
/two {
505 0 142 -17 453 579 setcachedevice
newpath
183 -17 moveto
442 8 lineto
453 45 lineto
397 54 lineto
231 43 lineto
222 45 lineto
223 54 lineto
418 391 lineto
453 513 lineto
424 569 lineto
337 579 lineto
213 541 lineto
157 486 lineto
165 460 lineto
203 469 lineto
301 518 lineto
392 518 lineto
383 449 lineto
255 203 lineto
142 14 lineto
164 -14 lineto
closepath
fill
} def
/three {
460 0 81 2 475 582 setcachedevice
newpath
103 2 moveto
312 70 lineto
401 137 lineto
444 224 lineto
430 321 lineto
411 384 lineto
475 488 lineto
465 544 lineto
379 582 lineto
234 572 lineto
166 532 lineto
158 495 lineto
195 493 lineto
276 526 lineto
396 515 lineto
413 508 lineto
420 501 lineto
420 490 lineto
352 377 lineto
368 312 lineto
387 228 lineto
344 152 lineto
247 97 lineto
91 48 lineto
81 18 lineto
closepath
fill
} def
/four {
523 0 113 7 575 587 setcachedevice
newpath
363 7 moveto
398 25 lineto
575 564 lineto
550 584 lineto
519 555 lineto
440 312 lineto
430 305 lineto
181 277 lineto
173 282 lineto
179 291 lineto
321 566 lineto
305 587 lineto
268 569 lineto
113 266 lineto
124 231 lineto
234 224 lineto
402 246 lineto
412 246 lineto
416 239 lineto
346 28 lineto
347 17 lineto
354 10 lineto
closepath
fill
} def
/five {
544 0 67 -12 602 606 setcachedevice
newpath
152 -12 moveto
266 -4 lineto
375 48 lineto
442 136 lineto
452 228 lineto
406 298 lineto
276 356 lineto
216 363 lineto
206 363 lineto
206 372 lineto
263 544 lineto
273 549 lineto
583 555 lineto
602 592 lineto
597 600 lineto
497 606 lineto
209 601 lineto
197 564 lineto
203 527 lineto
140 324 lineto
180 303 lineto
271 296 lineto
373 246 lineto
398 185 lineto
362 107 lineto
288 57 lineto
173 41 lineto
93 71 lineto
67 39 lineto
115 -2 lineto
closepath
fill
} def
/six {
406 0 100 39 396 620 setcachedevice
newpath
184 39 moveto
256 59 lineto
355 153 lineto
396 252 lineto
382 340 lineto
315 375 lineto
234 363 lineto
224 361 lineto
214 356 lineto
210 361 lineto
214 370 lineto
312 521 lineto
396 593 lineto
391 620 lineto
341 611 lineto
243 517 lineto
142 344 lineto
100 201 lineto
113 93 lineto
165 41 lineto
closepath
186 98 moveto
155 167 lineto
173 270 lineto
261 317 lineto
321 310 lineto
340 248 lineto
295 162 lineto
216 97 lineto
closepath
fill
} def
/seven {
554 0 176 32 610 620 setcachedevice
newpath
235 32 moveto
273 46 lineto
444 310 lineto
454 314 lineto
513 308 lineto
532 335 lineto
498 363 lineto
489 367 lineto
483 370 lineto
489 381 lineto
610 579 lineto
589 620 lineto
413 611 lineto
184 591 lineto
176 583 lineto
178 546 lineto
437 556 lineto
541 569 lineto
546 564 lineto
541 555 lineto
430 384 lineto
421 379 lineto
339 375 lineto
322 340 lineto
366 324 lineto
377 324 lineto
387 324 lineto
384 314 lineto
224 57 lineto
closepath
fill
} def
/eight {
541 0 86 2 571 629 setcachedevice
newpath
210 2 moveto
335 21 lineto
450 93 lineto
517 181 lineto
524 252 lineto
449 342 lineto
445 347 lineto
453 354 lineto
542 425 lineto
571 493 lineto
537 578 lineto
500 559 lineto
513 474 lineto
458 418 lineto
347 368 lineto
267 368 lineto
241 393 lineto
260 453 lineto
351 537 lineto
453 574 lineto
490 597 lineto
477 629 lineto
374 609 lineto
255 524 lineto
188 423 lineto
190 354 lineto
250 312 lineto
256 305 lineto
247 300 lineto
141 217 lineto
86 135 lineto
92 57 lineto
160 8 lineto
closepath
216 59 moveto
145 86 lineto
149 145 lineto
218 221 lineto
350 284 lineto
402 293 lineto
409 289 lineto
470 223 lineto
448 164 lineto
361 90 lineto
226 57 lineto
closepath
fill
} def
/nine {
484 0 140 -54 477 634 setcachedevice
newpath
387 -54 moveto
418 -27 lineto
460 382 lineto
421 405 lineto
245 344 lineto
195 367 lineto
205 426 lineto
278 513 lineto
385 574 lineto
468 583 lineto
477 592 lineto
475 629 lineto
407 634 lineto
295 587 lineto
191 499 lineto
140 402 lineto
144 333 lineto
194 291 lineto
286 298 lineto
389 338 lineto
400 344 lineto
405 340 lineto
407 330 lineto
363 -18 lineto
377 -52 lineto
closepath
fill
} def
/colon {
208 0 66 7 220 379 setcachedevice
newpath
79 7 moveto
140 14 lineto
160 63 lineto
170 122 lineto
132 126 lineto
74 70 lineto
66 20 lineto
closepath
148 275 moveto
208 301 lineto
220 363 lineto
175 379 lineto
128 333 lineto
130 282 lineto
closepath
fill
} def
/semicolon {
254 0 85 -61 227 360 setcachedevice
newpath
119 -61 moveto
175 -6 lineto
212 92 lineto
165 135 lineto
116 115 lineto
85 57 lineto
120 30 lineto
131 32 lineto
135 26 lineto
131 16 lineto
93 -37 lineto
closepath
150 246 moveto
202 261 lineto
227 307 lineto
214 354 lineto
167 360 lineto
125 324 lineto
120 266 lineto
closepath
fill
} def
/less {
474 0 114 -46 530 603 setcachedevice
newpath
377 -46 moveto
407 -35 lineto
410 3 lineto
265 209 lineto
203 268 lineto
197 275 lineto
201 284 lineto
528 570 lineto
530 600 lineto
492 603 lineto
174 326 lineto
114 273 lineto
130 244 lineto
244 144 lineto
closepath
fill
} def
/equal {
451 0 133 225 467 418 setcachedevice
newpath
162 225 moveto
410 252 lineto
416 289 lineto
286 291 lineto
161 273 lineto
147 237 lineto
152 229 lineto
closepath
396 351 moveto
456 358 lineto
464 367 lineto
467 388 lineto
462 395 lineto
209 418 lineto
146 405 lineto
133 368 lineto
178 358 lineto
closepath
fill
} def
/greater {
508 0 54 -50 508 621 setcachedevice
newpath
76 -50 moveto
294 108 lineto
508 300 lineto
501 335 lineto
243 621 lineto
204 614 lineto
201 575 lineto
439 314 lineto
443 305 lineto
435 298 lineto
91 14 lineto
54 -25 lineto
closepath
fill
} def
/question {
426 0 156 19 467 587 setcachedevice
newpath
225 19 moveto
263 41 lineto
273 46 lineto
301 59 lineto
304 97 lineto
257 127 lineto
196 107 lineto
188 68 lineto
207 26 lineto
closepath
272 197 moveto
304 223 lineto
339 324 lineto
456 449 lineto
467 529 lineto
414 582 lineto
271 587 lineto
192 546 lineto
156 481 lineto
179 455 lineto
208 469 lineto
234 515 lineto
306 532 lineto
395 521 lineto
414 490 lineto
356 411 lineto
273 317 lineto
252 215 lineto
closepath
fill
} def
/at {
624 0 117 17 603 600 setcachedevice
newpath
353 17 moveto
468 46 lineto
551 103 lineto
603 199 lineto
589 231 lineto
553 211 lineto
503 126 lineto
403 78 lineto
302 83 lineto
219 143 lineto
175 246 lineto
189 370 lineto
256 483 lineto
343 533 lineto
445 537 lineto
505 495 lineto
523 400 lineto
487 287 lineto
464 263 lineto
454 259 lineto
450 268 lineto
448 368 lineto
456 375 lineto
474 411 lineto
431 428 lineto
329 402 lineto
241 330 lineto
207 273 lineto
224 222 lineto
279 208 lineto
370 246 lineto
379 254 lineto
389 261 lineto
393 254 lineto
412 210 lineto
470 209 lineto
536 270 lineto
575 368 lineto
571 488 lineto
528 560 lineto
430 600 lineto
317 580 lineto
215 512 lineto
153 419 lineto
117 287 lineto
137 163 lineto
201 72 lineto
304 24 lineto
closepath
265 277 moveto
337 347 lineto
389 368 lineto
397 365 lineto
392 356 lineto
326 279 lineto
275 264 lineto
265 268 lineto
closepath
fill
} def
/A {
790 0 59 -48 723 625 setcachedevice
newpath
693 -48 moveto
713 -46 lineto
722 -39 lineto
723 29 lineto
583 524 lineto
554 625 lineto
515 620 lineto
308 337 lineto
300 330 lineto
195 319 lineto
186 282 lineto
244 273 lineto
254 270 lineto
252 261 lineto
59 -1 lineto
79 -28 lineto
122 4 lineto
320 268 lineto
328 275 lineto
597 272 lineto
601 264 lineto
684 -43 lineto
closepath
555 330 moveto
376 333 lineto
373 337 lineto
380 347 lineto
506 523 lineto
514 532 lineto
519 527 lineto
579 342 lineto
582 331 lineto
575 328 lineto
closepath
fill
} def
/B {
606 0 76 -28 590 629 setcachedevice
newpath
193 -28 moveto
349 -14 lineto
480 41 lineto
566 130 lineto
590 222 lineto
557 300 lineto
474 344 lineto
406 356 lineto
396 356 lineto
396 363 lineto
406 370 lineto
485 451 lineto
502 531 lineto
457 588 lineto
317 626 lineto
204 629 lineto
181 607 lineto
186 451 lineto
154 216 lineto
84 35 lineto
76 0 lineto
105 -19 lineto
closepath
194 28 moveto
156 35 lineto
150 41 lineto
219 256 lineto
221 266 lineto
226 275 lineto
308 301 lineto
469 284 lineto
524 238 lineto
529 179 lineto
479 104 lineto
372 46 lineto
215 26 lineto
closepath
236 351 moveto
246 564 lineto
250 572 lineto
259 574 lineto
404 547 lineto
446 512 lineto
424 453 lineto
313 372 lineto
242 340 lineto
234 340 lineto
closepath
fill
} def
/C {
609 0 107 -23 580 593 setcachedevice
newpath
299 -23 moveto
434 8 lineto
552 93 lineto
575 129 lineto
548 150 lineto
409 54 lineto
316 32 lineto
228 68 lineto
171 165 lineto
171 284 lineto
218 393 lineto
310 495 lineto
409 540 lineto
500 535 lineto
552 497 lineto
580 512 lineto
572 559 lineto
517 592 lineto
405 593 lineto
304 551 lineto
195 451 lineto
123 316 lineto
107 172 lineto
155 59 lineto
243 -9 lineto
closepath
fill
} def
/D {
736 0 53 -43 741 625 setcachedevice
newpath
79 -43 moveto
265 -35 lineto
442 14 lineto
587 98 lineto
689 206 lineto
741 326 lineto
738 425 lineto
671 517 lineto
536 586 lineto
363 625 lineto
206 619 lineto
180 584 lineto
207 564 lineto
249 569 lineto
258 568 lineto
258 558 lineto
205 237 lineto
136 23 lineto
133 13 lineto
123 9 lineto
62 4 lineto
53 -32 lineto
closepath
193 23 moveto
275 289 lineto
316 558 lineto
319 568 lineto
328 569 lineto
511 532 lineto
644 460 lineto
689 377 lineto
665 266 lineto
581 158 lineto
448 74 lineto
272 19 lineto
197 9 lineto
189 13 lineto
closepath
fill
} def
/E {
653 0 61 -43 699 624 setcachedevice
newpath
77 -43 moveto
460 -35 lineto
573 -37 lineto
592 -1 lineto
551 17 lineto
177 14 lineto
135 13 lineto
127 16 lineto
128 25 lineto
206 358 lineto
211 367 lineto
222 367 lineto
510 363 lineto
530 388 lineto
510 416 lineto
219 423 lineto
216 430 lineto
231 564 lineto
236 572 lineto
246 572 lineto
680 569 lineto
699 596 lineto
676 621 lineto
198 624 lineto
175 575 lineto
128 246 lineto
61 -20 lineto
closepath
fill
} def
/F {
636 0 49 -64 694 634 setcachedevice
newpath
75 -64 moveto
105 -35 lineto
201 358 lineto
208 363 lineto
509 368 lineto
534 400 lineto
504 421 lineto
224 421 lineto
214 423 lineto
216 435 lineto
235 569 lineto
240 578 lineto
251 578 lineto
653 572 lineto
692 583 lineto
694 620 lineto
565 634 lineto
214 625 lineto
180 601 lineto
155 407 lineto
49 -54 lineto
55 -61 lineto
closepath
fill
} def
/G {
627 0 113 -111 686 609 setcachedevice
newpath
435 -111 moveto
474 -103 lineto
528 123 lineto
545 275 lineto
509 282 lineto
491 233 lineto
459 57 lineto
455 48 lineto
445 46 lineto
291 46 lineto
208 92 lineto
164 186 lineto
179 298 lineto
245 400 lineto
375 490 lineto
530 546 lineto
675 560 lineto
686 597 lineto
609 609 lineto
442 577 lineto
273 490 lineto
167 386 lineto
113 268 lineto
114 137 lineto
171 41 lineto
273 -8 lineto
425 -12 lineto
435 -10 lineto
444 -12 lineto
443 -23 lineto
430 -104 lineto
closepath
fill
} def
/H {
631 0 107 -43 694 629 setcachedevice
newpath
128 -43 moveto
162 -17 lineto
238 314 lineto
241 324 lineto
252 328 lineto
576 337 lineto
583 333 lineto
581 324 lineto
513 -6 lineto
549 -12 lineto
582 76 lineto
694 616 lineto
687 624 lineto
657 624 lineto
649 615 lineto
598 409 lineto
596 398 lineto
587 395 lineto
264 381 lineto
254 384 lineto
254 393 lineto
273 619 lineto
239 629 lineto
217 584 lineto
196 389 lineto
193 379 lineto
182 379 lineto
133 365 lineto
134 328 lineto
173 324 lineto
183 323 lineto
184 312 lineto
107 -26 lineto
closepath
fill
} def
/I {
190 0 83 13 224 588 setcachedevice
newpath
108 13 moveto
138 43 lineto
218 469 lineto
224 582 lineto
188 588 lineto
168 541 lineto
119 209 lineto
83 23 lineto
89 16 lineto
closepath
fill
} def
/J {
587 0 84 28 650 634 setcachedevice
newpath
183 28 moveto
287 46 lineto
353 105 lineto
421 266 lineto
469 524 lineto
474 555 lineto
479 564 lineto
489 566 lineto
634 579 lineto
650 616 lineto
597 634 lineto
241 597 lineto
225 560 lineto
230 552 lineto
405 559 lineto
415 558 lineto
416 547 lineto
364 268 lineto
305 128 lineto
252 87 lineto
172 93 lineto
118 143 lineto
84 123 lineto
99 71 lineto
closepath
fill
} def
/K {
554 0 78 -32 583 621 setcachedevice
newpath
94 -32 moveto
128 -8 lineto
175 187 lineto
182 194 lineto
242 246 lineto
250 254 lineto
259 252 lineto
448 -26 lineto
478 -25 lineto
494 1 lineto
307 293 lineto
306 301 lineto
548 544 lineto
583 600 lineto
557 621 lineto
224 296 lineto
198 275 lineto
191 266 lineto
190 275 lineto
232 614 lineto
197 620 lineto
174 574 lineto
99 97 lineto
78 -24 lineto
closepath
fill
} def
/L {
534 0 93 -25 484 578 setcachedevice
newpath
120 -25 moveto
381 7 lineto
475 21 lineto
484 50 lineto
452 67 lineto
160 39 lineto
150 35 lineto
147 43 lineto
213 435 lineto
217 577 lineto
180 578 lineto
163 519 lineto
100 76 lineto
93 -3 lineto
closepath
fill
} def
/M {
589 0 78 -43 623 620 setcachedevice
newpath
488 -43 moveto
517 -32 lineto
613 421 lineto
623 603 lineto
592 620 lineto
543 574 lineto
364 266 lineto
356 261 lineto
354 270 lineto
280 572 lineto
253 609 lineto
209 580 lineto
93 170 lineto
78 7 lineto
110 -6 lineto
132 28 lineto
176 286 lineto
238 490 lineto
242 499 lineto
245 488 lineto
314 196 lineto
358 182 lineto
411 240 lineto
554 493 lineto
559 503 lineto
565 503 lineto
565 493 lineto
473 -32 lineto
closepath
fill
} def
/N {
492 0 81 -23 548 597 setcachedevice
newpath
102 -23 moveto
112 -19 lineto
137 13 lineto
206 405 lineto
209 446 lineto
213 456 lineto
216 449 lineto
323 150 lineto
369 -4 lineto
417 4 lineto
475 218 lineto
548 580 lineto
517 596 lineto
490 563 lineto
397 128 lineto
390 123 lineto
389 133 lineto
280 460 lineto
217 597 lineto
177 588 lineto
154 467 lineto
100 97 lineto
81 -4 lineto
closepath
fill
} def
/O {
590 0 111 2 592 583 setcachedevice
newpath
276 2 moveto
369 9 lineto
465 64 lineto
555 180 lineto
592 312 lineto
588 462 lineto
536 550 lineto
456 583 lineto
365 565 lineto
254 490 lineto
167 386 lineto
111 256 lineto
121 128 lineto
194 30 lineto
closepath
283 61 moveto
197 118 lineto
165 218 lineto
187 310 lineto
257 423 lineto
354 504 lineto
437 527 lineto
504 495 lineto
540 395 lineto
522 241 lineto
465 135 lineto
386 71 lineto
292 59 lineto
closepath
fill
} def
/P {
683 0 124 -54 715 632 setcachedevice
newpath
146 -54 moveto
179 -27 lineto
293 425 lineto
316 570 lineto
318 580 lineto
327 583 lineto
537 559 lineto
654 495 lineto
655 456 lineto
584 402 lineto
275 282 lineto
273 245 lineto
282 241 lineto
511 312 lineto
661 389 lineto
715 460 lineto
705 527 lineto
614 593 lineto
453 632 lineto
226 632 lineto
181 606 lineto
187 572 lineto
249 578 lineto
258 578 lineto
259 569 lineto
190 216 lineto
124 -37 lineto
closepath
fill
} def
/Q {
695 0 107 -64 646 566 setcachedevice
newpath
251 -64 moveto
376 -52 lineto
491 14 lineto
518 37 lineto
526 39 lineto
611 -2 lineto
640 26 lineto
593 68 lineto
569 85 lineto
563 90 lineto
569 100 lineto
630 239 lineto
646 382 lineto
583 550 lineto
498 566 lineto
362 538 lineto
248 469 lineto
165 377 lineto
107 237 lineto
108 98 lineto
158 -2 lineto
closepath
271 -7 moveto
192 57 lineto
159 156 lineto
170 268 lineto
234 384 lineto
319 460 lineto
453 509 lineto
536 483 lineto
585 393 lineto
580 261 lineto
527 130 lineto
520 122 lineto
513 125 lineto
414 196 lineto
384 184 lineto
385 145 lineto
474 75 lineto
478 68 lineto
470 61 lineto
363 -2 lineto
closepath
fill
} def
/R {
676 0 140 -59 645 625 setcachedevice
newpath
152 -59 moveto
182 -54 lineto
242 149 lineto
299 521 lineto
302 551 lineto
302 561 lineto
310 566 lineto
495 536 lineto
583 467 lineto
583 418 lineto
518 356 lineto
354 291 lineto
273 264 lineto
276 229 lineto
353 162 lineto
521 0 lineto
579 -57 lineto
607 -41 lineto
597 3 lineto
428 179 lineto
368 224 lineto
361 230 lineto
364 238 lineto
374 241 lineto
557 321 lineto
627 393 lineto
645 453 lineto
613 531 lineto
506 592 lineto
300 625 lineto
196 616 lineto
178 591 lineto
200 566 lineto
231 569 lineto
241 569 lineto
246 563 lineto
192 180 lineto
140 -45 lineto
closepath
fill
} def
/S {
559 0 101 -7 526 614 setcachedevice
newpath
253 -7 moveto
388 -2 lineto
482 59 lineto
526 135 lineto
522 233 lineto
450 319 lineto
216 462 lineto
214 500 lineto
278 542 lineto
393 555 lineto
489 536 lineto
514 569 lineto
479 597 lineto
350 614 lineto
225 577 lineto
162 513 lineto
155 453 lineto
206 388 lineto
421 264 lineto
470 196 lineto
462 116 lineto
395 56 lineto
280 46 lineto
172 86 lineto
138 152 lineto
101 134 lineto
122 50 lineto
closepath
fill
} def
/T {
705 0 160 -30 755 578 setcachedevice
newpath
398 -30 moveto
432 -4 lineto
497 356 lineto
505 488 lineto
509 500 lineto
518 501 lineto
737 527 lineto
755 554 lineto
732 578 lineto
506 564 lineto
469 560 lineto
314 546 lineto
177 537 lineto
160 501 lineto
203 486 lineto
444 497 lineto
451 492 lineto
401 109 lineto
378 -13 lineto
closepath
fill
} def
/U {
501 0 126 2 538 643 setcachedevice
newpath
262 2 moveto
342 32 lineto
436 158 lineto
509 340 lineto
538 536 lineto
527 643 lineto
489 637 lineto
481 558 lineto
459 363 lineto
379 162 lineto
300 68 lineto
261 63 lineto
211 128 lineto
183 282 lineto
209 508 lineto
209 555 lineto
170 549 lineto
126 333 lineto
142 146 lineto
195 35 lineto
closepath
fill
} def
/V {
573 0 180 -12 639 652 setcachedevice
newpath
310 -12 moveto
350 1 lineto
500 305 lineto
639 634 lineto
610 652 lineto
578 611 lineto
342 90 lineto
335 87 lineto
334 97 lineto
263 503 lineto
216 615 lineto
180 600 lineto
188 532 lineto
251 257 lineto
295 -2 lineto
closepath
fill
} def
/W {
724 0 170 -48 777 629 setcachedevice
newpath
250 -48 moveto
290 -39 lineto
476 240 lineto
482 245 lineto
487 236 lineto
543 8 lineto
581 -12 lineto
618 6 lineto
677 157 lineto
769 528 lineto
777 629 lineto
740 629 lineto
718 560 lineto
639 218 lineto
597 85 lineto
592 75 lineto
585 71 lineto
583 82 lineto
522 316 lineto
484 321 lineto
396 217 lineto
282 37 lineto
275 32 lineto
274 43 lineto
231 426 lineto
222 595 lineto
185 597 lineto
170 550 lineto
206 82 lineto
235 -39 lineto
closepath
fill
} def
/X {
658 0 96 -7 651 620 setcachedevice
newpath
109 -7 moveto
147 4 lineto
379 254 lineto
388 263 lineto
395 259 lineto
569 -6 lineto
598 3 lineto
603 41 lineto
438 305 lineto
433 314 lineto
440 323 lineto
646 580 lineto
651 619 lineto
615 620 lineto
409 363 lineto
400 360 lineto
395 368 lineto
208 614 lineto
180 601 lineto
178 564 lineto
354 319 lineto
359 310 lineto
354 301 lineto
96 14 lineto
closepath
fill
} def
/Y {
669 0 177 -75 730 632 setcachedevice
newpath
298 -75 moveto
335 -54 lineto
415 252 lineto
730 609 lineto
717 632 lineto
678 615 lineto
393 303 lineto
385 294 lineto
380 296 lineto
294 500 lineto
213 602 lineto
177 586 lineto
189 541 lineto
282 388 lineto
340 194 lineto
285 -61 lineto
closepath
fill
} def
/Z {
618 0 75 -28 631 588 setcachedevice
newpath
103 -26 moveto
404 -18 lineto
546 -20 lineto
555 -13 lineto
550 21 lineto
274 39 lineto
192 35 lineto
182 37 lineto
188 45 lineto
416 282 lineto
631 559 lineto
614 587 lineto
201 588 lineto
171 559 lineto
182 535 lineto
534 532 lineto
544 532 lineto
543 523 lineto
268 192 lineto
75 1 lineto
93 -28 lineto
closepath
fill
} def
/bracketleft {
330 0 54 -122 370 676 setcachedevice
newpath
125 -122 moveto
239 -104 lineto
254 -75 lineto
251 -67 lineto
204 -59 lineto
121 -64 lineto
114 -57 lineto
116 -48 lineto
236 583 lineto
239 603 lineto
243 612 lineto
253 614 lineto
358 633 lineto
370 670 lineto
322 676 lineto
208 661 lineto
182 615 lineto
78 24 lineto
54 -98 lineto
95 -119 lineto
closepath
fill
} def
/backslash {
602 0 188 -79 528 657 setcachedevice
newpath
509 -79 moveto
519 -76 lineto
527 -70 lineto
528 -20 lineto
266 592 lineto
226 657 lineto
188 643 lineto
194 596 lineto
383 167 lineto
489 -75 lineto
closepath
fill
} def
/bracketright {
349 0 62 -127 412 703 setcachedevice
newpath
90 -127 moveto
255 -100 lineto
278 -52 lineto
317 254 lineto
412 680 lineto
384 703 lineto
198 693 lineto
191 656 lineto
331 643 lineto
342 644 lineto
347 639 lineto
345 629 lineto
240 141 lineto
221 -43 lineto
219 -52 lineto
209 -57 lineto
64 -82 lineto
62 -119 lineto
closepath
fill
} def
/asciicircum {
457 0 131 330 474 547 setcachedevice
newpath
159 330 moveto
259 405 lineto
319 474 lineto
326 476 lineto
331 469 lineto
443 356 lineto
474 386 lineto
394 488 lineto
334 547 lineto
282 510 lineto
187 416 lineto
131 360 lineto
149 330 lineto
closepath
fill
} def
/underscore {
780 0 60 -59 716 14 setcachedevice
newpath
489 -59 moveto
696 -54 lineto
716 -19 lineto
686 -2 lineto
98 14 lineto
60 4 lineto
60 -32 lineto
261 -52 lineto
closepath
fill
} def
/quoteleft {
284 0 186 486 325 674 setcachedevice
newpath
287 486 moveto
325 504 lineto
313 560 lineto
228 674 lineto
198 671 lineto
186 633 lineto
265 517 lineto
closepath
fill
} def
/a {
564 0 71 -59 511 442 setcachedevice
newpath
237 -59 moveto
466 -41 lineto
501 -14 lineto
511 208 lineto
481 330 lineto
410 404 lineto
301 442 lineto
207 425 lineto
180 395 lineto
194 372 lineto
307 384 lineto
406 328 lineto
446 244 lineto
447 233 lineto
445 224 lineto
437 228 lineto
310 252 lineto
195 225 lineto
98 150 lineto
71 59 lineto
117 -21 lineto
217 -57 lineto
closepath
233 -2 moveto
153 28 lineto
130 90 lineto
163 144 lineto
252 189 lineto
363 189 lineto
440 153 lineto
448 97 lineto
442 27 lineto
439 17 lineto
430 10 lineto
253 -4 lineto
closepath
fill
} def
/b {
570 0 82 -25 546 616 setcachedevice
newpath
103 -25 moveto
136 0 lineto
145 2 lineto
324 -19 lineto
428 6 lineto
511 79 lineto
546 180 lineto
523 252 lineto
451 296 lineto
299 301 lineto
196 270 lineto
188 270 lineto
188 280 lineto
230 616 lineto
193 616 lineto
165 527 lineto
82 -8 lineto
closepath
267 39 moveto
160 59 lineto
152 64 lineto
152 74 lineto
177 199 lineto
186 207 lineto
289 245 lineto
432 239 lineto
484 201 lineto
479 130 lineto
423 61 lineto
329 35 lineto
closepath
fill
} def
/c {
530 0 96 -28 500 435 setcachedevice
newpath
275 -28 moveto
420 -16 lineto
470 3 lineto
469 39 lineto
284 28 lineto
176 68 lineto
147 126 lineto
172 238 lineto
241 340 lineto
333 379 lineto
431 368 lineto
465 314 lineto
500 333 lineto
500 381 lineto
442 428 lineto
342 435 lineto
239 398 lineto
158 319 lineto
96 180 lineto
96 81 lineto
147 16 lineto
254 -25 lineto
closepath
fill
} def
/d {
586 0 87 -28 616 615 setcachedevice
newpath
322 -28 moveto
496 -14 lineto
529 14 lineto
524 71 lineto
616 601 lineto
583 615 lineto
558 580 lineto
513 300 lineto
510 289 lineto
503 289 lineto
406 331 lineto
262 328 lineto
160 284 lineto
100 204 lineto
87 114 lineto
128 28 lineto
212 -13 lineto
closepath
252 35 moveto
174 72 lineto
144 152 lineto
172 223 lineto
248 268 lineto
372 277 lineto
462 243 lineto
493 224 lineto
498 217 lineto
462 50 lineto
458 39 lineto
448 35 lineto
closepath
fill
} def
/e {
470 0 90 -12 424 409 setcachedevice
newpath
241 -12 moveto
345 8 lineto
424 72 lineto
419 108 lineto
381 97 lineto
295 46 lineto
214 50 lineto
159 100 lineto
147 158 lineto
153 165 lineto
278 197 lineto
370 259 lineto
391 321 lineto
351 395 lineto
284 409 lineto
195 365 lineto
109 246 lineto
90 134 lineto
128 37 lineto
201 -7 lineto
closepath
163 236 moveto
228 328 lineto
288 354 lineto
326 326 lineto
328 287 lineto
207 229 lineto
166 221 lineto
158 225 lineto
closepath
fill
} def
/f {
498 0 108 -30 534 587 setcachedevice
newpath
194 -30 moveto
228 -7 lineto
247 207 lineto
255 212 lineto
319 219 lineto
326 226 lineto
332 257 lineto
326 264 lineto
265 268 lineto
257 270 lineto
256 280 lineto
291 476 lineto
334 526 lineto
424 522 lineto
474 481 lineto
491 437 lineto
521 444 lineto
534 481 lineto
500 549 lineto
402 587 lineto
308 572 lineto
247 507 lineto
204 342 lineto
197 270 lineto
190 263 lineto
108 244 lineto
108 207 lineto
178 207 lineto
189 208 lineto
192 200 lineto
178 -21 lineto
closepath
fill
} def
/g {
528 0 22 -319 499 356 setcachedevice
newpath
234 -319 moveto
317 -307 lineto
384 -247 lineto
448 -98 lineto
499 180 lineto
496 317 lineto
410 356 lineto
295 337 lineto
179 268 lineto
103 172 lineto
74 70 lineto
95 7 lineto
158 -12 lineto
272 17 lineto
374 89 lineto
432 158 lineto
437 164 lineto
438 153 lineto
388 -112 lineto
326 -241 lineto
266 -264 lineto
42 -201 lineto
22 -236 lineto
114 -282 lineto
closepath
136 56 moveto
145 136 lineto
201 217 lineto
295 280 lineto
398 296 lineto
425 289 lineto
433 284 lineto
432 273 lineto
354 141 lineto
254 67 lineto
160 43 lineto
closepath
fill
} def
/h {
505 0 91 -41 485 615 setcachedevice
newpath
404 -41 moveto
439 -14 lineto
485 201 lineto
468 317 lineto
414 367 lineto
341 351 lineto
213 237 lineto
192 209 lineto
184 204 lineto
182 215 lineto
232 606 lineto
197 615 lineto
175 579 lineto
103 93 lineto
91 1 lineto
114 -12 lineto
125 -8 lineto
159 43 lineto
247 199 lineto
345 293 lineto
395 308 lineto
425 241 lineto
410 87 lineto
384 -24 lineto
closepath
fill
} def
/i {
295 0 134 -18 315 523 setcachedevice
newpath
157 -18 moveto
188 8 lineto
230 215 lineto
226 363 lineto
188 360 lineto
173 291 lineto
157 97 lineto
134 -4 lineto
closepath
284 389 moveto
315 400 lineto
315 437 lineto
191 523 lineto
159 497 lineto
191 453 lineto
closepath
fill
} def
/j {
406 0 38 -188 428 527 setcachedevice
newpath
128 -188 moveto
189 -172 lineto
260 -86 lineto
319 86 lineto
341 351 lineto
304 356 lineto
295 349 lineto
254 43 lineto
194 -97 lineto
151 -134 lineto
94 -101 lineto
61 -86 lineto
38 -108 lineto
61 -156 lineto
closepath
394 391 moveto
428 414 lineto
413 446 lineto
296 527 lineto
262 504 lineto
277 472 lineto
closepath
fill
} def
/k {
434 0 81 -39 384 609 setcachedevice
newpath
106 -39 moveto
135 -8 lineto
166 115 lineto
217 160 lineto
227 165 lineto
234 159 lineto
314 34 lineto
339 -4 lineto
376 12 lineto
357 85 lineto
279 202 lineto
273 209 lineto
279 217 lineto
384 321 lineto
376 347 lineto
337 340 lineto
194 208 lineto
187 200 lineto
179 202 lineto
179 211 lineto
224 601 lineto
217 609 lineto
180 600 lineto
145 393 lineto
89 32 lineto
81 -26 lineto
closepath
fill
} def
/l {
190 0 79 -2 226 592 setcachedevice
newpath
105 -2 moveto
134 25 lineto
226 577 lineto
205 592 lineto
173 569 lineto
79 28 lineto
96 -2 lineto
closepath
fill
} def
/m {
661 0 112 -41 613 382 setcachedevice
newpath
557 -39 moveto
566 -41 lineto
576 -37 lineto
600 -1 lineto
613 210 lineto
570 317 lineto
526 333 lineto
472 293 lineto
423 218 lineto
417 209 lineto
412 209 lineto
412 218 lineto
375 338 lineto
327 367 lineto
270 340 lineto
193 241 lineto
189 240 lineto
187 250 lineto
176 379 lineto
139 382 lineto
127 335 lineto
121 92 lineto
112 10 lineto
147 1 lineto
156 7 lineto
228 200 lineto
308 307 lineto
317 308 lineto
325 303 lineto
355 193 lineto
347 -8 lineto
373 -16 lineto
400 14 lineto
470 197 lineto
512 263 lineto
519 272 lineto
527 268 lineto
558 157 lineto
544 -25 lineto
closepath
fill
} def
/n {
484 0 107 -64 446 423 setcachedevice
newpath
122 -64 moveto
142 -61 lineto
152 -54 lineto
262 206 lineto
349 323 lineto
358 324 lineto
365 317 lineto
388 164 lineto
369 -18 lineto
404 -28 lineto
427 17 lineto
446 222 lineto
414 354 lineto
368 384 lineto
309 356 lineto
210 219 lineto
203 210 lineto
196 215 lineto
197 224 lineto
194 405 lineto
163 423 lineto
138 391 lineto
136 160 lineto
107 -54 lineto
closepath
fill
} def
/o {
551 0 98 23 534 405 setcachedevice
newpath
245 23 moveto
349 35 lineto
465 104 lineto
530 195 lineto
534 286 lineto
467 388 lineto
392 405 lineto
246 365 lineto
138 280 lineto
98 193 lineto
111 105 lineto
179 41 lineto
closepath
237 83 moveto
167 130 lineto
155 197 lineto
201 272 lineto
308 333 lineto
411 347 lineto
475 270 lineto
473 200 lineto
418 129 lineto
318 81 lineto
closepath
fill
} def
/p {
530 0 0 -317 497 356 setcachedevice
newpath
21 -317 moveto
53 -289 lineto
128 -32 lineto
133 -23 lineto
142 -17 lineto
320 -4 lineto
432 41 lineto
494 120 lineto
497 201 lineto
435 282 lineto
306 342 lineto
198 356 lineto
148 335 lineto
44 -138 lineto
0 -301 lineto
closepath
160 39 moveto
150 39 lineto
147 46 lineto
189 286 lineto
191 296 lineto
199 301 lineto
333 270 lineto
425 207 lineto
444 143 lineto
408 87 lineto
296 45 lineto
closepath
fill
} def
/q {
476 0 83 -291 468 377 setcachedevice
newpath
334 -291 moveto
363 -261 lineto
468 368 lineto
392 377 lineto
278 342 lineto
153 245 lineto
83 119 lineto
87 21 lineto
145 -24 lineto
236 -17 lineto
340 48 lineto
355 64 lineto
363 71 lineto
367 68 lineto
308 -282 lineto
closepath
174 28 moveto
136 67 lineto
151 148 lineto
235 254 lineto
344 312 lineto
397 319 lineto
406 317 lineto
407 307 lineto
351 143 lineto
275 59 lineto
194 26 lineto
closepath
fill
} def
/r {
468 0 71 0 463 425 setcachedevice
newpath
87 0 moveto
122 25 lineto
179 294 lineto
267 338 lineto
347 333 lineto
402 282 lineto
428 256 lineto
463 279 lineto
427 354 lineto
342 395 lineto
239 388 lineto
199 370 lineto
189 370 lineto
189 379 lineto
182 425 lineto
152 421 lineto
128 340 lineto
71 8 lineto
closepath
fill
} def
/s {
520 0 53 -64 470 405 setcachedevice
newpath
142 -64 moveto
309 -52 lineto
421 -7 lineto
470 52 lineto
469 109 lineto
386 185 lineto
248 268 lineto
245 277 lineto
248 286 lineto
380 347 lineto
449 347 lineto
461 384 lineto
421 405 lineto
306 377 lineto
202 310 lineto
185 261 lineto
230 202 lineto
408 93 lineto
415 57 lineto
349 14 lineto
214 -9 lineto
67 4 lineto
53 -32 lineto
closepath
fill
} def
/t {
485 0 122 -9 498 497 setcachedevice
newpath
300 -9 moveto
328 20 lineto
361 300 lineto
363 310 lineto
373 312 lineto
488 328 lineto
498 365 lineto
451 375 lineto
378 368 lineto
370 370 lineto
371 381 lineto
372 493 lineto
336 497 lineto
317 449 lineto
312 377 lineto
311 365 lineto
303 361 lineto
136 340 lineto
122 312 lineto
151 291 lineto
297 307 lineto
306 303 lineto
304 293 lineto
274 -2 lineto
closepath
fill
} def
/u {
525 0 106 -23 517 435 setcachedevice
newpath
428 -23 moveto
464 -1 lineto
517 428 lineto
482 435 lineto
461 388 lineto
434 202 lineto
427 193 lineto
277 70 lineto
217 54 lineto
178 92 lineto
164 218 lineto
194 416 lineto
170 428 lineto
140 400 lineto
106 153 lineto
136 43 lineto
185 0 lineto
267 8 lineto
379 85 lineto
414 115 lineto
421 119 lineto
422 109 lineto
414 -10 lineto
closepath
fill
} def
/v {
433 0 135 13 461 462 setcachedevice
newpath
219 13 moveto
258 23 lineto
461 444 lineto
432 462 lineto
398 421 lineto
264 157 lineto
257 146 lineto
253 151 lineto
198 356 lineto
172 395 lineto
135 377 lineto
175 230 lineto
closepath
fill
} def
/w {
673 0 127 2 699 455 setcachedevice
newpath
448 2 moveto
496 18 lineto
699 432 lineto
674 455 lineto
637 414 lineto
483 108 lineto
478 98 lineto
474 107 lineto
437 338 lineto
403 365 lineto
358 333 lineto
257 126 lineto
252 115 lineto
245 119 lineto
169 368 lineto
132 361 lineto
127 312 lineto
219 19 lineto
259 20 lineto
317 127 lineto
383 266 lineto
388 275 lineto
395 275 lineto
395 264 lineto
433 13 lineto
closepath
fill
} def
/x {
494 0 64 2 453 414 setcachedevice
newpath
78 2 moveto
118 10 lineto
276 160 lineto
285 168 lineto
293 165 lineto
409 30 lineto
444 52 lineto
427 93 lineto
333 212 lineto
333 222 lineto
452 386 lineto
453 405 lineto
447 414 lineto
408 409 lineto
308 272 lineto
300 263 lineto
292 263 lineto
178 412 lineto
140 398 lineto
148 352 lineto
251 216 lineto
250 208 lineto
64 25 lineto
closepath
fill
} def
/y {
537 0 126 -268 546 381 setcachedevice
newpath
164 -268 moveto
201 -254 lineto
546 344 lineto
540 381 lineto
502 374 lineto
334 72 lineto
328 70 lineto
323 78 lineto
164 342 lineto
134 340 lineto
126 333 lineto
127 294 lineto
291 8 lineto
289 0 lineto
154 -252 lineto
closepath
fill
} def
/z {
595 0 129 -14 576 386 setcachedevice
newpath
149 -14 moveto
441 -7 lineto
532 -8 lineto
540 28 lineto
404 52 lineto
278 48 lineto
268 48 lineto
267 56 lineto
275 64 lineto
574 331 lineto
576 368 lineto
499 381 lineto
159 386 lineto
131 356 lineto
144 333 lineto
486 328 lineto
495 326 lineto
489 319 lineto
211 79 lineto
129 19 lineto
140 -12 lineto
closepath
fill
} def
/braceleft {
377 0 120 -75 417 672 setcachedevice
newpath
265 -75 moveto
295 -72 lineto
309 -35 lineto
211 35 lineto
222 136 lineto
261 268 lineto
231 300 lineto
205 312 lineto
199 319 lineto
209 323 lineto
276 358 lineto
316 541 lineto
358 606 lineto
417 635 lineto
416 672 lineto
367 670 lineto
296 615 lineto
246 505 lineto
229 393 lineto
226 386 lineto
215 381 lineto
135 342 lineto
120 303 lineto
178 259 lineto
196 252 lineto
199 245 lineto
151 59 lineto
170 -13 lineto
closepath
fill
} def
/bar {
212 0 86 -68 237 657 setcachedevice
newpath
116 -68 moveto
144 -35 lineto
219 419 lineto
237 653 lineto
201 657 lineto
181 610 lineto
118 125 lineto
86 -50 lineto
closepath
fill
} def
/braceright {
348 0 58 -127 341 663 setcachedevice
newpath
76 -127 moveto
179 -97 lineto
243 -35 lineto
266 148 lineto
263 196 lineto
262 206 lineto
270 212 lineto
341 268 lineto
336 305 lineto
286 345 lineto
317 467 lineto
330 579 lineto
293 644 lineto
228 663 lineto
189 648 lineto
186 611 lineto
253 597 lineto
274 536 lineto
225 342 lineto
249 291 lineto
266 282 lineto
271 275 lineto
266 270 lineto
204 222 lineto
200 21 lineto
178 -35 lineto
99 -67 lineto
60 -82 lineto
58 -119 lineto
closepath
fill
} def
/asciitilde {
488 0 125 280 504 414 setcachedevice
newpath
337 280 moveto
409 296 lineto
504 379 lineto
495 414 lineto
456 402 lineto
376 338 lineto
305 365 lineto
229 400 lineto
168 377 lineto
125 328 lineto
135 303 lineto
174 316 lineto
218 344 lineto
closepath
fill
} def
end
/BuildChar {
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/whaeberli F_whaeberli definefont pop
%%EndFont
%%BeginProcSet: texps.pro
TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
end definefont 3 -1 roll makefont /setfont load]cvx def}def
/ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def
/ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def
end
%%EndProcSet
%%BeginProcSet: special.pro
TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
true def end /@MacSetUp{userdict /md known{userdict /md get type
/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
clippath mark{transform{itransform moveto}}{transform{itransform lineto}
}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
maxlength dict begin /magscale false def normalscale currentpoint TR
/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
begin /SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
%%EndProcSet
TeXDict begin @defspecial
userdict begin /start-hook { /cshow {dup stringwidth pop 2 div neg
0 rmoveto show} def} def /bop-hook{ gsave /Times-Roman findfont 10
scalefont setfont 306 20 translate 0 0 moveto (Version 1.2 - 4 March 1997)
cshow grestore} def end
@fedspecial end TeXDict begin
40258437 52099154 1000 300 300 (glxspec.dvi) @start /Fa
2 63 df<EC01C0EC0780EC1E001478EB01E0EB0780010EC7FC133813F0EA03C0000FC8FC
123C12F0A2123C120FEA03C0EA00F01338130E6D7EEB01E0EB0078141EEC0780EC01C01A
1A7C9723>60 D<12E01278121EEA0780EA01E0EA0078131C1307EB03C0EB00F0143C140F
EC03C0A2EC0F00143C14F0EB03C049C7FC131C1378EA01E0EA0780001EC8FC127812E01A
1A7C9723>62 D E /Fb 61 123 df<90380FF07F90397FF9FF809039F83FC7C03901E07F
8F0003140FEA07C091383F07806EC7FCA5B612F8A22607C01FC7FCB0393FF8FFF0A22220
809F1F>11 D<EB0FE0EB7FF8EBF81C3801E07C1203EA07C0A2143891C7FCA3EBC1FEB5FC
A23807C03EB0393FF9FFC0A21A20809F1D>I<1330136013C0EA01801203EA07005A120E
121E121C123CA212381278A412F85AA97E1278A41238123CA2121C121E120E120F7EEA03
801201EA00C0136013300C2D7CA114>40 D<12C012607E7E121C7E120F7E1380120313C0
A2120113E0A413F01200A9120113E0A413C01203A21380120713005A120E5A12185A5A5A
0C2D7DA114>I<13E0487E6C5AA23870E1C038F8E3E0EAFCE7387E4FC0380F5E00EA03F8
A2EA0F5E387E4FC038FCE7E0EAF8E33870E1C03800E000A2487E6C5A13147DA11A>I<EA
FFF0A40C047F8B11>45 D<1238127C12FEA3127C123807077C860F>I<137013F0120712
FF12F91201B3A4387FFFC0A2121D7D9C1A>49 D<EA03FC381FFF8038381FC0387C07E038
FE03F0A214F81301127C1238EA000314F0A2EB07E0EB0FC01400131E5B13705B3801C018
EA0380EA0600481338381FFFF05A5AB5FCA2151D7E9C1A>I<EA03FC380FFF80381C0FC0
383C07E0387E03F0A31307003C13E01200EB0FC0EB3F803803FE005B38000F80EB07C0EB
03E014F014F81238127C12FEA214F012FC387807E0383C0FC0381FFF803803FC00151D7E
9C1A>I<EB01C013031307A2130F131F133B1373136313C3EA01831203EA0703120E120C
12181238127012E0B512FEA2380007C0A6EBFFFEA2171D7F9C1A>I<001C13E0EA1FFF14
C01480140013FC13C00018C7FCA4EA19FE381FFF80381E07C0381803E0381001F0120014
F8A2127812FCA314F0EA7803007013E0383C0FC0380FFF00EA03FC151D7E9C1A>I<133F
3801FFC03807C0E0EA0F81381F03F0121E123E127CEB01E090C7FCEAFC1013FF00FD13C0
EB03E038FE01F0A200FC13F8A4127CA3003C13F0123E381E03E0380F07C03807FF803801
FE00151D7E9C1A>I<1260387FFFF8A214F014E014C038E0018038C00300A21306C65A5B
13381330137013F0A2485AA21203A41207A56C5A6C5A151E7D9D1A>I<EA01FE380FFF80
381E07C0383801E0EB00F01278A2127C127FEBC1E0383FE3C0381FFF80380FFE003807FF
8014C0001F13E0383C3FF0EA780FEB03F8EAF00113001478A214701278007C13E0383E03
C0380FFF803803FC00151D7E9C1A>I<14E0A2497EA3497EA2EB06FCA2EB0EFEEB0C7EA2
497EA201307F141F01707FEB600FA2496C7E90B5FC4880EB8003000380EB0001A200066D
7EA2000E803AFFE00FFFE0A2231F7E9E28>65 D<B512FEECFFC03907C007E0EC03F0EC01
F815FCA515F8140315F0EC0FE090B5128015C09038C003F0EC01F815FC140015FEA515FC
1401EC03F8EC07F0B612E015001F1F7E9E25>I<903807FC0290383FFF0E9038FE03DE39
03F000FE4848133E4848131E485A48C7120EA2481406127EA200FE1400A7127E1506127F
7E150C6C7E6C6C13186C6C13386C6C13703900FE01C090383FFF80903807FC001F1F7D9E
26>I<B512FEECFFC03907E007F0EC01F86E7E157E81A2ED1F80A316C0A91680A3ED3F00
A2157E5D4A5AEC07F0B612C04AC7FC221F7E9E28>I<B612E0A23807E007140114001560
15701530A21430A21500147014F013FFA213E014701430150CA214001518A31538157815
F8EC03F0B6FCA21E1F7E9E22>I<B612E0A23807E00714011400156015701530A21430A2
1500147014F013FFA213E014701430A391C7FCA8B57EA21C1F7E9E21>I<903807FC0290
383FFF0E9038FE03DE3903F000FE4848133E4848131E485A48C7120EA2481406127EA200
FE91C7FCA591381FFFE0A2007E9038007E00A2127F7EA26C7E6C7E6C7E6C6C13FE3800FE
0190383FFF8E903807FC06231F7D9E29>I<B5FCA2EA07E0B3A9B5FCA2101F7E9E14>73
D<B5EBFFE0A2D807E0EB1E0015185D5D4A5A4A5A0206C7FC5C5C5C14F0EBE1F813E3EBE6
FCEBEC7EEBF87F497E496C7E6E7E8114076E7E6E7E6E7EA2157E157FB53803FFF0A2241F
7E9E29>75 D<B57EA2D807E0C7FCB115C0A31401A3EC0380A2140F141FB6FCA21A1F7E9E
1F>I<D8FFE0EC3FF86D147F00071600D806F814DFA3017CEB019FA26DEB031FA26D1306
A290380F800CA2903807C018A3903803E030A2903801F060A2903800F8C0A2EC7D80A2EC
3F00A3141ED8FFF0903803FFF8140C2D1F7E9E32>I<D8FFE0EBFFF07F0007EC06007FEA
06FC137E7F1480131FEB0FC0EB07E0EB03F0EB01F814FC1300147E143FEC1F8615C6EC0F
E61407EC03F6EC01FE1400A2157E153E151E150ED8FFF01306A2241F7E9E29>I<EB1FF8
90B5FC3901F81F803907E007E0390FC003F0391F8001F890C7FC4814FC4814FE007E147E
A200FE147FA9007E147E007F14FEA26C14FCEB8001001F14F8390FC003F03907E007E039
01F81F806CB51200EB1FF8201F7D9E27>I<B512FEECFF803907E00FE0EC03F0EC01F8A2
15FCA515F8A2EC03F0EC0FE090B51280ECFE0001E0C7FCACB5FCA21E1F7E9E24>I<EB1F
F890B5FC3901F81F803907E007E0390FC003F0391F8001F8A248C712FC4814FEA2007E14
7E00FE147FA9007E147EA2007F14FE6C14FCEB87C1391F8FE1F8390FD833F03907F81FE0
000114806CB5120090381FFE03EB000EEC0F0715FF8015FEA2EC03FCEC01F8EC00F02028
7D9E27>I<B512FCECFF803907E00FE0EC03F081140181A45D14035DEC0FE090B5128002
FCC7FCEBE03FEC0F8081140781A381A31630EC03F802011360B53800FFC0ED3F80241F7E
9E27>I<3803FC08380FFF38381E03F8EA3800481378143812F01418A26C13007EEA7FC0
13FE383FFF806C13C06C13E06C13F0C613F81307EB00FC147C143C12C0A36C1338147800
F8137038FE01E038EFFFC000811300161F7D9E1D>I<007FB512FCA2397C07E07C007014
1C0060140CA200E0140E00C01406A400001400B10003B512C0A21F1E7E9D24>I<B53801
FFE0A23A07E0000C00B3A400035C6C7E5D6C6C5B90387E03C090381FFF80D903FCC7FC23
1F7E9E28>I<D8FFFEEB3FF8A2D80FE0EB0380000715006D5B000314067F00015C7F0000
5CA2017E5BA2017F13706D1360EC80E0011F5B14C090380FC180A2D907E3C7FCA2EB03F6
A214FE6D5AA26D5AA21470A2251F7F9E28>I<3CFFFC0FFFC0FFE0A23C0FC000FC000E00
7F00076E130CA26D151C0003D901BF1318A2D801F85D9138031F80A22600FC076D5AEC06
0F01FE15E0903A7E0C07E0C0A2013FECE18091381803F1A2D91FB801FBC7FCECB00102F0
13FF6D486C5AA201075C4A137CA2010314784A133801011430331F7F9E36>I<3AFFFE07
FF80A23A07F000700000035C6D5B6C6C485A3800FE03D97E07C7FCEB7F06EB3F8CEB1FDC
EB0FF85C13076D7EA28080EB067EEB0E7F496C7E9038181FC0EB300F01707F496C7E4848
6C7EEB8001D803007F486D7E3AFFF007FFE0A2231F7E9E28>I<EA07FC381FFF80383F07
C0EB03E0EB01F0A2120C1200133FEA07FDEA1F81EA3E01127C12F8A3EAFC02EA7E0C383F
F87E380FE03E17147F9319>97 D<B4FCA2121FAAEB1FC0EB7FF0EBE0F8EB807CEB007E14
3EA2143FA6143EA2147C1380381EC1F8381C7FE038181F8018207E9F1D>I<EA01FE3807
FF80381F0FC0123EA2127CEB030000FCC7FCA6127C127E003E1360003F13C0EA1F813807
FF00EA01FC13147E9317>I<EB07F8A21300AAEA01F8EA07FEEA1F83EA3E01EA7E00127C
A212FCA6127CA2127EEA3E01EA1F07380FFEFFEA03F818207E9F1D>I<EA01FE3807FF80
380F83C0381E01E0383E00F05A14F812FCB5FCA200FCC7FCA3127CA26C1318121E380F80
703807FFE0C6138015147F9318>I<EB3F80EBFFC03803E3E0EA07C71387120FEB83C0EB
8000A5EAFFFCA2EA0F80B0EA7FF8A213207F9F10>I<3803FC3C380FFFFE381E079E383C
03DE007C13E0A5003C13C0381E0780381FFF00EA13FC0030C7FCA21238383FFF806C13F0
6C13F84813FC3878007C0070133E00F0131EA30078133CA2383F01F8380FFFE000011300
171E7F931A>I<B4FCA2121FAAEB0FC0EB3FE0EB61F0EBC0F813801300AD38FFE7FFA218
207D9F1D>I<121C123E127FA3123E121CC7FCA6B4FCA2121FB0EAFFE0A20B217EA00E>I<
B4FCA2121FAAEB01FEA2EB00F014C0EB0380EB0700130C5B137C13FC139E130F001E1380
EB07C01303EB01E014F0EB00F838FFC3FFA218207E9F1C>107 D<B4FCA2121FB3AAEAFF
E0A20B207E9F0E>I<3AFE0FE03F8090391FF07FC03A1E70F9C3E09039407D01F0EB807E
121FEB007CAC3AFFE3FF8FFEA227147D932C>I<38FE0FC0EB3FE0381E61F0EBC0F81380
EA1F00AD38FFE7FFA218147D931D>I<48B4FC000713C0381F83F0383E00F8A248137CA2
00FC137EA6007C137CA26C13F8A2381F83F03807FFC00001130017147F931A>I<38FF1F
C0EB7FF0381FE1F8EB80FCEB007EA2143E143FA6143E147E147CEB80FCEBC1F8EB7FE0EB
1F8090C7FCA7EAFFE0A2181D7E931D>I<EAFE3EEB7F80381ECFC0138FA2121FEB030090
C7FCABEAFFF0A212147E9316>114 D<EA0FE6EA3FFEEA701EEA600EEAE006A2EAF800EA
FFC0EA7FF8EA3FFCEA1FFE1203EA001FEAC007A212E0EAF006EAF81EEAFFFCEAC7F01014
7E9315>I<1203A45AA25AA2123FEAFFFCA2EA1F00AA1306A5EA0F8CEA07F8EA03F00F1D
7F9C14>I<38FF07F8A2EA1F00AD1301A2EA0F063807FCFF6C5A18147D931D>I<39FFE07F
80A2391F001C00380F8018A26C6C5AA26C6C5AA2EBF0E000015B13F900005B13FF6DC7FC
A2133EA2131CA219147F931C>I<3AFFC7FE1FE0A23A1F00F0030014F8D80F801306A290
38C1BC0E0007140CEBC3BE3903E31E18A29038F60F380001143001FE13B03900FC07E0A2
EBF80301785BA2903830018023147F9326>I<38FFC0FFA2380F80703807C0606D5A3803
E180EA01F36CB4C7FC137E133E133F497E136FEBC7C0380183E0380381F048C67E000E7F
39FF81FF80A219147F931C>I<39FFE07F80A2391F001C00380F8018A26C6C5AA26C6C5A
A2EBF0E000015B13F900005B13FF6DC7FCA2133EA2131CA21318A2EA783012FC5BEAC0E0
EAE1C0EA7F80001EC8FC191D7F931C>I<383FFFE0A2383C07C038380F80EA701F38603F
00133E5BC65A1201485AEBE060EA07C0EA0F80001F13E0383F00C0EA3E01EA7C03B5FCA2
13147F9317>I E /Fc 18 118 df<EAFFF8A2EA0700B3EAFFF8A20D177D9614>73
D<38FC1F80A238380E00A3EA3C1EEA1C1CA46C5AA4EA0630EA0770A3EA0360A213E0A26C
5A11177F9614>86 D<EA7E3EA2EA1C3CEA1E38EA0E78EA0F7012075B12035B120112037F
A2EA0770A2EA0E781338EA1C3C131CEA3C1E38FE3F80A211177F9614>88
D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C1C127012E0A3EA707C383FFF
80EA0F8F11107E8F14>97 D<EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A412601270
EA380EEA1C1EEA0FFCEA03F00F107E8F14>99 D<137EA2130EA5EA07CEEA0FFEEA1C3EEA
301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0
EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F0
0F107E8F14>I<13FCEA01FEEA038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F17
7F9614>I<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF8FE0A21317809614>
104 D<1206120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I<EAFF80A21203
B3EAFFFEA20F177E9614>108 D<EAFC78EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310
808F14>110 D<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA701CEA783CEA3C78EA1FF0
EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C1380EB01C0A6EB0380001E13
00EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218808F14>I<EAFE1FEB7F80EA0EE3380F81
0090C7FCA2120EA8EAFFF0A211107F8F14>114 D<EA0FD8EA3FF8EA603812C0A2EAF000
EA7F80EA3FF0EA07F8EA001CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>I<12
06120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3FA2EA
1C07AB131F380FFFE0EA03E71310808F14>I E /Fd 2 104 df<133C13E0EA01C0EA0380
ADEA0700121E12F8121E1207EA0380ADEA01C0EA00E0133C0E257E9B13>102
D<12F8121E1207EA0380ADEA01C0EA00E0133C13E0EA01C0EA0380ADEA0700121E12F80E
257E9B13>I E /Fe 29 122 df<EBFE7C380381C6380603CE000E1384001C1380A6B512
F0381C0380AE38FF8FF0171A809916>11 D<126012F0A212701210A31220A21240A2040B
7D830B>44 D<126012F0A2126004047D830B>46 D<130CA3131EA2132F1327A2EB4380A3
EB81C0A200017F1300A248B47E38020070A2487FA3487FA2003C131EB4EBFFC01A1A7F99
1D>65 D<EB3F023801C0C63803002E000E131E48130E14065A007813021270A200F090C7
FCA5903801FFC03970000E00A2127812387EA27E000313163801C06638003F821A1A7E99
1E>71 D<EAFFE0000EC7FCB01408A3141814101430147014F0B5FC151A7F9918>76
D<137F3801C1C038070070000E7F487F003C131E0038130E0078130F00707F00F01480A8
0078EB0F00A20038130E003C131E001C131C6C5B6C5B3801C1C0D8007FC7FC191A7E991E
>79 D<007FB5FC38701C0700401301A200C0148000801300A300001400B13803FFE0191A
7F991C>84 D<39FFC0FF80390F003C0014106C5BEA03806D5A00015BEA00E101F1C7FC13
7A133E131C131EA21317EB27801343EB41C0EB81E0EA010048137000021378481338000C
7F001E133EB4EB7FC01A1A7F991D>88 D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C
1238127012E01480A2133CEA705F381F8F0011107F8F13>97 D<12FC121CA913FCEA1D07
381E0380381C01C0130014E0A6EB01C01480381E0300EA1906EA10F8131A809915>I<EA
07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA07E00E107F8F11>I<133F
1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5AEA1C373807C7E0131A7F99
15>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE000A41260EA7004EA3808EA1C
18EA07E00E107F8F11>I<EA01F0EA0718EA0E38EA1C101300A6EAFFC0EA1C00AEEAFF80
0D1A80990C>I<EA0FCF3818718038303000EA7038A4EA30306C5AEA2FC00060C7FCA212
70EA3FF013FC6C7EEA600FEAC003A4EA6006EA381CEA07E011187F8F13>I<12FC121CA9
137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218123CA212181200A612FC
121CAE12FF081A80990A>I<12FC121CB3A6EAFF80091A80990A>108
D<38FC7C1F391D8E6380391E0781C0A2001C1301AB39FF9FE7F81D107F8F20>I<EAFC7C
EA1D87381E0380A2121CAB38FF9FF01410808F15>I<EA07E0EA1C38EA300CEA700EEA60
06EAE007A6EA6006EA700EEA381CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E03
80381C01C0A2EB00E0A6EB01C01480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15
>I<EAFC78EA1D9CEA1E1C1308EA1C00ABEAFF800E10808F0F>114
D<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0EA1FE0EA00F0EA8070133012C01320
EAF040EA8F800C107F8F0F>I<1208A41218A21238EAFFC0EA3800A81320A41218EA1C40
EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E0B3803F3F01410808F15>I<39
FE7F1F8039381C0700003C1306381C0C04130E380E16081317A238072310149013A33803
C1A014E0380180C0A319107F8F1C>119 D<38FF0F80383C0700EA1C061304A26C5AA26C
5AA3EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>121
D E /Ff 2 122 df<120CA2EACCC012EDEA7F80EA0C00EA7F80EAEDC012CCEA0C00A20A
0B7D8B10>3 D<1218A512FFA21218AF08167D900E>121 D E /Fg
2 122 df<1202A3EAC218EAF278EA3AE0EA0F80A2EA3AE0EAF278EAC218EA0200A30D0E
7E8E12>3 D<1206A8EAFFF0A2EA0600B30C1D7E9611>121 D E /Fh
54 122 df<137013F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA45AA81270A47EA2
7E121E7EEA0780EA03C0EA01F0120013700C24799F18>40 D<126012F012787E7E7EEA07
801203EA01C0A2EA00E0A41370A813E0A4EA01C0A2EA03801207EA0F00121E5A5A5A1260
0C247C9F18>I<EA01C0A4EA41C138F1C780EAFDDF387FFF00EA1FFCEA07F0A2EA1FFCEA
7FFF38FDDF80EAF1C73841C100EA01C0A411147D9718>I<136013F0A7387FFFC0B512E0
A26C13C03800F000A7136013147E9718>I<121C123E127E127F123F121F1207120E121E
127C12F81260080C788518>I<387FFFC0B512E0A26C13C013047E8F18>I<EA01801203A2
1207120F123F12FF12FB12431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>49
D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E121C123C127812F0
1260071A789318>59 D<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80
A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>65
D<EA7FFCB5FC6C1380381C03C01301EB00E0A4130114C01307381FFF80140014C0EA1C03
EB00E014F01470A414F014E01303387FFFC0B51280387FFE00141C7F9B18>I<EBF8E0EA
03FEEA07FFEA0F07EA1E03EA3C01EA38005AA214005AA8127014E0A27E123C381E01C0EA
0F073807FF803803FE00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2
EB01E01300A214F01470A814F014E0A2130114C01303EB0F80387FFF00485AEA7FF8141C
7F9B18>I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B5
12F8A3151C7F9B18>I<B512F8A3381C0038A41400A21307A3EA1FFFA3EA1C07A390C7FC
A7EAFFC0A3151C7F9B18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290
C7FC5AA5EB0FF0131F130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1
141C7E9B18>I<387F07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F0
38FF8FF8387F07F0151C7F9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C
1300111C7D9B18>I<387F07F038FF87F8387F07F0381C03C0EB07801400130E131E5B13
385B13F0121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8
387F03F0151C7F9B18>75 D<EAFFC0A3001CC7FCB114E0A5B5FCA3131C7E9B18>I<38FC
01F8EAFE03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F81370A21300A638FE03
F8A3151C7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121CA213E1A31361
1371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18>I<EA0FFE38
3FFF804813C0EA7803EA700100F013E0EAE000B0EAF001007013C0EA7C07EA7FFF6C1380
380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013001470A514E01301EB03
C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA7FF8EAFFFE6C7E381C0F80
130314C01301A313031480130F381FFF005BA2EA1C0F7FEB0380A5149CA3387F01F8EAFF
81387F00F0161C7F9B18>82 D<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A390C7FC1270
1278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2126012E0130100F013C038F8
0780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07
FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F01380783C03803FF806C1300
EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C01E0001C13C0A3EA1E03000E1380
A438070700A4EA038EA4EA018C13DCA3EA00D813F8A21370151C7F9B18>I<38FE03F8A3
38700070A36C13E0A513F8EA39FC13DCA2001913C0A3138CA2EA1D8DA31305000D1380EA
0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F380E0700120FEA070E138EEA039C13
DCEA01F8A212005B137013F07F487E13DCEA039E138EEA070F7F000E13801303001E13C0
387F07F000FF13F8007F13F0151C7F9B18>I<383FFFE05AA2387001C01303EB07801400
C65A131E131C133C5B137013F0485A5B1203485A90C7FC5A001E13E0121C123C5A1270B5
FCA3131C7E9B18>90 D<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA
7F03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>97
D<127E12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370
A2EB80E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E
073838030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D93
18>I<EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6
EA7007A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA
1FFEEA3E0F38380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E0738
1FFF8000071300EA01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A338
7FFFC0B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E3038
1C0E00487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801
F038700070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E
12FE127E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387F
C7FC171C809B18>I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA310
1D7C9C18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>108 D<38F9C1C038FFF7F013FF
383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E1714809318>I<EA7E3E38FEFF80
007F13C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC1714809318>I<EA01
F0EA0FFE487E383E0F80EA3803387001C0A238E000E0A5EAF001007013C0EA7803383C07
80EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF80007F13C0380FC1E013
80EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380EB3E0090C7FCA7EA7FC0
487E6C5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA380FEA7007A2EAE003A6EA
7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318
>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FCA9EAFFFC7F5B14147E93
18>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1FFCEA03FEEA001F386007
80EAE003A212F038F80F00B5FC13FCEAE7F011147D9318>I<487E1203A4387FFFC0B5FC
A238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F9818>I<387E07E0EAFE
0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714809318>I<387F8FF000
FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038EA3EA01DCA3EA00F8A213
7015147F9318>I<38FF07F8138F1307383800E0A4381C01C0137113F9A213D9EA1DDD00
0D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF0139F138F380F0700EA078E
EA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707000E1380387F8FF000FF
13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F0380E01C0EB0380A21207EB
0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313F05B1279EA7BC0EA7F80
6CC7FC121E151E7F9318>I E /Fi 45 122 df<1238127C12FEA3127C123807077C8610>
46 D<13181378EA01F812FFA21201B3A7387FFFE0A213207C9F1C>49
D<EA03FCEA0FFF383C1FC0387007E0007C13F0EAFE0314F8A21301127CEA3803120014F0
A2EB07E014C0EB0F80EB1F00133E13385BEBE018EA01C0EA0380EA0700000E1338380FFF
F05A5A5AB5FCA215207D9F1C>I<13FE3807FFC0380F07E0381E03F0123FEB81F8A3EA1F
0314F0120014E0EB07C0EB1F803801FE007F380007C0EB01F014F8EB00FCA2003C13FE12
7EB4FCA314FCEA7E01007813F8381E07F0380FFFC03801FE0017207E9F1C>I<14E01301
1303A21307130F131FA21337137713E7EA01C71387EA03071207120E120C121812381270
12E0B6FCA2380007E0A790B5FCA218207E9F1C>I<00301320383E01E0383FFFC0148014
005B13F8EA33C00030C7FCA4EA31FCEA37FF383E0FC0383807E0EA3003000013F0A214F8
A21238127C12FEA200FC13F0A2387007E0003013C0383C1F80380FFF00EA03F815207D9F
1C>I<EB1F80EBFFE03803E0703807C0F0380F01F8121F123EA2387E00F0007C1300A2EA
FC08EB7FC0EBFFE038FD80F038FF00F848137CA248137EA4127CA3003C137C123E001E13
F86C13F0380783E03803FFC0C6130017207E9F1C>I<12601278387FFFFEA214FC14F8A2
14F038E0006014C038C00180EB0300A2EA00065B131C131813381378A25BA31201A31203
A76C5A17227DA11C>I<1470A214F8A3497EA2497EA3EB067FA2010C7F143FA2496C7EA2
01307F140F01707FEB6007A201C07F90B5FC4880EB8001A2D803007F14004880000680A2
3AFFE007FFF8A225227EA12A>65 D<D903FE138090381FFF819038FF01E33901F8003FD8
03E0131F4848130F48481307121F48C71203A2481401127EA200FE91C7FCA8127EED0180
127F7E15036C6C1400120F6C6C1306D803F05B6C6C13386CB413F090381FFFC0D903FEC7
FC21227DA128>67 D<B67E15F03907F003FCEC007E81ED1F80ED0FC0ED07E0A216F01503
A316F8A916F0A3ED07E0A2ED0FC0ED1F80ED3F00157EEC03FCB612F0158025227EA12B>
I<B612FCA23807F000153C151C150C150EA21506140CA31500141C143CEBFFFCA2EBF03C
141C140CA21503A214001506A3150EA2151E153EEC01FCB6FCA220227EA125>I<B612F8
A23807F001EC007815381518151CA2150CA21418A21500A214381478EBFFF8A2EBF07814
381418A491C7FCA8B512C0A21E227EA123>I<D903FE134090391FFFC0C090387F00F1D8
01F8133F4848130FD807C01307000F1403485A48C71201A2481400127EA200FE1500A791
380FFFFC127E007F9038001FC0A27EA26C7E6C7E6C7E6C7ED801FC133F39007F80E79038
1FFFC30103130026227DA12C>I<B512C0A2D807F0C7FCB31518A41538A21570A215F014
011407B6FCA21D227EA122>76 D<D8FFF0EC0FFF6D5C000716E0D806FC1437A3017E1467
A26D14C7A290391F800187A290390FC00307A3903807E006A2903803F00CA2903801F818
A3903800FC30A2EC7E60A2EC3FC0A2EC1F80A3EC0F00D8FFF091B5FC140630227EA135>
I<EB07FC90383FFF809038FC07E03903F001F848486C7E4848137E48487FA248C7EA1F80
A24815C0007E140FA200FE15E0A9007E15C0007F141FA26C15806D133F001F15006C6C13
7E6C6C5B6C6C485A3900FC07E090383FFF80D907FCC7FC23227DA12A>79
D<B512FEECFFC03907F007F0EC01F86E7E157E157FA6157E5D4A5AEC07F090B512C05D90
38F00FE06E7E6E7E6E7EA81606EC00FEEDFF0CB538803FF8ED0FF027227EA12A>82
D<3801FE023807FF86381F01FE383C007E007C131E0078130EA200F81306A27E1400B4FC
13E06CB4FC14C06C13F06C13F86C13FC000313FEEA003F1303EB007F143FA200C0131FA3
6C131EA26C133C12FCB413F838C7FFE00080138018227DA11F>I<007FB61280A2397E03
F80F00781407007014030060140100E015C0A200C01400A400001500B3A248B512F0A222
227EA127>I<B538803FFCA23A07F0000180B3A60003EC03007F000114066C6C130E017E
5B90383F80F890380FFFE0010190C7FC26227EA12B>I<B53A0FFFF00FFEA2260FF00090
C712E000076E14C0A26C6C90393F800180A26D14C00001EE0300A26D496C5A0000026F13
06A2017F9038C7F00CA2028113F8013F01835BA29139C301FC38011F153016FE90260FE6
005BA202FEEBFFE06D486D5AA26D486D5AA36D486DC7FCA36D48130EA237227FA13A>87
D<EA0FFC383FFF80387E07C0EB03E0130114F0123C1200A2133FEA03FDEA1FC1EA3F0112
7E12FCA4EA7E02EB0CF8381FF87F3807E03F18167E951B>97 D<B4FCA2121FABEB0FE0EB
3FF8EBE07CEB803E497EEC0F80A215C0A81580141F01801300EBC03E381EE07C381C3FF8
38180FC01A237EA21F>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC
12FCA6127C127EA2003E13186C1330380FC0603807FFC0C6130015167E9519>I<EB01FE
A2EB003EABEA01FC3807FFBE380F81FE381F007E003E133E127E127C12FCA8127CA26C13
7E6C13FE380F83BE3907FF3FC0EA01FC1A237EA21F>I<13FE3807FF80380F87C0381E01
E0003E13F0EA7C0014F812FCA2B5FCA200FCC7FCA3127CA2127E003E13186C1330380FC0
703803FFC0C6130015167E951A>I<EB1FC0EB7FE0EBF1F0EA01E31203EA07C3EBC1E0EB
C000A6EAFFFEA2EA07C0B2EA3FFCA2142380A211>I<3801FE0F3907FFBF80380F87C738
1F03E7391E01E000003E7FA5001E5BEA1F03380F87C0EBFF80D809FEC7FC0018C8FCA212
1C381FFFE06C13F86C13FE001F7F383C003F48EB0F80481307A40078EB0F006C131E001F
137C6CB45A000113C019217F951C>I<B4FCA2121FABEB07E0EB1FF8EB307CEB403CEB80
3EA21300AE39FFE1FFC0A21A237EA21F>I<121C123E127FA3123E121CC7FCA7B4FCA212
1FB2EAFFE0A20B247EA310>I<1338137C13FEA3137C13381300A7EA03FEA2EA003EB3A5
127812FC133C137CEA78F8EA7FE0EA1F800F2E83A311>I<B4FCA2121FB3ADEAFFE0A20B
237EA210>108 D<3AFF07F007F090391FFC1FFC3A1F303E303E01401340496C487EA201
001300AE3BFFE0FFE0FFE0A22B167E9530>I<38FF07E0EB1FF8381F307CEB403CEB803E
A21300AE39FFE1FFC0A21A167E951F>I<13FE3807FFC0380F83E0381E00F0003E13F848
137CA300FC137EA7007C137CA26C13F8381F01F0380F83E03807FFC03800FE0017167E95
1C>I<38FF0FE0EB3FF8381FE07CEB803E497E1580A2EC0FC0A8EC1F80A29038803F00EB
C03EEBE0FCEB3FF8EB0FC090C8FCA8EAFFE0A21A207E951F>I<EBFE033807FF87380FC1
C7381F006F48133F127E80127C12FCA7127EA2003E5B6C5B380FC1DF3807FF9F3801FC1F
C7FCA8ECFFE0A21B207E951E>I<EAFE1FEB3FC0381E67E013C71387A2381F83C090C7FC
ADEAFFF0A213167E9517>I<EA0FF3EA3FFFEA781FEA6007EAE003A212F000FCC7FCEA7F
E013F8EA3FFEEA0FFF120138000F80EAC007130312E0A238F00700EAFC0EEAEFFCEAC7F0
11167E9516>I<487EA41203A21207A2120F123FB5FCA2EA0F80ABEB8180A5EB8300EA07
C3EA03FEEA00F811207F9F16>I<38FF01FEA2381F003EAF147E14FE380F81BE3907FF3F
C0EA01FC1A167E951F>I<3AFFE3FF07F8A23A1F007800C09038807C01000F1580A23A07
C07E030014DE5D3903E1DF06148FD801F1138CEBF307A2D800FF13D8EBFE0315F890387C
01F0A2013C5BEB3800A225167F9528>119 D<39FFE07FC0A2390F801C006C6C5A6C6C5A
EBF0606C6C5A3800F980137F6DC7FC7F80497E1337EB63E0EBC1F03801C0F848487E3807
007E000E133E39FF80FFE0A21B167F951E>I<39FFE01FE0A2391F800700000F1306EBC0
0E0007130C13E000035BA26C6C5AA26C6C5AA2EB7CC0A2137F6D5AA26DC7FCA2130EA213
0CA25B1278EAFC3813305BEA69C0EA7F80001FC8FC1B207F951E>I
E /Fj 29 122 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390
B512E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038
E00640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
D<1330A31320A2381861C0381C678038064E00EA0378EA01E0A2EA07B0EA1C98EA798EEA
E1860001C7FCA25AA3121478A117>42 D<EA7FF0EAFFE0127F0C037D8A10>45
D<14021406A2140E141EA2143F142F144F14CF148FEB010FA21302A213041308A2011013
8014071320EB3FFFEB40071380A2EA0100A2120212061204001E14C039FF807FF81D207E
9F22>65 D<903807E04090381C18C09038300580EB600313C000011301018013001203A3
91C7FC7FA213F86CB47E14E06C6C7E131FEB01F8EB0078A21438A21220A2143000601370
146014E000705B38E80380D8C606C7FCEA81F81A217D9F1A>83 D<EBF180380389C03807
0780EA0E03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C8038
0F070013147C9317>97 D<EA0780123FEA0700A4120EA45AA213F0EA1D0CEA3A0E123CEA
380FA21270A4EAE01EA3131C133C1338EA607013E0EA31C0EA1F0010207B9F15>I<137E
EA01C138030080EA0E07121E001C1300EA3C0248C7FCA35AA5EA70011302EA3004EA1838
EA07C011147C9315>I<1478EB03F8EB0070A414E0A4EB01C0A213F1EA038938070780EA
0E03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F0700
15207C9F17>I<137CEA01C2EA0701120E121C123CEA3802EA780CEA7BF0EA7C0012F0A4
127013011302EA3804EA1838EA07C010147C9315>I<1478EB019CEB033CA2EB07181400
A2130EA5EBFFE0EB1C00A45BA55BA55BA5485AA35B1231007BC7FC12F31266123C162982
9F0E>I<EB1E30EB7138EBE0F03801C070EA03801207EB00E05AA3381E01C0A4EB0380A2
EA0E07130B38061700EA01E7EA0007A2130EA21230EA781C485AEA6070EA3FC0151D7F93
15>I<EA01E0120FEA01C0A4485AA448C7FCA2131E1363380E8180380F01C0120EA2381C
0380A438380700A3EB0E1000701320A2131CEB0C4000E013803860070014207D9F17>I<
13C0EA01E0A213C0C7FCA7120E12131223EA4380EA4700A21287120EA35AA3EA38401380
A21270EA31001232121C0B1F7C9E0E>I<EB0180EB03C0A2148090C7FCA7133C13461387
A2EA0107A2EA020E1200A35BA45BA45BA45BA21230EA79C0EAF1800063C7FC123C122882
9E0E>I<EA01E0120FEA01C0A4485AA448C7FCA2EB03C0EB0420380E08E013111321EB40
C0381C8000001DC7FC121EEA1FC0EA38E01370A2EB384038707080A3EB310012E0EA601E
13207D9F15>I<EA03C0121FEA0380A4EA0700A4120EA45AA45AA45AA3127112E2A41264
12380A207C9F0C>I<391C0F80F0392630C318394740640C903880680EEB0070A2008E49
5A120EA34848485AA3ED70803A3803807100A215E115623970070064D83003133821147C
9325>I<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB03
8400381388A2EB0708EB031000701330383001C016147C931A>I<137CEA01C338030180
000E13C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F130EEA3018EA1870
EA07C013147C9317>I<3801C1E0380262183804741C1378EB701EA2EA08E01200A33801
C03CA3143838038078147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2B47E171D
809317>I<EA1C1EEA266138278380EA47871307EB0300008EC7FC120EA35AA45AA45A12
3011147C9313>114 D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0EA07F8EA
03FCEA003E130E1270EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I<EA018013
C0EA0380A4EA0700A2EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA3100121E
0C1C7C9B0F>I<000E13C0001313E0382301C0EA4381EA4701A238870380120EA3381C07
00A31410EB0E201218A2381C1E40EA0C263807C38014147C9318>I<380E0380EA130700
2313C0EA4383EA4701130000871380120EA3381C0100A31302A25BA25BEA0E30EA03C012
147C9315>I<000EEBC1C0001313E3392301C3E0384381C1384701C01560398703804012
0EA3391C070080A3EC0100A21306EB0F02000C5B380E13083803E1F01B147C931E>I<38
038380380CC440381068E013711220EB70C03840E0001200A3485AA314403863808012F3
EB810012E5EA84C6EA787813147D9315>I<000E13C0001313E0382301C0EA4381EA4701
A238870380120EA3381C0700A4130E1218A2EA1C1EEA0C3CEA07DCEA001CA25B12F05BEA
E060485AEA4380003EC7FC131D7C9316>I E /Fk 34 122 df<130E131E137EEA07FE12
FFA212F81200B3ABB512FEA317277BA622>49 D<EBFF80000713F04813FC381E03FE3938
00FF80007C133F00FE14C06C131F15E0140FA2127E003C131FC7FC15C0A2EC3F80150014
7E5C5C495A495AEB078049C7FC131E4913E013705B3901C001C0EA0380EA0600000FB5FC
5A5A5AB61280A31B277DA622>I<EB7F803803FFF04813FC380F81FE381F007FEA3F80EC
3F80A3121F1300C7EA7F00A2147E5C495AEB07F0EBFFC0A2EB01F8EB007E801580EC1FC0
A215E0A2123C127EB4FCA215C0143F481480007CEB7F00383F01FE6CB45A000713F0C613
801B277DA622>I<140FA25C5C5C5C5BA2EB03BFEB073F130E131C133C1338137013E0EA
01C0EA038012071300120E5A5A5A12F0B612F8A3C7EA7F00A890381FFFF8A31D277EA622
>I<00181303381F801FEBFFFE5C5C5C14C091C7FC001CC8FCA7EB7FC0381DFFF8381F80
FC381E003F1208C7EA1F8015C0A215E0A21218127C12FEA315C05A0078EB3F80A26CEB7F
00381F01FE6CB45A000313F0C613801B277DA622>I<EB07F8EB3FFE90B5FC3901FC0780
3903F00FC03807C01FEA0F80121F130048EB0F8091C7FC127EA3EAFE02EB1FF0EB3FFCEB
603EEB801F00FF14809038000FC0A24814E0A4127EA4123E003F14C07EEC1F80D80F8013
003807E07E6CB45A6C5B38003FC01B277DA622>I<B612F815FF16C03A03F8001FE0ED0F
F0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EAFE00EDFFC0
9039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1FF8B712E016
C0EDFE0028297DA830>66 D<B712E0A33903FC001FED07F01501A215001670A3913801C0
781638A302031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C1638
167816F815011503151FB712F0A327297EA82C>69 D<B712C0A33903FC003FED0FE01503
1501A21500A316F0913801C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8
FCA9B512FCA324297EA82A>I<91387FE003903907FFFC07011FEBFF0F90397FF00F9F90
39FF0001FFD801FC7F484880484880484880485A82485A82127FA290CAFC5AA892B512F8
7E7F03001300123FA26C7EA26C7E6C7E6C7E6C7E6CB45B90387FF007011FB5129F0107EB
FE0F9039007FF0032D297CA835>I<B512FCA3D803FCC8FCB3A3ED01C0A415031680A215
07A2150FA2151F157F913801FF00B7FCA322297EA828>76 D<ECFFC0010F13FC90383F80
7F9039FE001FC0D801F8EB07E048486D7E48486D7E000F8148486D7EA24848147FA2007F
168090C8123FA34816C0AA6C16806D147FA2003F1600A26C6C14FEA26C6C495A6C6C495A
6C6C495A6C6C495A6C6C495A90263FC0FFC7FC90380FFFFC010013C02A297CA833>79
D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200FC1301A2
14007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB
007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE00
00E15B38C01FF01C297CA825>83 D<3B7FFFF01FFFE0A3000190C7EAF0006C6D485A02C0
5B017F13036D6C485AD91FF090C7FC5D90380FF81E6D6C5A1538903803FE786D6C5A5D6D
5B147F6E7EA26E7E81143F81EC7BFEECF3FFEB01E102C07F01036D7EEB078049486C7E01
0E6D7E131E496D7E01386D7E498001F0130348486D7EB5013F13FCA32E297EA833>88
D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA
0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21
>97 D<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A248133E007E90C7FCA212FE
A7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C3801FFF838003FC0191B7E
9A1E>99 D<EC7FF0A31407ACEB3F873801FFF73807F03F380FC00F381F8007EA3F00A212
7EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FFE738007F87202A7EA925
>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15C0A200FE1307A2
B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803F01E3800FFFCEB
3FE01A1B7E9A1F>I<9038FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB3E
10007EEB3F00A6003E133E003F137E6C137C380FC1F8380BFFE00018138090C8FC1238A2
123C383FFFF814FF6C14C06C14E06C14F0121F383C0007007CEB01F8481300A4007CEB01
F0A2003FEB07E0390FC01F806CB5120038007FF01E287E9A22>103
D<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701F813F013F0A213E0
B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1FC0EA0F80EA0700C7
FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FB3B2EAFFFEA30F2A7E
A912>108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D80FC49038F101FC90
39C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A3331B7D9A38>I<38FF
C07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213E0B039FFFE3FFFA3
201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0393F0007E0A2007E
EB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F803907F07F003801
FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE0390FF803F09038F001
F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038F807F09038FC0FE0
9038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FFC1F0EBC7FCEBC63E
380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
EA74F0EA3FE0EA0F8020277F9A23>I E /Fl 4 104 df<14FF010713E090381F00F80178
131E01E01307D80180EB018048C812C000061560481530A248151848150CA2481506A448
1503A900601506A46C150CA26C15186C1530A26C15606C15C06C6CEB0180D800E0EB0700
0178131E011F13F8903807FFE0010090C7FC282B7EA02D>13 D<EA03F0EA0FFC487E487E
481380A2B512C0A66C1380A26C13006C5A6C5AEA03F012127E9317>15
D<130F1338136013E0EA01C0AFEA0380EA0700121E12F8121E1207EA0380EA01C0AFEA00
E013601338130F102D7DA117>102 D<12F8121E1207EA0380EA01C0AFEA00E013601338
130F1338136013E0EA01C0AFEA0380EA0700121E12F8102D7DA117>I
E /Fm 72 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000
A7B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA07
01A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA
0700A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C0639
0380F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<9038
1F81FF9038F06F073901C07C0F380380F849487E481370A7B7FC3907007007B23A3FE3FE
3FE02320809F26>I<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>
39 D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A412
701230A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E12
08120C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12
205A5A0A2E7EA112>I<1303AFB612FCA2D80003C7FCAF1E207E9A23>43
D<127012F012F8A212781208A31210A31220A21240050E7C840D>I<EAFFF0A20C02808A
0F>I<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300A31306A25BA35BA35B
A25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D7EA117>I<EA03F0EA
0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA780700381300EA1806EA
1C0E6C5AEA03F0121F7E9D17>I<13801203120F12F31203B3A6EA07C0EAFFFE0F1E7C9D
17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF803A3EA200712001480A2
EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380EA3FFF5AB5FC121E7E9D
17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F12001400A2131E131C1370
EA07F0EA003C130E130FEB0780A214C0122012F8A300F013801240EB0F00EA200EEA183C
EA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2EA010E1202A212041208
A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>I<EA1803EA1FFE5B5B
13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214C0A3127012F0A200E013
801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA0182EA0701380E0380
EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200F013
C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFFE014
C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C5A13
1F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A3127038780300123EEA3F06
EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300A31480EA60
0100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18487E487E13071270EB
038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E338000380A3EB07001230EA7806
130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A312701200AA127012F8A3
127005147C930D>I<127012F8A312701200AA127012F012F8A212781208A31210A31220
A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB
801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F
22>65 D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F80
EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE0109038
381C309038E002703803C00139078000F048C71270121E15305A1510127C127800F81400
A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C21
7E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA815
3CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B61280380F
000F14031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A315
40A315C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C01540
A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<90380F
E0109038381C309038E002703803C00139078000F048C71270121E15305A1510127C1278
00F81400A7EC3FFEEC01F000781300127C123CA27EA27E6C7E3903C001703900E0023090
38380C1090380FF0001F217E9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FF
F07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<EAFFF8EA0F8090C7FC
B21402A414061404A2140C141C147CB512FC171F7E9E1C>76 D<B46CEB07FE000715C0A2
D805C0130BA2D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3EB
0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F8003
E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F014
78A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB703838
01C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F814
7CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C06C1480390380070038
01E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A41580
A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<B57E380F00F0143C8080A2
1580A41500A2141E5C14F0EBFF80EB01C0EB0070A280143CA3143EA31504143F141FEC0F
0839FFF00788C7EA01F01E207E9E21>82 D<3803F040380C0CC0EA1803EA3001EA6000A2
12E01440A36C13007E127CEA7F80EA3FF86CB4FC00071380C613C0EB1FE013031301EB00
F014707EA46C136014E06C13C038F8018038C60300EA81FC14217E9F19>I<007FB512E0
38780F010060EB006000401420A200C0143000801410A400001400B3497E3803FFFC1C1F
7E9E21>I<39FFF00FF8390F0003E0EC0080B3A46CEB01001380120314026C6C5A6C6C5A
EB3830EB0FC01D207E9E22>I<39FFF003FE391F8000F86CC7126015206C6C1340A36C6C
1380A2EBE00100011400A23800F002A213F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0
A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF81FF03B1F000FC007C06C90390780018017
0015C001805C00071502EC09E013C000035DEC19F01410D801E05CA2EC2078D800F05CA2
EC403C01785CA2EC801E017C1460013C144090383D000F133F6D5CA2011E1307010E91C7
FCA2010C7F010413022C207F9E2F>I<397FF81FF8390FE007C03907C0030000031302EB
E0063801F00400005BEBF818EB78106D5AEB3E60EB1E406D5AA213076D7E497E1305EB08
F0EB18F8EB1078EB207CEB603EEB401EEB801F3901000F801407000214C000061303001F
EB07E039FFC01FFE1F1F7F9E22>I<EA1FE0EA3030EA7818131CEA300E1200A313FEEA07
8EEA1E0E1238127800F01310A3131E127838386720380F83C014147E9317>97
D<121C12FC121CAA137CEA1D87381E0180EB00C0001C13E01470A21478A6147014F014E0
001E13C0381A018038198700EA107C15207E9F19>I<EA01FCEA0706EA1C0F1238130600
78C7FC127012F0A61270127800381380A2381C0100EA0706EA01F811147F9314>I<EB01
C0130F1301AAEA01F1EA070DEA0C03EA180112381278127012F0A61270A21238EA180312
0CEA070D3801F1F815207F9F19>I<EA03F0EA0E1C487E487EA21270EB038012F0A2B5FC
00F0C7FCA31270A26C1380A2381C0100EA0706EA01F811147F9314>I<137CEA01C6EA03
0F1207EA0E061300A7EAFFF0EA0E00B2EA7FE01020809F0E>I<14E03803E330EA0E3CEA
1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33E00020C7FCA21230A2EA3FFE381FFF80
14C0383001E038600070481330A4006013606C13C0381C03803803FC00141F7F9417>I<
121C12FC121CAA137C1386EA1D03001E1380A2121CAE38FF8FF014207E9F19>I<123812
7CA31238C7FCA6121C12FC121CB1EAFF80091F7F9E0C>I<13E0EA01F0A3EA00E01300A6
1370EA07F012001370B3A31260EAF06013C0EA6180EA3F000C28829E0E>I<121C12FC12
1CAAEB1FE0EB0780EB060013045B5B5B136013E0EA1DF0EA1E70EA1C38133C131C7F130F
7F148014C038FF9FF014207E9F18>I<121C12FC121CB3ABEAFF8009207F9F0C>I<391C3E
03E039FCC30C30391D039038391E01E01CA2001C13C0AE3AFF8FF8FF8021147E9326>I<
EA1C7CEAFC86EA1D03001E1380A2121CAE38FF8FF014147E9319>I<EA01F8EA070E381C
0380383801C0A2387000E0A200F013F0A6007013E0A2383801C0A2381C038038070E00EA
01F814147F9317>I<EA1C7CEAFD87381E018014C0381C00E014F014701478A6147014F0
14E0381E01C0EB0380381D8700EA1C7C90C7FCA8B47E151D7E9319>I<3801F04038070C
C0EA0E02EA1C03EA38011278127012F0A6127012781238EA1C03EA0C05EA0709EA01F1EA
0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18EA1E3CA21318EA1C00AEEAFFC00E147E93
12>I<EA0FC8EA3038EA6018EAC008A3EAE000127CEA3FE0EA1FF0EA07F8EA003CEA800E
130612C0A21304EAE00CEAD818EA87E00F147F9312>I<1202A31206A2120EA2123EEAFF
F8EA0E00AB1304A5EA07081203EA01F00E1C7F9B12>I<381C0380EAFC1FEA1C03AE1307
120CEA061B3803E3F014147E9319>I<38FF83F8383E00E0001C13C06C1380A338070100
A21383EA0382A2EA01C4A213E4EA00E8A21370A3132015147F9318>I<39FF9FE1FC393C
078070391C030060EC8020000E1440A214C0D80704138014E0A239038861001471A23801
D032143A143E3800E01CA2EB6018EB40081E147F9321>I<38FF87F8381E03C0380E0180
EB0300EA0702EA0384EA01C813D8EA00F01370137813F8139CEA010E1202EA0607380403
80000C13C0003C13E038FE07FC16147F9318>I<38FF83F8383E00E0001C13C06C1380A3
38070100A21383EA0382A2EA01C4A213E4EA00E8A21370A31320A25BA3EAF080A200F1C7
FC1262123C151D7F9318>I<EA7FFFEA700E1260EA401C133813781370EA00E0120113C0
EA038012071301120E121EEA1C03EA3802EA7006130EEAFFFE10147F9314>I
E /Fn 134[27 25 1[22 26 24 26 23 1[26 27 24 33 9 22 1[15
25 26 25 23 29 26 28 28 8[33 2[25 35 28 34 2[29 1[29
27 2[9 1[31 3[30 30 39 7[24 1[28 4[25 10 2[10 25 12 5[26
38[{}43 50.000000 /whaeberli rf /Fo 23 122 df<127012F8A312701200AB127012
F8A3127005157C940E>58 D<D8FFFCEBFF80D80FC0EB7C006C48133015205D5D4AC7FC14
025C5C5C5C5C5CEB81C0EB83E01385EB88F01390EBA078EBC03C13808080A26E7E811403
6E7EA26E7E81486C7F3AFFFC07FF8021227EA126>75 D<B512F0380F803C0007130FEC07
8015C0140315E0A615C014071580EC0F00143CEBFFF00180C7FCAE487EEAFFFC1B227EA1
21>80 D<B512E0380F803C0007130E6E7E81140381A55D14075D020EC7FC143CEBFFE0EB
80708080141E140E140FA481A3168015C014073A0FC003C10039FFFC01E2C8127C21237E
A124>82 D<3BFFF03FFC03FE3B1F8007E000F86C486C48137017206E7ED807801540A24A
7E2603C0021480A39039E004780100011600A2EC083CD800F01402A2EC101E01785CA2EC
200F013C5CA20260138890391E400790A216D090391F8003F0010F5CA2EC00016D5CA201
06130001025C2F237FA132>87 D<EA1FE0EA3038EA780C130EEA30071200A313FFEA07C7
EA1E07123C1278127000F01308A3130FEA7817383C2390380FC1E015157E9418>97
D<120E12FE121E120EAB131FEB61C0EB8060380F0030000E1338143C141C141EA7141C14
3C1438000F1370380C8060EB41C038083F0017237FA21B>I<EA01FEEA0703380C078012
1C383803000078C7FC127012F0A712700078134012386C1380380C0100EA0706EA01F812
157E9416>I<14E0130F13011300ABEA01F8EA0704EA0C02EA1C01EA38001278127012F0
A7127012781238EA1801EA0C0238070CF03801F0FE17237EA21B>I<EA01FCEA0707380C
0380381C01C01238007813E0EA700012F0B5FC00F0C7FCA512700078132012386C13406C
138038070300EA00FC13157F9416>I<120E12FE121E120EABEB1F80EB60C0EB80E0380F
0070A2120EAF38FFE7FF18237FA21B>104 D<121C123EA3121CC7FCA8120E127E121E12
0EB1EAFFC00A227FA10E>I<120E12FE121E120EABEB03FCEB01F014C01480EB02005B5B
5B133813F8EA0F1CEA0E1E130E7F1480EB03C0130114E0EB00F014F838FFE3FE17237FA2
1A>107 D<120E12FE121E120EB3ADEAFFE00B237FA20E>I<390E1FC07F3AFE60E183803A
1E807201C03A0F003C00E0A2000E1338AF3AFFE3FF8FFE27157F942A>I<380E1F8038FE
60C0381E80E0380F0070A2120EAF38FFE7FF18157F941B>I<EA01FCEA0707380C018038
1800C0003813E0481370A200F01378A700701370007813F0003813E0381C01C0380E0380
38070700EA01FC15157F9418>I<EA0E3CEAFE46EA1E8FEA0F0F13061300120EAD120FEA
FFF010157F9413>114 D<EA0F88EA3078EA601812C01308A212E0EAF000127FEA3FE0EA
0FF0EA01F8EA003CEA801C130CA212C01308EAE018EAD030EA8FC00E157E9413>I<1202
A41206A3120E121E123EEAFFFCEA0E00AB1304A6EA07081203EA01F00E1F7F9E13>I<00
0E137038FE07F0EA1E00000E1370AD14F0A238060170380382783800FC7F18157F941B>
I<38FF80FE381E00781430000E1320A26C1340A2EB80C000031380A23801C100A2EA00E2
A31374A21338A3131017157F941A>I<38FF80FE381E00781430000E1320A26C1340A2EB
80C000031380A23801C100A2EA00E2A31374A21338A31310A25BA35B12F05B12F10043C7
FC123C171F7F941A>121 D E /Fp 27 122 df<126012F0A2126004047C830C>46
D<5A1207123F12C71207B3A5EAFFF80D1C7C9B15>49 D<EA07C0EA1830EA201CEA400C13
0EEAF00F12F81307A21270EA000F130EA2131CA213381370136013C0EA0180EA0300EA06
01120C1218EA1002EA3FFE127F12FF101C7E9B15>I<B512C0380F00788080140E140FA4
140E141E5C14F8EBFFF0EB003C8080801580A5EC0F00A2141E1478B512E0191C7F9B1D>
66 D<B512C0380F00F0143C140E80A2EC038015C01401A215E0A815C0A2140315801407
1500140E5C1470B512C01B1C7E9B20>68 D<B512F8380F007814181408A2140C1404A213
011400A35B13FF13037FA490C7FCA8EAFFF8161C7E9B1B>70 D<90381F8080EBE0613801
801938070007000E13035A14015A00781300A2127000F01400A6ECFFF0EC0F8000701307
1278A212387EA27E6C130B380180113800E06090381F80001C1E7E9C21>I<EAFFF8EA0F
8090C7FCB01408A31418A2141014301470EB01F0B5FC151C7E9B1A>76
D<B5FC380F01E0EB007880141C141EA4141C143C5CEB01E001FFC7FCEB01E0EB00701478
80A61510A2141CA239FFF00E20C7EA03C01C1D7E9B1F>82 D<39FFF07FC0390FC01E0038
07800CEBC00800035B6C6C5A13F000005BEB7880137C013DC7FC133E7F7F80A2EB13C0EB
23E01321EB40F0497E14783801007C00027F141E0006131F001F148039FF807FF01C1C7F
9B1F>88 D<EA1FC0EA3070EA78387F12301200A2EA01FCEA0F1C12381270126000E01340
A3EA603C38304E80381F870012127E9115>97 D<12FC121CAA137CEA1D87381E0180381C
00C014E014601470A6146014E014C0381E018038190700EA10FC141D7F9C17>I<EA03F8
EA0C0CEA181E1230EA700CEA600012E0A61260EA70021230EA1804EA0C18EA03E00F127F
9112>I<EB1F801303AAEA03F3EA0E0BEA1807EA30031270126012E0A6126012701230EA
1807EA0E1B3803E3F0141D7F9C17>I<EA07E0EA0C30EA1818EA300CEA700EEA600612E0
EAFFFEEAE000A41260EA70021230EA1804EA0C18EA03E00F127F9112>I<EB03803807C4
C0EA1C783838388038301800EA701CA4EA3018EA38386C5AEA27C00020C7FCA21230EA3F
F86CB4FC1480EA2003386001C0EAC000A33860018038300300EA1C0EEA07F8121C7F9215
>103 D<1218123CA21218C7FCA712FC121CB0EAFF80091D7F9C0C>105
D<12FC121CAAEB0FE0EB0780EB06005B13105B5B13E0121DEA1E70EA1C781338133C131C
7F130F148038FF9FE0131D7F9C16>107 D<12FC121CB3A9EAFF80091D7F9C0C>I<39FC7E
07E0391C838838391D019018001EEBE01C001C13C0AD3AFF8FF8FF8021127F9124>I<EA
FC7CEA1C87EA1D03001E1380121CAD38FF9FF014127F9117>I<EA03F0EA0E1CEA180648
7E00701380EA600100E013C0A600601380EA700300301300EA1806EA0E1CEA03F012127F
9115>I<EAFCE0EA1D38EA1E78A2EA1C301300ACEAFFC00D127F9110>114
D<EA1F90EA2070EA4030EAC010A212E0EAF800EA7F80EA3FE0EA0FF0EA00F8EA80381318
12C0A2EAE010EAD060EA8FC00D127F9110>I<1204A4120CA2121C123CEAFFE0EA1C00A9
1310A5120CEA0E20EA03C00C1A7F9910>I<38FC1F80EA1C03AD1307120CEA0E1B3803E3
F014127F9117>I<38FF07E0383C0380381C0100A2EA0E02A2EA0F06EA0704A2EA0388A2
13C8EA01D0A2EA00E0A31340A25BA212F000F1C7FC12F312661238131A7F9116>121
D E /Fq 1 14 df<EC7FC0903803FFF890380F803E90393C0007800170EB01C001C0EB00
6048488048C87E0006814881A24881A248ED0180A248ED00C0A3481660AB006016C0A36C
ED0180A26CED0300A26C1506A26C5D6C5D6C6C5C6C6C5C0170495A013CEB078090260F80
3EC7FC903803FFF89038007FC02B2F7DA332>13 D E /Fr 27 122
df<13021304130813101330136013C0A2EA0180A2EA03005A1206120EA2120C121CA212
181238A35AA612F0A25AAD7EA21270A67EA31218121CA2120C120EA2120612077EEA0180
A2EA00C0A21360133013101308130413020F497AB519>40 D<7E12407E7E12187E7EA27E
A2EA018013C0120013E0A213601370A213301338A3131CA6131EA2130EAD131EA2131CA6
1338A313301370A2136013E0A213C012011380EA0300A21206A25A5A12105A5A5A0F497C
B519>I<127812FCA4127806067A8512>46 D<130813381378EA01F8123FEAFE7812C012
00B3B313FC387FFFF8A2152F7AAE21>49 D<EB7F803801FFF0380701F8380C007E48131F
00107F48148048EB07C0A2EC03E012B012F87EA31278C7FCEC07C0A21580140F15005C14
1E5C5C14705C495A495A49C7FC130E130C5B5B5B491320485A48C7FC000614405A120848
14C0003FB5FC481480B6FCA21B2F7DAE21>I<DA1FE013809138FFFC01903807F00F9039
0F800183013EC712C3017814274914174848140F485A48481407160348C8FC481501121E
123E123C1600127CA20078160012F8AA92380FFFFC1278007C9138001FC0EE0F80123CA2
123E121E121F7E6C7E7F12036C7E6C6C1417137C6D1463D90F8013C3903907F007819039
00FFFE00DA1FF013002E337CB134>71 D<B512C0A2D807F0C8FC6C5AB3AA1620A41640A4
16C0A21501A21503ED0780151F0007147FB7FCA223317DB029>76
D<EC3FC0903801C038903807000E011CEB0380496D7E01F0EB00F0484814784848804914
1C0007151E48C87EA2001EED0780A248ED03C0A2007C16E0A200781501A200F816F0AB00
7CED03E0A4003C16C0003E1507001E1680A26CED0F00A26C6C141E6C6C5CA26C6C5C6C6C
5C0138EB01C06D495A0107010EC7FC903801E0789038003FC02C337CB134>79
D<90387F80203801FFE03907C07860380F001C001EEB06E0481303003813010078130012
70156012F0A21520A37E1500127C127E7E13C0EA1FF86CB47E6C13F06C13FCC613FF010F
1380010013C0EC1FE01407EC03F01401140015F8A26C1478A57E15706C14F015E07E6CEB
01C000ECEB038000C7EB070038C1F01E38807FFCEB0FF01D337CB125>83
D<D8FFFEEC07FFA2D807F0EC01F849EC00E0000316407F00011680A26D140100001600A2
017C1402A2137E013E5CA26D5CA280010F5CA26E133001071420A26D6C5BA28001015CA2
6D6C48C7FCA214FCEC7C02A2EC7E06EC3E04A26E5AA21588EC0F90A2EC07E0A36E5AA36E
5AA230327FB032>86 D<D8FFFE903B3FFF8001FFC0A2D80FE0D903F8C7EA7E006C480101
151C19186C6C01001510A2826C6C5FA36DEB013E000060A2ED021F017C5FA24B6C7E6D4C
C7FCA217C06DD908071302A3913A801003E006010F1604A29139C02001F001075EA29238
4000F8D903E05DA203C013FC6D6C48EB7C20A2177E02F9C7EA3E6001001640A202FE141F
027E5DA2027C140F023C92C8FCA202388002181406A342327FB044>I<267FFF80EBFFF8
A2D803FEC7EA3F806C48EC1E0000001518017E141016306D14206D6C5B16C06D6C5B6D6C
48C7FC0103130214F06D6C5A01005B14FCEC7E10EC3E20EC3F606E5A6E5A816E7E14034A
7EEC05F814084A7E157EEC203EEC403F9138C01F80EC800FD901007F496D7E0102130349
80010C6D7E0108130049800130147E0120143E49143F01C0EC1F801201D80FE0EC3FE0D8
FFF891B5FCA230317FB032>I<13FE380303C0380C00E00010137080003C133C003E131C
141EA21208C7FCA3EB0FFEEBFC1EEA03E0EA0F80EA1F00123E123C127C481404A3143EA2
1278007C135E6CEB8F08390F0307F03903FC03E01E1F7D9E21>97
D<EB1FC0EBF0303801C00C38078002EA0F00000E130F001E5B5AA2007C1304007890C7FC
12F8A91278127C123C15807E000EEB0100120F380780023801C00C3800F030EB1FC0191F
7E9E1D>99 D<15F0141FA214011400AFEB0FC0EB70303801C00C3803800238070001120E
001E13005AA2127C1278A212F8A71278A2127C123CA27E000E13016C1302380380046C6C
487E3A00F030FF80EB1FC021327EB125>I<EB3F80EBE0E0380380383807003C000E7F12
1E001C7F123C127C00781480140712F8A2B6FC00F8C8FCA61278127C123C15807E000EEB
0100000F13027E3801C00C3800F030EB1FC0191F7E9E1D>I<EA078012FFA2120F1207AF
14FE903883078090388C03C090389001E013A06E7E13C0A25BB3A2486C487E3AFFFC1FFF
80A221327EB125>104 D<120FEA1F80A4EA0F00C7FCABEA0780127FA2120F1207B3A6EA
0FC0EAFFF8A20D307EAF12>I<260780FEEB1FC03BFF83078060F0903A8C03C180783B0F
9001E2003CD807A013E4DA00F47F01C013F8A2495BB3A2486C486C133F3CFFFC1FFF83FF
F0A2341F7E9E38>109 D<380780FE39FF83078090388C03C0390F9001E0EA07A06E7E13
C0A25BB3A2486C487E3AFFFC1FFF80A2211F7E9E25>I<EB1FC0EBF0783801C01C380700
07481480001EEB03C0001C1301003C14E0A248EB00F0A300F814F8A8007814F0007C1301
003C14E0A26CEB03C0A26CEB07803907800F003801C01C3800F078EB1FC01D1F7E9E21>
I<380781FC39FF86078090388801C0390F9000E0D807A0137001C01378497F153E151E15
1FA2811680A716005DA2151E153E153C6D5B01A013705D90389803C0D9860FC7FCEB81F8
0180C8FCAB487EEAFFFCA2212D7E9E25>I<380783E038FF8418EB887CEA0F90EA07A014
38EBC000A35BB3487EEAFFFEA2161F7E9E19>114 D<3801FC10380E0330381800F04813
7048133012E01410A37E6C1300127EEA3FF06CB4FC6C13C0000313E038003FF0EB01F813
006C133CA2141C7EA27E14186C1338143000CC136038C301C03880FE00161F7E9E1A>I<
1340A513C0A31201A212031207120F381FFFE0B5FC3803C000B01410A80001132013E000
001340EB78C0EB1F00142C7FAB19>I<3BFFF03FF80FFCA23B0F8007E003F0913903C001
C00007ED0080A201C0EBE00100031600140401E06D5A00011502EC087001F0EB78060000
1504EC10380178EB3C08A2EC201C013CEB1E10A2EC400E011EEB0F20A2EC8007010F14C0
A2EC00036D5CA201061301010291C7FC2E1F7F9E30>119 D<D8FFF8EBFF80A2D80FC0EB
7C006C48133815306C6C1320A26C6C5BA27F00005CA2D97801C7FCA2137CEB3C02A26D5A
A2131F6D5AA2EB0790A214D0EB03E0A26D5AA36D5AA249C8FCA31302A25B1270EAF80C13
085BEA7020EA3040EA1F80212D7F9E23>121 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%EndSetup
%%Page: 0 1
0 0 bop 651 422 a Fr(Op)r(enGL)901 396 y Fq(\015)-39
b Fp(R)965 422 y Fr(Graphics)816 513 y(with)22 b(the)646
605 y(X)f(Windo)n(w)g(System)1185 579 y Fq(\015)-39 b
Fp(R)753 676 y Fr(\(V)-6 b(ersion)22 b(1.2\))802 802
y Fo(Phil)16 b(Karlton)643 860 y(Revised)f(b)o(y:)21
b(P)o(aula)c(W)l(omac)o(k)508 1027 y Fn(Copyright)765
1026 y Fm(c)753 1027 y Fl(\015)j Fn(1992-1997)g(Silicon)g(Graphics,)i
(Inc.)411 1133 y(This)e(document)i(contains)e(unpublished)i
(information)f(of)770 1189 y(Silicon)g(Graphics,)g(Inc.)224
1296 y Fm(This)14 b(do)q(cumen)o(t)g(is)g(protected)g(b)o(y)f(cop)o
(yrigh)o(t,)g(and)h(con)o(tains)g(information)f(proprietary)224
1352 y(to)i(Silicon)k(Graphics,)d(Inc.)22 b(An)o(y)16
b(cop)o(ying,)g(adaptation,)g(distribution,)h(public)h(p)q(erfor-)224
1409 y(mance,)d(or)f(public)j(displa)o(y)f(of)f(this)g(do)q(cumen)o(t)g
(without)g(the)g(express)g(written)g(consen)o(t)224 1465
y(of)e(Silicon)j(Graphics,)e(Inc.)20 b(is)14 b(strictly)g(prohibited.)
21 b(The)14 b(receipt)g(or)f(p)q(ossession)i(of)e(this)224
1522 y(do)q(cumen)o(t)19 b(do)q(es)g(not)f(con)o(v)o(ey)g(an)o(y)g
(righ)o(ts)g(to)g(repro)q(duce,)h(disclose,)h(or)e(distribute)i(its)224
1578 y(con)o(ten)o(ts,)12 b(or)g(to)g(man)o(ufacture,)h(use,)g(or)f
(sell)i(an)o(ything)f(that)f(it)h(ma)o(y)f(describ)q(e,)i(in)g(whole)
224 1634 y(or)h(in)h(part.)524 1728 y Fn(U.S.)21 b(Government)g
(Restricted)g(Rights)f(Legend)224 1822 y Fm(Use,)j(duplication,)i(or)c
(disclosure)i(b)o(y)f(the)g(Go)o(v)o(ernmen)o(t)e(is)i(sub)s(ject)g(to)
f(restrictions)224 1879 y(set)g(forth)f(in)h(F)-5 b(AR)21
b(52.227.19\(c\)\(2)o(\))d(or)i(subparagraph)g(\(c\)\(1\)\(ii\))g(of)g
(the)h(Righ)o(ts)g(in)224 1935 y(T)l(ec)o(hnical)16 b(Data)e(and)g
(Computer)g(Soft)o(w)o(are)f(clause)i(at)f(DF)-5 b(ARS)14
b(252.227-7013)e(and/or)224 1991 y(in)21 b(similar)g(or)e(successor)h
(clauses)h(in)g(the)f(F)-5 b(AR)20 b(or)f(the)h(DOD)g(or)f(NASA)h(F)-5
b(AR)20 b(Sup-)224 2048 y(plemen)o(t.)28 b(Unpublished)20
b(righ)o(ts)d(reserv)o(ed)h(under)g(the)f(cop)o(yrigh)o(t)g(la)o(ws)h
(of)f(the)g(United)224 2104 y(States.)30 b(Con)o(tractor/man)o
(ufacturer)16 b(is)j(Silicon)i(Graphics,)f(Inc.,)f(2011)f(N.)g
(Shoreline)224 2161 y(Blvd.,)e(Moun)o(tain)f(View,)g(CA)g(94039-7311.)
333 2255 y Fn(OpenGL)22 b(is)d(a)h(registered)i(trademark)f(of)f
(Silicon)h(Graphics,)g(Inc.)259 2311 y(X)f(is)f(a)h(registered)i
(trademark)g(of)e(the)g(Massachussetts)i(Institute)f(of)878
2368 y(Technology)295 2424 y(Unix)e(is)g(a)h(registered)i(trademark)g
(of)e(A)g(T)g(&)g(T)g(Bell)h(Laboratories.)p eop
%%Page: 1 2
1 1 bop 224 469 a Fr(Op)r(enGL)474 443 y Fq(\015)-39
b Fp(R)536 469 y Fr(Graphics)20 b(with)f(the)h(X)g(Windo)n(w)f(System)
1607 443 y Fq(\015)-39 b Fp(R)802 595 y Fo(Phil)16 b(Karlton)643
653 y(Revised)f(b)o(y:)21 b(P)o(aula)c(W)l(omac)o(k)224
903 y Fk(1)67 b(Ov)n(erview)224 1004 y Fm(This)14 b(do)q(cumen)o(t)f
(describ)q(es)i(GLX,)e(the)g(Op)q(enGL)h(extension)g(to)f(the)g(X)g
(Windo)o(w)224 1061 y(System.)19 b(It)13 b(refers)f(to)g(concepts)h
(discussed)h(in)g(the)e(Op)q(enGL)i(sp)q(eci\014cation,)h(and)224
1117 y(ma)o(y)e(b)q(e)h(view)o(ed)f(as)g(an)g(X)h(sp)q(eci\014c)h(app)q
(endix)g(to)d(that)h(do)q(cumen)o(t.)19 b(P)o(arts)12
b(of)h(the)224 1173 y(do)q(cumen)o(t)j(assume)f(some)g(acquain)o(tance)
g(with)h(b)q(oth)f(the)h(Op)q(enGL)g(and)g(X.)295 1230
y(In)j(the)g(X)g(Windo)o(w)g(System,)g(Op)q(enGL)h(rendering)g(is)f
(made)g(a)o(v)m(ailable)i(as)224 1286 y(an)15 b(extension)h(to)e(X)h
(in)g(the)g(formal)g(X)f(sense:)21 b(connection)16 b(and)f(authen)o
(tication)224 1343 y(are)h(accomplished)j(with)e(the)g(normal)f(X)h
(mec)o(hanisms.)24 b(As)17 b(with)g(other)f(X)h(ex-)224
1399 y(tensions,)g(there)f(is)g(a)g(de\014ned)h(net)o(w)o(ork)e(proto)q
(col)h(for)g(the)g(Op)q(enGL)h(rendering)224 1456 y(commands)e
(encapsulated)i(within)f(the)f(X)h(b)o(yte)f(stream.)295
1512 y(Since)25 b(p)q(erformance)e(is)h(critical)g(in)h(3D)d
(rendering,)k(there)e(is)g(a)e(w)o(a)o(y)h(for)224 1569
y(Op)q(enGL)17 b(rendering)g(to)e(b)o(ypass)h(the)g(data)f(enco)q(ding)
i(step,)f(the)g(data)f(cop)o(ying,)224 1625 y(and)g(in)o(terpretation)f
(of)h(that)e(data)h(b)o(y)h(the)f(X)h(serv)o(er.)k(This)c
Fj(dir)n(e)n(ct)g(r)n(endering)f Fm(is)224 1682 y(p)q(ossible)k(only)f
(when)g(a)f(pro)q(cess)h(has)f(direct)h(access)g(to)f(the)g(graphics)h
(pip)q(eline)q(.)224 1738 y(Allo)o(wing)j(for)e(parallel)j(rendering)e
(has)g(a\013ected)g(the)f(design)i(of)e(the)h(GLX)g(in-)224
1794 y(terface.)h(This)15 b(has)g(resulted)h(in)g(an)e(added)i(burden)g
(on)f(the)g(clien)o(t)h(to)e(explicitly)224 1851 y(prev)o(en)o(t)h
(parallel)i(execution)f(when)g(that)e(is)i(inappropriate.)295
1907 y(X)10 b(and)h(the)f(Op)q(enGL)i(ha)o(v)o(e)e(di\013eren)o(t)g
(con)o(v)o(en)o(tions)g(for)g(naming)h(en)o(try)f(p)q(oin)o(ts)224
1964 y(and)16 b(macros.)j(The)c(GLX)g(extension)h(adopts)f(those)g(of)g
(the)g(Op)q(enGL.)224 2107 y Fk(2)67 b(GLX)22 b(Op)r(eration)224
2210 y Fi(2.1)56 b(Rendering)17 b(Con)n(texts)i(and)g(Dra)n(wing)g
(Surfaces)224 2296 y Fm(The)k(Op)q(enGL)h(sp)q(eci\014cation)g(is)f(in)
o(ten)o(tionally)h(v)m(ague)f(on)g(ho)o(w)f(a)g(rendering)224
2352 y(con)o(text)f(\(an)h(abstract)e(Op)q(enGL)j(state)e(mac)o(hine\))
i(is)f(created.)39 b(One)23 b(of)e(the)224 2409 y(purp)q(oses)f(of)e
(GLX)h(is)h(to)e(pro)o(vide)i(a)e(means)h(to)g(create)f(an)h(Op)q(enGL)
i(con)o(text)224 2465 y(and)16 b(asso)q(ciate)f(it)g(with)h(a)f(dra)o
(wing)g(surface.)925 2613 y(1)p eop
%%Page: 2 3
2 2 bop 295 286 a Fm(In)19 b(X,)g(a)f(rendering)i(surface)e(is)i
(called)g(a)e Fh(Drawable)p Fm(.)30 b Fh(Window)p Fm(s,)18
b(one)h(t)o(yp)q(e)224 343 y(of)j Fh(Drawable)p Fm(,)g(are)g(asso)q
(ciated)g(with)g(a)g Fh(Visual)p Fm(.)1128 326 y Fg(\003)1188
343 y Fm(The)g(X)g(proto)q(col)g(allo)o(ws)224 399 y(for)17
b(a)g(single)h Fh(VisualID)e Fm(to)h(b)q(e)h(instan)o(tiated)f(at)g(m)o
(ultiple)i(depths.)27 b(The)17 b(GLX)224 456 y(bindings)22
b(allo)o(w)f(only)g(one)f(depth)h(for)f(an)g(Op)q(enGL)h(renderer)g
(for)f(an)o(y)g(giv)o(en)224 512 y Fh(VisualID)p Fm(.)11
b(In)i(GLX)f(the)g(de\014nition)i(of)e Fh(Visual)g Fm(has)g(b)q(een)h
(extended)g(to)f(include)224 569 y(the)18 b(t)o(yp)q(es,)f(quan)o
(tities)h(and)g(sizes)g(of)f(the)h(ancillary)h(bu\013ers)e(\(depth,)h
(accum)o(u-)224 625 y(lation,)h(auxiliary)l(,)h(and)e(stencil\).)29
b(Double)19 b(bu\013ering)g(capabilit)o(y)g(is)g(also)e(\014xed)224
682 y(b)o(y)f(the)g Fh(Visual)p Fm(.)524 665 y Fg(y)564
682 y Fm(The)g(ancillary)i(bu\013ers)e(ha)o(v)o(e)g(no)g(meaning)h
(within)g(the)f(core)224 738 y(X)h(en)o(vironmen)o(t.)26
b(The)17 b(set)g(of)g(extended)h Fh(Visual)p Fm(s)e(is)h(\014xed)h(at)e
(serv)o(er)h(startup)224 795 y(time.)j(One)15 b(result)f(is)g(that)f(a)
h(serv)o(er)f(can)h(exp)q(ort)g(m)o(ultiple)i Fh(Visual)p
Fm(s)d(that)g(di\013er)224 851 y(only)j(in)g(the)f(extended)h
(attributes.)295 907 y(The)i(other)f(t)o(yp)q(e)h(of)f(X)h
Fh(Drawable)e Fm(is)j(a)e Fh(Pixmap)p Fm(,)g(a)h(dra)o(wing)f(surface)h
(that)224 964 y(is)24 b(main)o(tained)f(o\013)f(screen.)44
b(The)23 b(GLX)g(equiv)m(alen)o(t)h(to)e(an)h(X)g Fh(Pixmap)f
Fm(is)h(a)224 1020 y Fh(GLXPixmap)p Fm(.)35 b(A)21 b
Fh(GLXPixmap)e Fm(is)i(created)g(using)g(the)g Fh(Visual)e
Fm(along)i(with)g(its)224 1077 y(extended)d(attributes.)25
b(The)17 b Fh(Visual)f Fm(is)i(used)f(to)f(de\014ne)j(the)e(t)o(yp)q(e)
g(and)g(size)h(of)224 1133 y(the)h(Ancillary)h(bu\013ers)f(asso)q
(ciated)g(with)g(the)f Fh(Pixmap)p Fm(.)30 b(The)19 b
Fh(Pixmap)e Fm(is)j(used)224 1190 y(as)i(the)g(fron)o(t-left)g(color)h
(bu\013er.)41 b(A)22 b Fh(GLXDrawable)f Fm(is)i(the)f(union)i
Fl(f)p Fh(Window)p Fm(,)224 1246 y Fh(GLXPixmap)p Fl(g)p
Fm(.)295 1303 y(Ancillary)15 b(bu\013ers)f(are)f(asso)q(ciated)h(with)g
(a)f Fh(GLXDrawable)p Fm(,)f(not)h(with)h(a)g(ren-)224
1359 y(dering)i(con)o(text.)j(If)d(sev)o(eral)f(Op)q(enGL)i(renderers)e
(are)g(all)h(writing)g(to)e(the)h(same)224 1416 y(windo)o(w,)f(they)h
(will)h(share)e(those)g(bu\013ers.)19 b(Rendering)d(op)q(erations)e(to)
g(one)g(win-)224 1472 y(do)o(w)21 b(nev)o(er)h(a\013ect)f(the)h
(unobscured)h(pixels)g(of)e(another)g(windo)o(w,)j(or)d(of)g(the)224
1528 y(corresp)q(onding)e(pixels)h(of)d(ancillary)j(bu\013ers)e(of)g
(that)f(windo)o(w.)29 b(If)18 b(an)g Fh(Expose)224 1585
y Fm(ev)o(en)o(t)d(is)h(receiv)o(ed)h(b)o(y)e(the)h(clien)o(t,)g(the)g
(v)m(alues)g(in)h(the)e(ancillary)i(bu\013ers)f(and)f(in)224
1641 y(the)f(bac)o(k)g(bu\013ers)g(for)f(regions)h(corresp)q(onding)h
(to)e(the)h(exp)q(osed)g(region)g(b)q(ecome)224 1698
y(unde\014ned.)295 1754 y(A)f(rendering)g(con)o(text)g(can)g(b)q(e)g
(used)g(with)h(m)o(ultiple)g Fh(GLXDrawable)p Fm(s)d(as)i(long)224
1811 y(as)k(those)g Fh(Drawable)p Fm(s)e(are)i Fj(similar)p
Fm(.)25 b(Similar)18 b(means)f(that)g(the)g(rendering)h(con-)224
1867 y(texts)d(and)g Fh(GLXDrawable)p Fm(s)f(are)h(created)g(with)g
(the)h(same)f Fh(XVisualInfo)p Fm(.)295 1924 y(An)22
b(application)i(can)f(use)f(an)o(y)g(rendering)i(con)o(text)d(\(sub)s
(ject)h(to)g(the)g(re-)224 1980 y(strictions)16 b(discussed)h(in)g(the)
e(section)h(on)g(address)g(spaces\))f(to)g(render)h(in)o(to)f(an)o(y)
224 2037 y(similar)k Fh(GLXDrawable)p Fm(.)26 b(An)18
b(implication)i(is)e(that)f(m)o(ultiple)j(applications)f(can)224
2093 y(render)d(in)o(to)f(the)g(same)g(windo)o(w,)g(eac)o(h)g(using)h
(a)f(di\013eren)o(t)h(rendering)g(con)o(text.)p 224 2133
570 2 v 275 2159 a Ff(\003)293 2175 y Fe(The)10 b(asso)q(ciation)j(is)e
(with)g(a)f Fd(f)p Fc(Visual)p Fe(,)e Fc(screen)p Fe(,)g
Fc(depth)p Fd(g)g Fe(triple.)18 b(An)10 b Fc(XVisualIn)o(fo)c
Fe(is)11 b(used)224 2221 y(b)o(y)i(GLX)g(functions)i(since)f(it)f(can)h
(b)q(e)f(in)o(terpreted)h(unam)o(biguosl)q(y)m(.)277
2252 y Ff(y)293 2268 y Fe(An)o(y)h(rendering)h(system)e(is)h(free)f(to)
h(use)f(the)h(ancillary)i(bu\013ers)e(as)f(long)i(as)e(it)h(uses)g
(them)224 2313 y(in)f(a)f(manner)h(consisten)o(t)g(with)g(the)f(use)g
(b)o(y)h(the)f(Op)q(enGL.)925 2613 y Fm(2)p eop
%%Page: 3 4
3 3 bop 224 286 a Fi(2.2)56 b(Using)18 b(Rendering)g(Con)n(texts)224
372 y Fm(Op)q(enGL)k(de\014nes)f(b)q(oth)f(clien)o(t)h(state)f(and)g
(serv)o(er)g(state.)33 b(Th)o(us)20 b(a)g(rendering)224
429 y(con)o(text)f(consists)h(of)f(t)o(w)o(o)f(parts:)28
b(one)19 b(to)g(hold)h(the)g(clien)o(t)h(state)d(and)i(one)g(to)224
485 y(hold)e(the)f(serv)o(er)f(state.)24 b(The)17 b(clien)o(t)h(is)f
(resp)q(onsible)i(for)d(creating)h(a)f(rendering)224
542 y(con)o(text)f(and)g(a)g(dra)o(w)o(able;)g(defaults)g(are)g(not)g
(supplied.)295 598 y(Eac)o(h)21 b(thread)h(can)g(ha)o(v)o(e)f(at)g
(most)g(one)g(curren)o(t)h(rendering)h(con)o(text.)38
b(In)224 655 y(addition,)17 b(a)e(rendering)i(con)o(text)e(can)h(b)q(e)
h(curren)o(t)f(for)f(only)h(one)g(thread)g(at)f(one)224
711 y(time.)295 767 y(Issuing)f(Op)q(enGL)h(commands)e(ma)o(y)g(cause)g
(the)h(X)f(bu\013er)g(to)g(b)q(e)h(\015ushed.)20 b(In)224
824 y(particular,)15 b(calling)h Fb(glFlush\(\))f Fm(will)h(\015ush)f
(b)q(oth)f(the)g(X)h(and)f(Op)q(enGL)h(render-)224 880
y(ing)h(streams.)295 937 y(Some)h(state)f(is)h(shared)g(b)q(et)o(w)o
(een)g(the)g(Op)q(enGL)h(and)f(X.)f(The)h(pixel)i(v)m(alues)224
993 y(in)d(the)f(X)f(frame)h(bu\013er)f(are)h(shared.)20
b(The)15 b(X)g(double)h(bu\013er)e(extension)i(\(DBE\))224
1050 y(has)h(a)f(de\014nition)j(for)d(whic)o(h)i(bu\013er)e(is)i
(curren)o(tly)f(the)g(displa)o(y)o(ed)h(bu\013er.)25
b(This)224 1106 y(information)17 b(is)g(shared)f(with)h(GLX.)f(The)h
(state)e(of)h(whic)o(h)i(bu\013er)e(is)h(displa)o(y)o(ed)224
1163 y(trac)o(ks)k(in)i(b)q(oth)f(extensions,)h(indep)q(enden)o(t)i(of)
c(whic)o(h)i(extension)f(initiates)h(a)224 1219 y(bu\013er)15
b(sw)o(ap.)224 1341 y Fi(2.3)56 b(Direct)17 b(Rendering)h(and)h
(Address)g(Spaces)224 1427 y Fm(One)h(of)f(the)g(basic)h(assumptions)f
(of)g(the)g(X)g(proto)q(col)g(is)h(that)e(if)i(a)f(clien)o(t)h(can)224
1483 y(name)f(an)g(ob)s(ject,)h(then)f(it)h(can)f(manipulate)h(that)f
(ob)s(ject.)31 b(GLX)19 b(in)o(tro)q(duces)224 1540 y(the)e(notion)g
(of)g(an)f Fj(A)n(ddr)n(ess)h(Sp)n(ac)n(e)p Fm(.)24 b(A)17
b(GLX)g(ob)s(ject)f(cannot)h(b)q(e)g(used)g(outside)224
1596 y(of)e(the)g(address)g(space)h(in)g(whic)o(h)g(it)f(exists.)295
1652 y(In)20 b(a)f(classic)i(UNIX)f(en)o(vironmen)o(t,)g(eac)o(h)g(pro)
q(cess)f(is)h(in)g(its)g(o)o(wn)f(address)224 1709 y(space.)h(In)14
b(a)g(m)o(ulti-threaded)h(en)o(vironmen)o(t,)f(eac)o(h)g(of)f(the)h
(threads)f(will)j(share)d(a)224 1765 y(virtual)j(address)f(space)h
(whic)o(h)g(references)g(a)e(common)h(data)g(region.)295
1822 y(An)21 b(Op)q(enGL)i(clien)o(t)f(that)f(is)g(rendering)h(to)f(a)g
(graphics)g(engine)i(directly)224 1878 y(connected)17
b(to)e(the)i(executing)g(CPU)e(ma)o(y)h(a)o(v)o(oid)f(passing)i(the)f
(tok)o(ens)f(through)224 1935 y(the)h(X)f(serv)o(er.)20
b(This)15 b(generalization)i(is)f(made)f(for)g(p)q(erformance)g
(reasons.)20 b(The)224 1991 y(mo)q(del)15 b(describ)q(ed)g(here)f(sp)q
(eci\014cally)j(allo)o(ws)d(for)f(suc)o(h)h(optimizations,)g(but)g(do)q
(es)224 2048 y(not)h(mandate)g(that)f(an)o(y)h(implemen)o(tation)i
(supp)q(ort)e(it.)295 2104 y(When)e(direct)g(rendering)h(is)f(o)q
(ccurring,)g(the)g(address)g(space)g(of)f(the)h(renderer)224
2161 y(is)h(that)e(of)g(the)i(direct)f(pro)q(cess;)h(when)f(direct)h
(rendering)g(is)g(not)e(b)q(eing)i(used,)g(the)224 2217
y(address)21 b(space)f(of)g(the)g(renderer)h(is)g(that)f(of)f(the)i(X)f
(serv)o(er.)35 b(The)21 b(clien)o(t)g(has)224 2273 y(the)h(abilit)o(y)h
(to)f(reject)g(the)g(use)g(of)f(direct)i(rendering,)h(but)f(there)f(ma)
o(y)f(b)q(e)h(a)224 2330 y(p)q(erformance)16 b(p)q(enalt)o(y)f(in)h
(doing)g(so.)295 2386 y(In)e(order)g(to)f(use)i(direct)f(rendering,)h
(a)f(clien)o(t)h(m)o(ust)e(create)h(a)g(direct)g(render-)224
2443 y(ing)g(con)o(text.)k(Both)13 b(the)g(clien)o(t)h(con)o(text)f
(state)f(and)h(the)g(serv)o(er)g(con)o(text)f(state)h(of)925
2613 y(3)p eop
%%Page: 4 5
4 4 bop 224 745 1459 2 v 224 1939 2 1195 v 278 819 a
21313290 15345567 1578762 1644544 51178209 37627166 startTexFig
278 819 a
%%BeginDocument: block.eps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
/incr {
2 1 roll dup 3 -1 roll
5 -1 roll dup 6 1 roll cvi put
3 1 roll dup 4 1 roll add 3 1 roll
} bind def
/scanspan {
/xb2 exch def
/xg2 exch def
/xr2 exch def
/xx2 exch def
/xb1 exch def
/xg1 exch def
/xr1 exch def
/xx1 exch def
/dx xx2 xx1 sub def
dx 0 ne {
/drdx xr2 xr1 sub dx div def
/dgdx xg2 xg1 sub dx div def
/dbdx xb2 xb1 sub dx div def
}{
/drdx 0 def
/dgdx 0 def
/dbdx 0 def
} ifelse
/len dx 1 add cvi 3 mul def
len string dup dup
xr1 drdx 3 -1 roll
0 3 len 1 sub { incr } for
pop pop pop
xg1 dgdx 3 -1 roll
1 3 len 1 sub { incr } for
pop pop pop
xb1 dbdx 3 -1 roll
2 3 len 1 sub { incr } for
3 1 roll pop pop
} bind def
/scantrap {
/trapsave save def
/b4 exch def
/g4 exch def
/r4 exch def
/x4 exch def
/b3 exch def
/g3 exch def
/r3 exch def
/x3 exch def
/b2 exch def
/g2 exch def
/r2 exch def
/y2 exch def
/x2 exch def
/b1 exch def
/g1 exch def
/r1 exch def
/y1 exch def
/x1 exch def
/dy y1 y2 sub def
dy 0 ne {
/dxdy12 x2 x1 sub dy div def
/dxdy43 x3 x4 sub dy div def
/drdy12 r2 r1 sub dy div def
/drdy43 r3 r4 sub dy div def
/dgdy12 g2 g1 sub dy div def
/dgdy43 g3 g4 sub dy div def
/dbdy12 b2 b1 sub dy div def
/dbdy43 b3 b4 sub dy div def
}{
/dxdy12 0 def
/dxdy43 0 def
/drdy12 0 def
/drdy43 0 def
/dgdy12 0 def
/dgdy43 0 def
/dbdy12 0 def
/dbdy43 0 def
} ifelse
y1 -1 y2 {
x4 x1 sub 0 lt { exit } if
/y exch def
/traploopsave save def
x1 r1 g1 b1 x4 r4 g4 b4 scanspan
/img exch def
/xlen x4 x1 sub 1 add def
x1 y translate
xlen 1 scale
xlen cvi 1 8 [xlen 0 0 0.9 0 0] { img } false 3 colorimage
traploopsave restore
/x1 x1 dxdy12 add def
/r1 r1 drdy12 add def
/g1 g1 dgdy12 add def
/b1 b1 dbdy12 add def
/x4 x4 dxdy43 add def
/r4 r4 drdy43 add def
/g4 g4 dgdy43 add def
/b4 b4 dbdy43 add def
} for
trapsave restore
} def
/d {
newpath
moveto
lineto
lineto
closepath
stroke
} bind def
/q {
newpath
moveto
lineto
lineto
lineto
closepath
stroke
} bind def
/draw3 {
setgray
newpath
moveto
lineto
lineto
closepath
stroke
} bind def
/F3 {
setgray
newpath
moveto
lineto
lineto
closepath
fill
} bind def
/F4 {
setgray
newpath
moveto
lineto
lineto
lineto
closepath
fill
} bind def
/F5 {
setgray
newpath
moveto
lineto
lineto
lineto
lineto
closepath
fill
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Courier-Bold-SHOWISO exch definefont pop
/NewCenturySchlbk-BoldItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/NewCenturySchlbk-BoldItalic-SHOWISO exch definefont pop
/Helvetica-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-BoldOblique-SHOWISO exch definefont pop
/Helvetica-Oblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Oblique-SHOWISO exch definefont pop
/Helvetica findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-SHOWISO exch definefont pop
/Times-Italic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Times-Italic-SHOWISO exch definefont pop
gsave
0 0 0 setrgbcolor
gsave
newpath
14.3725 478.994 M -5.62748 518.994 L 223.373 518.994 L 223.373 478.994 L
closepath clip newpath
/Helvetica-Bold-SHOWISO findfont 32 scalefont setfont
0 0 0 setrgbcolor
24 487 M (GLX) S
102.104 487 M (Client) S
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
309.562 243.075 translate
-90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1 setlinewidth
newpath
309.562 429.267 M
309.562 262.075 L
stroke
grestore
0 0 0 setrgbcolor
0 0 0 setrgbcolor
gsave
matrix currentmatrix
[179.773 0 0 -139.751 213.558 571.59] concat
B
setmatrix
3 setlinewidth
gsave stroke grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
1 setlinewidth
newpath
214.499 485.853 M
336.858 485.853 L
stroke
grestore
0 0 0 setrgbcolor
gsave
newpath
260.972 443.842 M 240.972 474.842 L 349.972 474.842 L 349.972 443.842 L
closepath clip newpath
270 450 M gsave
-270 0.0 translate
1.06779 1.0 scale
252.858 0.0 translate
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
(Xlib) S
grestore
grestore
0 0 0 setrgbcolor
gsave
newpath
232.736 501.286 M 212.736 563.286 L 408.736 563.286 L 408.736 501.286 L
closepath clip newpath
242 539 M gsave
-242 0.0 translate
1.02541 1.0 scale
236.004 0.0 translate
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
(Application) S
grestore
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
242 508 M (and) S
293.328 508 M (Toolkit) S
grestore
0 0 0 setrgbcolor
gsave
1 setlinewidth
339.681 472.135 M 339.681 503.135 L 393.681 503.135 L 393.681 472.135 L
closepath stroke
newpath
329.681 472.135 M 309.681 503.135 L 423.681 503.135 L 423.681 472.135 L
closepath clip newpath
339 479 M gsave
-339 0.0 translate
1.05383 1.0 scale
321.685 0.0 translate
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
(GLX) S
grestore
grestore
0 0 0 setrgbcolor
gsave
newpath
21.9023 170.341 M 1.90228 210.341 L 197.902 210.341 L 197.902 170.341 L
closepath clip newpath
/Helvetica-Bold-SHOWISO findfont 32 scalefont setfont
0 0 0 setrgbcolor
31 179 M (X) S
65.384 179 M (Server) S
grestore
0 0 0 setrgbcolor
gsave
matrix currentmatrix
[179.773 0 0 -139.751 216.382 241.503] concat
B
setmatrix
3 setlinewidth
gsave stroke grestore
grestore
0 0 0 setrgbcolor
gsave
1 setlinewidth
[1] 0 setdash
293.09 158.196 M 293.09 182.196 L 395.09 182.196 L 395.09 158.196 L
closepath stroke
newpath
283.09 158.196 M 263.09 182.196 L 425.09 182.196 L 425.09 158.196 L
closepath clip newpath
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
293 165 M (X) S
313.98 165 M (Renderer) S
grestore
0 0 0 setrgbcolor
gsave
1 setlinewidth
280.03 117.042 M 280.03 141.042 L 395.03 141.042 L 395.03 117.042 L
closepath stroke
newpath
270.03 117.042 M 250.03 141.042 L 425.03 141.042 L 425.03 117.042 L
closepath clip newpath
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
280 124 M (GL) S
313.98 124 M (Renderer) S
grestore
0 0 0 setrgbcolor
gsave
1 setlinewidth
223.911 217.067 M 223.911 241.067 L 303.911 241.067 L 303.911 217.067 L
closepath stroke
newpath
213.911 217.067 M 193.911 241.067 L 333.911 241.067 L 333.911 217.067 L
closepath clip newpath
223 224 M gsave
-223 0.0 translate
1.02613 1.0 scale
217.322 0.0 translate
/Helvetica-Bold-SHOWISO findfont 18 scalefont setfont
0 0 0 setrgbcolor
(Dispatch) S
grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
292.031 168.199 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1 setlinewidth
newpath
240.912 216.353 M
240.912 168.199 L
273.031 168.199 L
stroke
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
277.972 129.045 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1 setlinewidth
newpath
231.382 216.353 M
231.382 129.045 L
258.972 129.045 L
stroke
grestore
0 0 0 setrgbcolor
gsave
matrix currentmatrix
[30.1191 0 0 -164.615 638.048 237.216] concat
B
setmatrix
3 setlinewidth
gsave stroke grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
3 setlinewidth
newpath
668.168 237.216 M
728.406 292.088 L
728.406 127.473 L
668.168 72.6014 L
stroke
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
3 setlinewidth
newpath
638.049 237.216 M
698.287 292.088 L
728.406 292.088 L
stroke
grestore
0 0 0 setrgbcolor
gsave
newpath
573.458 25.4462 M 553.458 65.4462 L 807.458 65.4462 L 807.458 25.4462 L
closepath clip newpath
583 34 M gsave
-583 0.0 translate
1.02845 1.0 scale
566.87 0.0 translate
/Helvetica-Bold-SHOWISO findfont 32 scalefont setfont
0 0 0 setrgbcolor
(Framebuffer) S
grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
639.99 171.199 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1 setlinewidth
newpath
398.037 171.199 M
620.99 171.199 L
stroke
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
639.99 130.045 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1 setlinewidth
newpath
398.037 130.045 M
620.99 130.045 L
stroke
grestore
0 0 0 setrgbcolor
gsave
newpath
486.865 320.381 M 466.865 382.381 L 640.865 382.381 L 640.865 320.381 L
closepath clip newpath
/Helvetica-Bold-SHOWISO findfont 24 scalefont setfont
0 0 0 setrgbcolor
497 358 M (Direct) S
575.664 358 M (GL) S
498 327 M gsave
-498 0.0 translate
1.03455 1.0 scale
481.37 0.0 translate
(Renderer) S
grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
548.633 385.398 translate
-90 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1 setlinewidth
newpath
393.331 484.138 M
548.633 484.138 L
548.633 404.398 L
stroke
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
637.166 215.782 translate
0 rotate
1.1 1.1 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
1 setlinewidth
newpath
548.633 303.234 M
548.633 215.782 L
618.166 215.782 L
stroke
grestore
0 0 0 setrgbcolor
gsave
matrix currentmatrix
[139.301 0 0 -83.1647 479.923 387.256] concat
B
setmatrix
3 setlinewidth
gsave stroke grestore
grestore
grestore
showpage
%%EndDocument
endTexFig
263 1909 a Fp(Figure)14 b(1.)k(Direct)c(Rendering)g(Blo)q(c)o(k)g
(Diagram.)p 1681 1939 2 1195 v 224 1941 1459 2 v 925
2613 a Fm(4)p eop
%%Page: 5 6
5 5 bop 224 286 a Fm(a)17 b(direct)h(rendering)g(con)o(text)e(exist)i
(in)g(the)f(clien)o(t's)h(address)f(space;)g(this)h(state)224
343 y(cannot)13 b(b)q(e)h(shared)f(b)o(y)g(a)g(clien)o(t)i(in)f
(another)e(pro)q(cess.)20 b(With)13 b(indirect)i(rendering)224
399 y(con)o(texts,)d(the)h(clien)o(t)h(con)o(text)e(state)g(is)i(k)o
(ept)e(in)i(the)f(clien)o(t's)g(address)g(space)g(and)224
456 y(the)j(serv)o(er)f(con)o(text)h(state)f(is)h(k)o(ept)g(in)g(the)g
(address)g(space)g(of)f(the)h(X)g(serv)o(er.)21 b(In)224
512 y(this)e(case)f(the)h(serv)o(er)e(con)o(text)h(state)g(is)g(stored)
g(in)h(an)g(X)f(resource;)h(it)g(has)f(an)224 569 y(asso)q(ciated)e
(XID)f(and)g(ma)o(y)g(p)q(oten)o(tially)h(b)q(e)g(used)g(b)o(y)f
(another)g(clien)o(t)h(pro)q(cess.)224 690 y Fi(2.4)56
b(Op)r(enGL)18 b(Displa)n(y)g(Lists)224 776 y Fm(Most)13
b(Op)q(enGL)i(state)e(is)h(small)g(and)g(easily)h(retriev)o(ed)f(using)
h(the)e Fb(glGet*)i Fm(com-)224 833 y(mands.)33 b(This)20
b(is)f(not)g(true)h(of)f(Op)q(enGL)h(displa)o(y)h(lists,)g(whic)o(h)f
(are)f(used,)i(for)224 889 y(example,)15 b(to)f(encapsulate)i(a)e(mo)q
(del)i(of)e(some)h(ph)o(ysical)h(ob)s(ject.)j(First,)14
b(there)h(is)224 946 y(no)i(mec)o(hanism)h(to)f(obtain)h(the)f(con)o
(ten)o(ts)g(of)g(a)g(displa)o(y)h(list)g(from)f(the)g(render-)224
1002 y(ing)h(con)o(text.)27 b(Second,)19 b(displa)o(y)g(lists)f(ma)o(y)
f(b)q(e)i(large)f(and)g(n)o(umerous.)27 b(It)18 b(ma)o(y)224
1059 y(b)q(e)e(desirable)h(for)d(m)o(ultiple)j(rendering)f(con)o(texts)
f(to)g(share)g(displa)o(y)h(lists)g(rather)224 1115 y(than)f
(replicating)i(that)e(information)g(in)h(eac)o(h)f(con)o(text.)295
1171 y(GLX)21 b(pro)o(vides)g(for)f(limited)i(sharing)f(of)g(displa)o
(y)g(lists;)j(the)d(lists)h(can)e(b)q(e)224 1228 y(shared)g(only)h(if)g
(the)f(serv)o(er)g(state)f(for)h(the)g(con)o(texts)g(share)g(a)g
(single)h(address)224 1284 y(space.)31 b(Using)20 b(this)f(mec)o
(hanism,)h(a)f(single)h(set)f(of)f(lists)i(can)f(b)q(e)h(used,)g(for)e
(in-)224 1341 y(stance,)f(b)o(y)f(a)h(con)o(text)f(that)g(supp)q(orts)h
(color)g(index)h(rendering)f(and)g(a)g(con)o(text)224
1397 y(that)e(supp)q(orts)g(R)o(GBA)g(rendering.)295
1454 y(A)i(group)g(of)g(shared)h(displa)o(y)h(lists)f(exists)g(un)o
(til)g(the)g(last)f(referencing)i(ren-)224 1510 y(dering)d(con)o(text)f
(is)h(destro)o(y)o(ed.)k(All)c(rendering)h(con)o(texts)d(ha)o(v)o(e)h
(equal)h(access)g(to)224 1567 y(using)g(lists)f(or)g(de\014ning)h(new)f
(lists.)21 b(Implemen)o(tations)15 b(sharing)h(con)o(texts)e(m)o(ust)
224 1623 y(handle)i(the)e(case)g(where)h(one)f(rendering)i(con)o(text)d
(is)i(using)g(a)f(displa)o(y)i(list)f(when)224 1680 y(another)g
(rendering)h(con)o(text)f(destro)o(ys)f(that)h(list.)295
1736 y(When)e(displa)o(y)g(lists)h(are)e(shared)g(b)q(et)o(w)o(een)h
(Op)q(enGL)h(con)o(texts,)e(the)h(sharing)224 1792 y(extends)18
b(only)g(to)f(the)g(displa)o(y)i(lists)f(themselv)o(es)g(and)f(the)h
(information)f(ab)q(out)224 1849 y(whic)o(h)f(displa)o(y)g(list)g(n)o
(um)o(b)q(ers)f(ha)o(v)o(e)g(b)q(een)h(allo)q(cated.)21
b(In)15 b(particular,)h(the)f(v)m(alue)224 1905 y(of)g(the)g(base)g
(set)g(with)h Fb(glListBase)h Fm(is)f(not)e(shared.)295
1962 y(In)24 b(general,)i(Op)q(enGL)e(commands)g(are)f(not)g(atomic.)44
b Fb(glEndList)26 b Fm(and)224 2018 y Fb(glDeleteLists)f
Fm(are)d(exceptions.)42 b(The)23 b(list)g(named)g(in)g(a)f
Fb(glNewList)i Fm(call)224 2075 y(is)16 b(not)f(created)g(or)g(sup)q
(erseded)i(un)o(til)f Fb(glEndList)h Fm(is)f(called.)22
b(If)16 b(one)f(rendering)224 2131 y(con)o(text)g(is)g(sharing)g(a)g
(displa)o(y)h(list)g(with)f(another,)f(it)h(will)i(con)o(tin)o(ue)e(to)
g(use)g(the)224 2188 y(existing)d(de\014nition)h(while)f(the)f(second)g
(con)o(text)g(is)g(in)h(the)f(pro)q(cess)g(of)f(re-de\014ning)224
2244 y(it.)925 2613 y(5)p eop
%%Page: 6 7
6 6 bop 224 286 a Fi(2.5)56 b(T)-5 b(exture)17 b(Ob)s(jects)224
372 y Fm(Op)q(enGL)i(texture)e(state)g(can)h(b)q(e)g(encapsulated)h(in)
f(a)f(named)h(texture)f(ob)s(ject.)224 429 y(A)j(texture)f(ob)s(ject)g
(is)h(created)g(b)o(y)f(binding)j(an)d(un)o(used)i(name)e(to)g(one)h
(of)f(the)224 485 y(texture)e(targets)e(\(TEXTURE)p 787
485 14 2 v 16 w(1D)i(or)f(TEXTURE)p 1164 485 V 16 w(2D\))g(of)h(a)f
(rendering)i(con-)224 542 y(text.)h(When)13 b(a)g(texture)g(ob)s(ject)g
(is)h(b)q(ound,)g(Op)q(enGL)h(op)q(erations)e(on)g(the)g(target)224
598 y(to)i(whic)o(h)h(it)g(is)g(b)q(ound)g(a\013ect)f(the)g(b)q(ound)i
(texture)e(ob)s(ject,)f(and)i(queries)g(of)f(the)224
655 y(target)f(to)h(whic)o(h)h(it)f(is)h(b)q(ound)g(return)f(state)g
(from)f(the)h(b)q(ound)h(texture)f(ob)s(ject.)295 711
y(T)l(exture)f(ob)s(jects)h(ma)o(y)e(b)q(e)j(shared)f(b)o(y)f
(rendering)i(con)o(texts,)e(as)g(long)h(as)f(the)224
767 y(serv)o(er)k(p)q(ortion)h(of)f(the)h(con)o(texts)e(share)i(the)f
(same)g(address)h(space.)30 b(Op)q(enGL)224 824 y(mak)o(es)15
b(no)g(attempt)g(to)g(sync)o(hronize)h(access)g(to)e(texture)i(ob)s
(jects.)k(If)15 b(a)g(texture)224 880 y(ob)s(ject)10
b(is)h(b)q(ound)g(to)e(more)h(than)g(one)h(con)o(text,)f(then)g(it)h
(is)g(up)f(to)g(the)g(programmer)224 937 y(to)15 b(ensure)h(that)f(the)
h(con)o(ten)o(ts)f(of)h(the)f(ob)s(ject)g(are)h(not)f(b)q(eing)i(c)o
(hanged)f(via)g(one)224 993 y(con)o(text)g(while)h(another)f(con)o
(text)f(is)i(using)g(the)f(texture)g(ob)s(ject)f(for)g(rendering.)224
1050 y(The)i(results)g(of)f(c)o(hanging)h(a)f(texture)g(ob)s(ject)g
(while)i(another)e(con)o(text)g(is)h(using)224 1106 y(it)f(are)e
(unde\014ned.)295 1163 y(A)k(texture)h(ob)s(ject)f(will)j(not)d(b)q(e)h
(deleted)h(un)o(til)g(it)f(is)g(no)g(longer)g(b)q(ound)h(to)224
1219 y(an)o(y)15 b(rendering)h(con)o(text.)224 1341 y
Fi(2.6)56 b(Aligning)18 b(Multiple)f(Dra)n(w)n(ables)224
1427 y Fm(A)11 b(clien)o(t)h(can)g(create)e(one)i(windo)o(w)f(with)g
(an)g(o)o(v)o(erla)o(y)f Fh(Visual)g Fm(and)i(a)e(second)i(with)224
1483 y(a)17 b(main)h(plane)g Fh(Visual)e Fm(and)h(then)h(mo)o(v)o(e)e
(them)h(indep)q(enden)o(tly)j(or)d(in)h(concert)224 1540
y(to)c(k)o(eep)h(them)f(aligned.)21 b(This)15 b(is)g(a)f(ma)s(jor)f(c)o
(hange)i(b)q(et)o(w)o(een)g(the)f(Op)q(enGL)i(and)224
1596 y(the)g(previous)g(SGI)f(proprietary)g(GL:)g(allo)q(cation)i(of)d
(o)o(v)o(erla)o(y)h(planes)h(and)g(main)224 1652 y(planes)f(for)f(ev)o
(ery)g(windo)o(w)h(is)g(no)f(longer)h(done)f(automatically)l(.)21
b(T)l(o)14 b(accomplish)224 1709 y(what)e(w)o(as)f(done)h(b)o(y)g(a)g
Fb(dra)o(wmo)q(de)p Fm(/)p Fb(gcon\014g)g Fm(pair)g(in)h(previous)g(v)o
(ersions)f(of)g(the)224 1765 y(SGI)i(proprietary)f(GL,)g(the)h(Op)q
(enGL)h(clien)o(t)f(can)g(use)g(the)f(follo)o(wing)i(paradigm:)292
1859 y Fl(\017)23 b Fm(Mak)o(e)11 b(the)h(windo)o(ws)f(whic)o(h)i(are)e
(to)g(share)h(the)g(same)f(screen)h(area)f(c)o(hildren)338
1916 y(of)k(a)h(single)h(windo)o(w)f(\(that)f(will)j(nev)o(er)e(b)q(e)h
(written\).)22 b(Size)17 b(and)f(p)q(osition)338 1972
y(the)d(c)o(hildren)i(to)e(completely)h(o)q(cclude)h(their)e(paren)o
(t.)19 b(When)14 b(the)f(windo)o(w)338 2029 y(com)o(bination)k(m)o(ust)
g(b)q(e)g(mo)o(v)o(ed)g(or)f(resized,)i(p)q(erform)f(the)g(op)q
(eration)g(on)338 2085 y(the)e(paren)o(t.)292 2179 y
Fl(\017)23 b Fm(Mak)o(e)18 b(the)h(sub)o(windo)o(ws)h(ha)o(v)o(e)f(a)f
(bac)o(kground)h(of)g Fh(None)g Fm(so)f(that)h(the)g(X)338
2235 y(serv)o(er)h(will)i(not)f(pain)o(t)g(in)o(to)f(the)h(shared)g
(area)f(when)h(y)o(ou)f(restac)o(k)g(the)338 2292 y(c)o(hildren.)292
2385 y Fl(\017)j Fm(Select)17 b(for)f(device-related)j(ev)o(en)o(ts)d
(on)h(the)f(paren)o(t)h(windo)o(w,)f(not)h(on)f(the)338
2442 y(c)o(hildren.)28 b(Since)19 b(device-related)g(ev)o(en)o(ts)e
(with)h(the)f(fo)q(cus)h(in)g(one)f(of)g(the)925 2613
y(6)p eop
%%Page: 7 8
7 7 bop 338 286 a Fm(c)o(hild)20 b(windo)o(ws)f(will)i(b)q(e)e
(inherited)i(b)o(y)e(the)g(paren)o(t,)g(input)h(dispatc)o(hing)338
343 y(can)15 b(b)q(e)h(done)g(directly)g(without)f(reference)h(to)f
(the)g(c)o(hild)i(on)e(top.)224 465 y Fi(2.7)56 b(Multiple)17
b(Threads)224 550 y Fm(It)12 b(is)h(p)q(ossible)g(to)f(create)f(a)h(v)o
(ersion)g(of)g(the)g(clien)o(t)h(side)g(library)f(that)g(is)g
(protected)224 607 y(against)g(m)o(ultiple)j(threads)d(attempting)g(to)
g(access)h(the)f(same)g(connection.)21 b(This)224 663
y(is)15 b(accomplished)g(b)o(y)f(ha)o(ving)g(appropriate)g
(de\014nitions)i(for)d Fb(Lo)q(c)o(kDispla)o(y)i Fm(and)224
720 y Fb(Unlo)q(c)o(kDispla)o(y)p Fm(.)21 b(Since)15
b(there)e(is)h(some)g(p)q(erformance)g(p)q(enalt)o(y)g(for)f(doing)h
(the)224 776 y(lo)q(c)o(king,)h(it)f(is)g(implemen)o(tation-dep)q
(enden)o(t)i(whether)e(a)f(thread)g(safe)h(v)o(ersion,)f(a)224
833 y(non-safe)j(v)o(ersion,)f(or)g(b)q(oth)h(v)o(ersions)f(of)g(the)h
(library)g(are)g(pro)o(vided.)21 b(In)o(terrupt)224 889
y(routines)11 b(ma)o(y)f(not)g(share)g(a)g(connection)h(\(and)f(hence)i
(a)e(rendering)h(con)o(text\))f(with)224 946 y(the)k(main)f(thread.)20
b(An)13 b(application)i(ma)o(y)e(b)q(e)h(written)g(as)f(a)g(set)g(of)g
(co-op)q(erating)224 1002 y(pro)q(cesses.)295 1059 y(X)20
b(has)h(atomicit)o(y)f(\(b)q(et)o(w)o(een)h(clien)o(ts\))h(and)e
(sequen)o(tialit)o(y)i(\(within)g(a)e(sin-)224 1115 y(gle)d(clien)o
(t\))g(requiremen)o(ts)g(that)e(limit)j(the)e(amoun)o(t)f(of)h
(parallelism)i(ac)o(hiev)m(able)224 1171 y(when)j(in)o(terpreting)h
(the)e(command)h(streams.)35 b(GLX)20 b(relaxes)h(these)g(require-)224
1228 y(men)o(ts.)j(Sequen)o(tialit)o(y)18 b(is)g(still)g(guaran)o(teed)
e(within)i(a)e(command)h(stream,)f(but)224 1284 y(not)c(b)q(et)o(w)o
(een)g(the)g(X)g(and)g(the)g(Op)q(enGL)h(command)f(streams.)18
b(It)11 b(is)i(p)q(ossible,)h(for)224 1341 y(example,)h(that)e(an)h(X)h
(command)f(issued)h(b)o(y)f(a)g(single)h(threaded)f(clien)o(t)i(after)d
(an)224 1397 y(Op)q(enGL)k(command)e(migh)o(t)g(b)q(e)h(executed)g(b)q
(efore)f(that)g(Op)q(enGL)h(command.)295 1454 y(The)f(X)g(sp)q
(eci\014cation)i(requires)f(that)f(commands)g(are)g(atomic:)338
1548 y(If)10 b(a)h(serv)o(er)f(is)g(implemen)o(ted)j(with)d(in)o
(ternal)i(concurrency)l(,)g(the)e(o)o(v)o(er-)338 1604
y(all)21 b(e\013ect)f(m)o(ust)f(b)q(e)i(as)f(if)g(individual)j
(requests)d(are)g(executed)h(to)338 1660 y(completion)f(in)g(some)e
(serial)i(order,)f(and)g(requests)g(from)f(a)h(giv)o(en)338
1717 y(connection)g(m)o(ust)f(b)q(e)h(executed)g(in)g(deliv)o(ery)g
(order)f(\(that)f(is,)i(the)338 1773 y(total)14 b(execution)j(order)e
(is)g(a)g(sh)o(u\017e)h(of)e(the)i(individual)i(streams\).)224
1867 y(Op)q(enGL)j(commands)e(are)g(not)g(guaran)o(teed)g(to)g(b)q(e)h
(atomic.)32 b(Some)20 b(Op)q(enGL)224 1924 y(rendering)d(commands)e
(migh)o(t)h(otherwise)f(impair)i(in)o(teractiv)o(e)f(use)g(of)f(the)g
(win-)224 1980 y(do)o(wing)g(system)g(b)o(y)g(the)g(user.)20
b(F)l(or)15 b(instance)h(calling)h(a)e(deeply)h(nested)g(displa)o(y)224
2037 y(list)j(or)f(rendering)h(a)f(large)g(texture)g(mapp)q(ed)h(p)q
(olygon)g(on)f(a)g(system)g(with)g(no)224 2093 y(graphics)h(hardw)o
(are)e(could)i(prev)o(en)o(t)e(a)h(user)g(from)f(p)q(opping)i(up)g(a)e
(men)o(u)h(so)q(on)224 2149 y(enough)e(to)e(b)q(e)i(usable.)295
2206 y(Sync)o(hronization)i(is)g(in)g(the)f(hands)h(of)f(the)g(clien)o
(t.)28 b(It)17 b(can)g(b)q(e)h(main)o(tained)224 2262
y(with)12 b(mo)q(derate)f(cost)f(with)i(the)f(judicious)i(use)f(of)f
(the)g Fb(glFinish)p Fm(,)i Fb(glXW)l(aitGL)p Fm(,)224
2319 y Fb(glXW)l(aitX)p Fm(,)k(and)g Fb(XSync)f Fm(commands.)24
b(Op)q(enGL)18 b(and)f(X)g(rendering)h(can)e(b)q(e)224
2375 y(done)i(in)h(parallel)g(as)e(long)h(as)f(the)h(clien)o(t)h(do)q
(es)f(not)f(preclude)i(it)f(with)g(explicit)224 2432
y(sync)o(hronization)13 b(calls.)20 b(This)13 b(is)g(true)f(ev)o(en)h
(when)g(the)f(rendering)h(is)g(b)q(eing)h(done)925 2613
y(7)p eop
%%Page: 8 9
8 8 bop 224 286 a Fm(b)o(y)17 b(the)g(X)g(serv)o(er.)25
b(Th)o(us,)16 b(a)h(m)o(ulti-threaded)h(X)f(serv)o(er)g(implemen)o
(tation)h(ma)o(y)224 343 y(execute)d(Op)q(enGL)g(rendering)g(commands)f
(in)g(parallel)i(with)e(other)g(X)g(requests.)295 399
y(Some)31 b(p)q(erformance)h(degradation)f(ma)o(y)g(b)q(e)h(exp)q
(erienced)i(if)e(needless)224 456 y(switc)o(hing)17 b(b)q(et)o(w)o(een)
f(Op)q(enGL)i(and)e(X)g(rendering)h(is)g(done.)23 b(This)16
b(ma)o(y)g(in)o(v)o(olv)o(e)224 512 y(a)f(round)g(trip)h(to)f(the)g
(serv)o(er,)f(whic)o(h)i(can)g(b)q(e)g(costly)l(.)224
655 y Fk(3)67 b(F)-6 b(unctions)24 b(and)f(Errors)224
759 y Fi(3.1)56 b(Errors)224 844 y Fm(Where)18 b(p)q(ossible,)i(as)d
(in)i(X,)e(when)h(a)g(request)f(terminates)h(with)g(an)g(error,)f(the)
224 901 y(request)e(has)g(no)h(side)g(e\013ects.)295
957 y(The)j(error)f(co)q(des)h(that)f(ma)o(y)g(b)q(e)i(generated)f(b)o
(y)f(a)h(request)g(are)f(describ)q(ed)224 1014 y(with)k(that)g
(request.)40 b(The)22 b(follo)o(wing)h(table)f(summarizes)h(the)f
(GLX-sp)q(eci\014c)224 1070 y(error)15 b(co)q(des)g(that)g(are)g
(visible)i(to)e(applications:)247 1176 y Fh(GLXBadContext)22
b Fm(A)i(v)m(alue)i(for)d(a)h Fh(Context)g Fm(argumen)o(t)f(do)q(es)h
(not)g(name)g(a)338 1233 y Fh(Context)p Fm(.)247 1327
y Fh(GLXBadContextState)h Fm(An)i(attempt)g(w)o(as)f(made)i(to)e(switc)
o(h)i(to)f(another)338 1383 y(rendering)c(con)o(text)e(while)i(the)f
(curren)o(t)f(con)o(text)g(w)o(as)g(in)i Fh(RenderMode)338
1440 y(GL)p 389 1440 15 2 v 17 w(FEEDBACK)c Fm(or)h Fh(GL)p
726 1440 V 17 w(SELECT)p Fm(,)f(or)h(a)g(call)i(to)e
Fb(glXMak)o(eCurren)o(t)e Fm(w)o(as)338 1496 y(made)d(b)q(et)o(w)o(een)
h(a)e Fb(glBegin)j Fm(and)e(the)h(corresp)q(onding)g(call)g(to)f
Fb(glEnd)p Fm(.)247 1590 y Fh(GLXBadCurrentWindow)c Fm(The)k(curren)o
(t)f Fh(Drawable)e Fm(of)i(the)g(calling)i(thread)e(is)g(a)338
1646 y(windo)o(w)h(that)g(is)g(no)h(longer)f(v)m(alid.)247
1740 y Fh(GLXBadDrawable)g Fm(The)j Fh(Drawable)e Fm(argumen)o(t)g(do)q
(es)i(not)f(name)g(a)g Fh(Drawable)338 1797 y Fm(con\014gured)f(for)e
(Op)q(enGL)j(rendering.)247 1890 y Fh(GLXBadPixmap)e
Fm(The)i Fh(Pixmap)f Fm(argumen)o(t)g(do)q(es)h(not)f(name)h(a)g
Fh(Pixmap)f Fm(that)g(is)338 1947 y(appropriate)f(for)g(Op)q(enGL)h
(rendering.)247 2041 y Fh(GLXUnsupportedPrivateRequ)o(est)g
Fm(Ma)o(y)j(b)q(e)h(returned)g(in)g(resp)q(onse)g(to)f(ei-)338
2097 y(ther)12 b(a)g(glXV)l(endorPriv)m(ate)i(request)f(or)f(a)g(glXV)l
(endorPriv)m(ateWithReply)338 2154 y(request.)295 2260
y(The)j(follo)o(wing)h(error)e(co)q(des)i(ma)o(y)e(b)q(e)i(generated)f
(b)o(y)g(a)g(fault)o(y)g(GLX)g(imple-)224 2316 y(men)o(tation,)g(but)g
(w)o(ould)h(not)e(normally)i(b)q(e)g(visible)h(to)e(clien)o(ts:)247
2423 y Fh(GLXBadContextTag)9 b Fm(A)j(rendering)g(request)g(con)o
(tains)f(an)h(in)o(v)m(alid)h(con)o(text)e(tag.)338 2479
y(\(Con)o(text)j(tags)g(are)h(used)h(to)e(iden)o(tify)j(con)o(texts)d
(in)i(the)f(proto)q(col.\))925 2613 y(8)p eop
%%Page: 9 10
9 9 bop 247 286 a Fh(GLXBadRenderRequest)12 b Fm(A)k(glXRender)g
(request)g(is)f(ill-formed.)247 380 y Fh(GLXBadLargeRequest)e
Fm(A)i(glXRenderLarge)h(request)g(is)f(ill-formed.)224
502 y Fi(3.2)56 b(F)-5 b(unctions)224 588 y Fm(GLX)15
b(functions)h(should)g(not)f(b)q(e)h(called)g(b)q(et)o(w)o(een)g
Fb(glBegin)g Fm(and)g Fb(glEnd)g Fm(op)q(er-)224 644
y(ations.)22 b(If)16 b(a)f(GLX)h(function)h(is)f(called)h(within)g(a)f
Fb(glBegin)p Fm(/)p Fb(glEnd)i Fm(pair,)e(then)224 701
y(the)f(result)h(is)g(unde\014ned;)g(ho)o(w)o(ev)o(er,)e(no)i(error)e
(is)i(rep)q(orted.)224 821 y Fb(3.2.1)52 b(Initializat)q(ion)224
907 y Fm(T)l(o)15 b(ascertain)g(if)h(the)f(GLX)h(extension)g(is)f
(de\014ned)i(for)e(an)g(X)g(serv)o(er,)f(use)338 1013
y Fh(Bool)33 b Fb(glX)o(QueryExtension)p Fh(\()58 b(Display)33
b Fj(*dpy)p Fh(,)39 b(int)34 b Fj(*er-)406 1069 y(r)n(or)p
468 1069 14 2 v 17 w(b)n(ase)p Fh(,)14 b(int)h Fj(*event)p
819 1069 V 16 w(b)n(ase)g Fh(\))24 b(;)224 1176 y Fj(dpy)c
Fm(sp)q(eci\014es)h(the)e(connection)i(to)e(the)g(X)g(serv)o(er.)32
b Fh(False)19 b Fm(is)h(returned)f(if)h(the)224 1232
y(extension)g(is)g(not)e(presen)o(t.)32 b Fj(err)n(or)p
853 1232 V 17 w(b)n(ase)18 b Fm(is)i(used)f(to)g(return)g(the)g(v)m
(alue)h(of)f(the)224 1288 y(\014rst)d(error)g(co)q(de.)24
b(The)16 b(constan)o(t)g(error)f(co)q(des)i(should)h(b)q(e)f(added)g
(to)e(this)i(base)224 1345 y(to)e(get)f(the)i(actual)f(v)m(alue.)295
1401 y Fj(event)p 402 1401 V 16 w(b)n(ase)g Fm(is)i(included)i(for)c
(future)h(extension.)24 b(GLX)16 b(do)q(es)h(not)f(curren)o(tly)224
1458 y(de\014ne)g(an)o(y)f(ev)o(en)o(ts.)295 1514 y(The)g(GLX)g
(de\014nition)j(exists)d(in)h(m)o(ultiple)h(v)o(ersions.)j(Use)338
1608 y Fh(Bool)11 b Fb(glX)o(QueryV)l(ersion)p Fh(\()34
b(Display)11 b Fj(*dpy)p Fh(,)j(int)d Fj(*major)p Fh(,)j(int)406
1665 y Fj(*minor)h Fh(\))24 b(;)224 1758 y Fm(to)15 b(disco)o(v)o(er)g
(whic)o(h)h(v)o(ersion)g(of)e(GLX)i(is)f(a)o(v)m(ailable.)22
b(Up)q(on)16 b(success,)f Fj(major)h Fm(and)224 1815
y Fj(minor)11 b Fm(are)g(\014lled)i(in)f(with)g(the)f(ma)s(jor)f(and)h
(minor)g(v)o(ersions)h(of)e(the)i(extension)g(im-)224
1871 y(plemen)o(tation.)21 b(If)14 b(the)g(clien)o(t)i(and)f(serv)o(er)
e(b)q(oth)i(ha)o(v)o(e)f(the)g(same)g(ma)s(jor)f(v)o(ersion)224
1928 y(n)o(um)o(b)q(er)h(then)f(they)h(are)f(compatible)h(and)g(the)f
(minor)h(v)o(ersion)f(that)g(is)h(returned)224 1984 y(is)i(the)f(minim)
o(um)h(of)f(the)g(t)o(w)o(o)f(minor)i(v)o(ersion)f(n)o(um)o(b)q(ers.)
295 2041 y Fj(major)e Fm(and)f Fj(minor)h Fm(do)f(not)g(return)g(v)m
(alues)i(if)f(they)f(are)g(sp)q(eci\014ed)j(as)d Fb(NULL)p
Fm(.)295 2097 y Fb(glX)o(QueryV)l(ersion)h Fm(returns)j
Fb(T)l(rue)f Fm(if)h(it)g(succeeds)g(and)g Fb(F)l(alse)g
Fm(if)g(it)g(fails.)224 2154 y(If)g(it)f(fails,)h Fj(major)g
Fm(and)f Fj(minor)g Fm(are)g(not)g(up)q(dated.)224 2274
y Fb(3.2.2)52 b(Con\014guration)18 b(Managemen)o(t)224
2359 y Fm(The)c(constan)o(ts)g(sho)o(wn)f(in)i(T)l(able)g(1)f(are)f
(passed)i(to)e Fb(glX)o(GetCon\014g)h Fm(and)h Fb(glX-)224
2416 y(Cho)q(oseVisual)h Fm(to)f(sp)q(ecify)h(whic)o(h)g(attributes)f
(are)g(b)q(eing)h(queried.)925 2613 y(9)p eop
%%Page: 10 11
10 10 bop 224 772 1676 2 v 223 829 2 57 v 384 812 a Fm(A)o(ttribute)p
730 829 V 211 w(T)o(yp)q(e)p 934 829 V 76 w(Notes)p 1899
829 V 224 830 1676 2 v 224 839 V 223 895 2 57 v 365 878
a Fh(GLX)p 440 878 15 2 v 17 w(USE)p 529 878 V 17 w(GL)p
730 895 2 57 v 165 w Fm(b)q(o)q(olean)p 934 895 V 51
w Fb(T)l(rue)15 b Fm(if)g(Op)q(enGL)i(rendering)f(supp)q(orted)p
1899 895 V 224 897 1676 2 v 223 953 2 57 v 305 936 a
Fh(GLX)p 380 936 15 2 v 17 w(BUFFER)p 541 936 V 17 w(SIZE)p
730 953 2 57 v 115 w Fm(in)o(teger)p 934 953 V 59 w(depth)g(of)f(the)g
(color)g(bu\013er)p 1899 953 V 224 955 1676 2 v 223 1011
2 57 v 374 994 a Fh(GLX)p 449 994 15 2 v 16 w(LEVEL)p
730 1011 2 57 v 184 w Fm(in)o(teger)p 934 1011 V 59 w(frame)g(bu\013er)
g(lev)o(el)p 1899 1011 V 224 1013 1676 2 v 223 1069 2
57 v 386 1053 a Fh(GLX)p 461 1053 15 2 v 16 w(RGBA)p
730 1069 2 57 v 186 w Fm(b)q(o)q(olean)p 934 1069 V 51
w Fb(T)l(rue)g Fm(if)g(R)o(GBA)h(rendering)g(supp)q(orted)p
1899 1069 V 224 1071 1676 2 v 223 1128 2 57 v 290 1111
a Fh(GLX)p 365 1111 15 2 v 17 w(DOUBLEBUFFER)p 730 1128
2 57 v 89 w Fm(b)q(o)q(olean)p 934 1128 V 51 w Fb(T)l(rue)f
Fm(if)g(color)h(bu\013ers)f(ha)o(v)o(e)f(fron)o(t/bac)o(k)g(pairs)p
1899 1128 V 224 1129 1676 2 v 223 1186 2 57 v 362 1169
a Fh(GLX)p 437 1169 15 2 v 16 w(STEREO)p 730 1186 2 57
v 162 w Fm(b)q(o)q(olean)p 934 1186 V 51 w Fb(T)l(rue)h
Fm(if)g(color)h(bu\013ers)f(ha)o(v)o(e)f(left/righ)o(t)i(pairs)p
1899 1186 V 224 1187 1676 2 v 223 1244 2 57 v 305 1227
a Fh(GLX)p 380 1227 15 2 v 17 w(AUX)p 469 1227 V 17 w(BUFFERS)p
730 1244 2 57 v 115 w Fm(in)o(teger)p 934 1244 V 59 w(n)o(um)o(b)q(er)f
(of)g(auxiliary)i(color)e(bu\013ers)p 1899 1244 V 224
1245 1676 2 v 223 1302 2 57 v 341 1285 a Fh(GLX)p 416
1285 15 2 v 17 w(RED)p 505 1285 V 17 w(SIZE)p 730 1302
2 57 v 151 w Fm(in)o(teger)p 934 1302 V 59 w(n)o(um)o(b)q(er)g(of)g
(bits)h(of)f(Red)h(in)g(the)f(framebu\013er)p 1899 1302
V 224 1304 1676 2 v 223 1360 2 57 v 317 1343 a Fh(GLX)p
392 1343 15 2 v 17 w(GREEN)p 529 1343 V 17 w(SIZE)p 730
1360 2 57 v 127 w Fm(in)o(teger)p 934 1360 V 59 w(n)o(um)o(b)q(er)g(of)
g(bits)h(of)f(Green)g(in)h(the)f(framebu\013er)p 1899
1360 V 224 1362 1676 2 v 223 1418 2 57 v 329 1401 a Fh(GLX)p
404 1401 15 2 v 17 w(BLUE)p 517 1401 V 17 w(SIZE)p 730
1418 2 57 v 139 w Fm(in)o(teger)p 934 1418 V 59 w(n)o(um)o(b)q(er)g(of)
g(bits)h(of)f(Blue)h(in)g(the)f(framebu\013er)p 1899
1418 V 224 1420 1676 2 v 223 1476 2 57 v 317 1459 a Fh(GLX)p
392 1459 15 2 v 17 w(ALPHA)p 529 1459 V 17 w(SIZE)p 730
1476 2 57 v 127 w Fm(in)o(teger)p 934 1476 V 59 w(n)o(um)o(b)q(er)g(of)
g(bits)h(in)g(the)f(destination)h(alpha)g(bu\013er)p
1899 1476 V 224 1478 1676 2 v 223 1534 2 57 v 317 1517
a Fh(GLX)p 392 1517 15 2 v 17 w(DEPTH)p 529 1517 V 17
w(SIZE)p 730 1534 2 57 v 127 w Fm(in)o(teger)p 934 1534
V 59 w(n)o(um)o(b)q(er)f(of)g(bits)h(in)g(the)f(depth)h(bu\013er)p
1899 1534 V 224 1536 1676 2 v 223 1593 2 57 v 293 1576
a Fh(GLX)p 368 1576 15 2 v 17 w(STENCIL)p 553 1576 V
16 w(SIZE)p 730 1593 2 57 v 104 w Fm(in)o(teger)p 934
1593 V 59 w(n)o(um)o(b)q(er)f(of)g(bits)h(in)g(the)f(stencil)i
(bu\013er)p 1899 1593 V 224 1594 1676 2 v 223 1651 2
57 v 273 1634 a Fh(GLX)p 348 1634 15 2 v 17 w(ACCUM)p
485 1634 V 16 w(RED)p 573 1634 V 17 w(SIZE)p 730 1651
2 57 v 83 w Fm(in)o(teger)p 934 1651 V 59 w(n)o(um)o(b)q(er)e(Red)i
(bits)e(in)h(the)g(accum)o(ulation)g(bu\013er)p 1899
1651 V 224 1652 1676 2 v 223 1709 2 57 v 249 1692 a Fh(GLX)p
324 1692 15 2 v 17 w(ACCUM)p 461 1692 V 16 w(GREEN)p
597 1692 V 17 w(SIZE)p 730 1709 2 57 v 59 w Fm(in)o(teger)p
934 1709 V 59 w(n)o(um)o(b)q(er)f(Green)h(bits)f(in)h(the)g(accum)o
(ulation)g(bu\013er)p 1899 1709 V 224 1710 1676 2 v 223
1767 2 57 v 261 1750 a Fh(GLX)p 336 1750 15 2 v 17 w(ACCUM)p
473 1750 V 16 w(BLUE)p 585 1750 V 17 w(SIZE)p 730 1767
2 57 v 71 w Fm(in)o(teger)p 934 1767 V 59 w(n)o(um)o(b)q(er)f(Blue)i
(bits)f(in)g(the)f(accum)o(ulation)h(bu\013er)p 1899
1767 V 224 1769 1676 2 v 223 1825 2 57 v 249 1808 a Fh(GLX)p
324 1808 15 2 v 17 w(ACCUM)p 461 1808 V 16 w(ALPHA)p
597 1808 V 17 w(SIZE)p 730 1825 2 57 v 59 w Fm(in)o(teger)p
934 1825 V 59 w(n)o(um)o(b)q(er)f(Alpha)i(bits)e(in)h(the)g(accum)o
(ulation)g(bu\013er)p 1899 1825 V 224 1827 1676 2 v 599
1904 a(T)l(able)g(1:)j(Con\014guration)c(attributes.)914
2613 y(10)p eop
%%Page: 11 12
11 11 bop 295 286 a Fh(GLX)p 370 286 15 2 v 16 w(BUFFER)p
530 286 V 17 w(SIZE)12 b Fm(giv)o(es)g(the)h(total)e(depth)i(of)f(the)h
(color)f(bu\013er)g(in)h(bits.)20 b(F)l(or)224 343 y
Fb(PseudoColor)13 b Fm(and)g Fb(StaticColor)h Fm(visuals,)g(this)f(is)h
(equal)f(to)g(the)f(depth)i(v)m(alue)224 399 y(rep)q(orted)22
b(in)h(the)f(core)g(X11)f(Visual.)42 b(F)l(or)21 b Fb(T)l(rueColor)g
Fm(and)h Fb(DirectColor)224 456 y Fm(visuals,)16 b Fh(GLX)p
460 456 V 17 w(BUFFER)p 621 456 V 16 w(SIZE)e Fm(is)i(the)f(sum)g(of)f
Fh(GLX)p 1090 456 V 17 w(RED)p 1179 456 V 17 w(SIZE)p
Fm(,)g Fh(GLX)p 1391 456 V 17 w(GREEN)p 1528 456 V 16
w(SIZE)p Fm(,)224 512 y Fh(GLX)p 299 512 V 17 w(BLUE)p
412 512 V 17 w(SIZE)p Fm(,)d(and)i Fh(GLX)p 707 512 V
16 w(ALPHA)p 843 512 V 17 w(SIZE)p Fm(.)e(Note)h(that)g(this)h(v)m
(alue)h(ma)o(y)d(b)q(e)i(larger)224 569 y(than)f(the)h(depth)g(v)m
(alue)g(rep)q(orted)f(in)i(the)e(core)g(X11)g(visual)h(since)h(it)e(ma)
o(y)g(include)224 625 y(alpha)21 b(planes)g(that)e(ma)o(y)g(not)h(b)q
(e)h(rep)q(orted)f(b)o(y)g(X11.)34 b(Also,)21 b(for)e
Fh(TrueColor)224 682 y Fm(visuals,)e(the)e(sum)h(of)f
Fh(GLX)p 688 682 V 17 w(RED)p 777 682 V 17 w(SIZE)p Fm(,)f
Fh(GLX)p 989 682 V 17 w(GREEN)p 1126 682 V 17 w(SIZE)p
Fm(,)g(and)i Fh(GLX)p 1427 682 V 17 w(BLUE)p 1540 682
V 17 w(SIZE)224 738 y Fm(ma)o(y)f(b)q(e)h(larger)f(than)g(the)g(maxim)o
(um)g(depth)h(that)e(core)h(X11)g(can)g(supp)q(ort.)295
795 y(T)l(o)10 b(obtain)h(a)f(description)i(of)e(an)g(Op)q(enGL)i
(attribute)f(exp)q(orted)f(b)o(y)h(a)f Fh(Visual)224
851 y Fm(use)338 945 y Fh(int)24 b Fb(glX)o(GetCon\014g)p
Fh(\()48 b(Display)23 b Fj(*dpy)p Fh(,)k(XVisualInfo*)22
b Fj(*vi-)406 1001 y(sual)p Fh(,)15 b(int)g Fj(attribute)p
Fh(,)g(int)g Fj(*value)h Fh(\))23 b(;)295 1095 y Fb(glX)o(GetCon\014g)c
Fm(returns)g(through)g Fj(value)g Fm(the)h(v)m(alue)g(of)f(the)g
Fj(attribute)i Fm(of)224 1152 y Fj(visual)p Fm(.)295
1208 y Fb(glX)o(GetCon\014g)f Fm(returns)g(one)h(of)f(the)g(follo)o
(wing)h(error)f(co)q(des)g(if)h(it)g(fails,)224 1264
y(and)16 b(Success)g(otherwise:)247 1371 y Fh(GLX)p 322
1371 V 17 w(NO)p 387 1371 V 17 w(EXTENSION)d Fj(dpy)j
Fm(do)q(es)g(not)f(supp)q(ort)g(the)g(GLX)g(extension.)247
1465 y Fh(GLX)p 322 1465 V 17 w(BAD)p 411 1465 V 16 w(SCREEN)g
Fm(screen)h(of)e Fj(visual)h Fm(do)q(es)h(not)e(corresp)q(ond)i(to)f(a)
f(screen.)247 1558 y Fh(GLX)p 322 1558 V 17 w(BAD)p 411
1558 V 16 w(ATTRIBUTE)g Fj(attribute)i Fm(is)g(not)f(a)g(v)m(alid)i
(GLX)e(attribute.)247 1652 y Fh(GLX)p 322 1652 V 17 w(BAD)p
411 1652 V 16 w(VISUAL)j Fj(visual)f Fm(do)q(es)i(not)f(supp)q(ort)g
(GLX)g(and)g(an)h(attribute)e(other)338 1709 y(than)e
Fh(GLX)p 519 1709 V 17 w(USE)p 608 1709 V 16 w(GL)g Fm(w)o(as)g(sp)q
(eci\014ed.)247 1802 y Fh(GLX)p 322 1802 V 17 w(BAD)p
411 1802 V 16 w(VALUE)g Fm(parameter)f(in)o(v)m(alid)295
1909 y(A)28 b(GLX)g(implemen)o(tation)h(ma)o(y)e(exp)q(ort)h(man)o(y)f
(visuals)i(that)e(supp)q(ort)224 1965 y(Op)q(enGL.)17
b(These)g(visuals)h(supp)q(ort)e(either)h(color)f(index)i(or)e(R)o(GBA)
g(rendering.)224 2022 y(Curren)o(tly)k(R)o(GBA)g(rendering)h(can)f(b)q
(e)h(supp)q(orted)f(only)h(b)o(y)f(Visuals)h(of)e(t)o(yp)q(e)224
2078 y Fb(T)l(rueColor)11 b Fm(or)h Fb(DirectColor)g
Fm(and)g(color)g(index)h(rendering)f(can)g(b)q(e)h(supp)q(orted)224
2134 y(only)j(b)o(y)f(Visuals)h(of)f(t)o(yp)q(e)g Fb(PseudoColor)g
Fm(or)g Fb(StaticColor)p Fm(.)295 2191 y(Serv)o(ers)10
b(are)g(required)i(to)e(exp)q(ort)g(at)g(least)h(one)g(visual)h(that)d
(supp)q(orts)i(R)o(GBA)224 2247 y(rendering.)34 b(A)o(t)19
b(least)g(one)h(of)f(the)g(visuals)h(that)f(supp)q(orts)h(R)o(GBA)f
(rendering)224 2304 y(m)o(ust)h(ha)o(v)o(e)h(at)f(least)h(one)f(color)h
(bu\013er,)h(a)e(stencil)j(bu\013er)d(of)h(at)f(least)h(1)f(bit,)224
2360 y(a)h(depth)g(bu\013er)g(of)f(at)g(least)h(12)f(bits,)i(and)f(an)g
(accum)o(ulation)g(bu\013er;)j(alpha)224 2417 y(bitplanes)19
b(are)f(optional.)28 b(The)18 b(color)g(bu\013er)f(size)i(for)e(this)h
(visual)h(m)o(ust)e(b)q(e)i(as)224 2473 y(large)d(as)f(that)h(of)f(the)
h(deep)q(est)h Fb(T)l(rueColor)p Fm(,)e Fb(DirectColor)p
Fm(,)h Fb(PseudoColor)p Fm(,)914 2613 y(11)p eop
%%Page: 12 13
12 12 bop 372 242 1130 2 v 371 299 2 57 v 532 282 a Fm(A)o(ttribute)p
878 299 V 185 w(Default)p 1075 299 V 50 w(Selection)17
b(Criteria)p 1500 299 V 372 301 1130 2 v 372 309 V 371
365 2 57 v 513 348 a Fh(GLX)p 588 348 15 2 v 17 w(USE)p
677 348 V 16 w(GL)p 878 365 2 57 v 178 w Fb(T)l(rue)p
1075 365 V 78 w Fm(exact)p 1500 365 V 372 367 1130 2
v 371 423 2 57 v 453 406 a Fh(GLX)p 528 406 15 2 v 17
w(BUFFER)p 689 406 V 16 w(SIZE)p 878 423 2 57 v 168 w
Fm(0)p 1075 423 V 112 w(minim)o(um,)f(smallest)p 1500
423 V 372 425 1130 2 v 371 482 2 57 v 522 465 a Fh(GLX)p
597 465 15 2 v 16 w(LEVEL)p 878 482 2 57 v 236 w Fm(0)p
1075 482 V 112 w(exact)p 1500 482 V 372 483 1130 2 v
371 540 2 57 v 533 523 a Fh(GLX)p 608 523 15 2 v 17 w(RGBA)p
878 540 2 57 v 203 w Fb(F)l(alse)p 1075 540 V 67 w Fm(exact)p
1500 540 V 372 541 1130 2 v 371 598 2 57 v 438 581 a
Fh(GLX)p 513 581 15 2 v 17 w(DOUBLEBUFFER)p 878 598 2
57 v 106 w Fb(F)l(alse)p 1075 598 V 67 w Fm(exact)p 1500
598 V 372 599 1130 2 v 371 656 2 57 v 510 639 a Fh(GLX)p
585 639 15 2 v 16 w(STEREO)p 878 656 2 57 v 179 w Fb(F)l(alse)p
1075 656 V 67 w Fm(exact)p 1500 656 V 372 658 1130 2
v 371 714 2 57 v 453 697 a Fh(GLX)p 528 697 15 2 v 17
w(AUX)p 617 697 V 17 w(BUFFERS)p 878 714 2 57 v 167 w
Fm(0)p 1075 714 V 112 w(minim)o(um,)g(smallest)p 1500
714 V 372 716 1130 2 v 371 772 2 57 v 489 755 a Fh(GLX)p
564 755 15 2 v 17 w(RED)p 653 755 V 17 w(SIZE)p 878 772
2 57 v 203 w Fm(0)p 1075 772 V 112 w(minim)o(um,)g(largest)p
1500 772 V 372 774 1130 2 v 371 830 2 57 v 465 813 a
Fh(GLX)p 540 813 15 2 v 17 w(GREEN)p 677 813 V 16 w(SIZE)p
878 830 2 57 v 180 w Fm(0)p 1075 830 V 112 w(minim)o(um,)g(largest)p
1500 830 V 372 832 1130 2 v 371 888 2 57 v 477 871 a
Fh(GLX)p 552 871 15 2 v 17 w(BLUE)p 665 871 V 17 w(SIZE)p
878 888 2 57 v 191 w Fm(0)p 1075 888 V 112 w(minim)o(um,)g(largest)p
1500 888 V 372 890 1130 2 v 371 946 2 57 v 465 930 a
Fh(GLX)p 540 930 15 2 v 17 w(ALPHA)p 677 930 V 16 w(SIZE)p
878 946 2 57 v 180 w Fm(0)p 1075 946 V 112 w(minim)o(um,)g(largest)p
1500 946 V 372 948 1130 2 v 371 1005 2 57 v 465 988 a
Fh(GLX)p 540 988 15 2 v 17 w(DEPTH)p 677 988 V 16 w(SIZE)p
878 1005 2 57 v 180 w Fm(0)p 1075 1005 V 112 w(minim)o(um,)g(largest)p
1500 1005 V 372 1006 1130 2 v 371 1063 2 57 v 441 1046
a Fh(GLX)p 516 1046 15 2 v 17 w(STENCIL)p 701 1046 V
16 w(SIZE)p 878 1063 2 57 v 156 w Fm(0)p 1075 1063 V
112 w(minim)o(um,)g(smallest)p 1500 1063 V 372 1064 1130
2 v 371 1121 2 57 v 421 1104 a Fh(GLX)p 496 1104 15 2
v 17 w(ACCUM)p 633 1104 V 16 w(RED)p 721 1104 V 17 w(SIZE)p
878 1121 2 57 v 135 w Fm(0)p 1075 1121 V 112 w(minim)o(um,)g(largest)p
1500 1121 V 372 1122 1130 2 v 371 1179 2 57 v 397 1162
a Fh(GLX)p 472 1162 15 2 v 17 w(ACCUM)p 609 1162 V 16
w(GREEN)p 745 1162 V 17 w(SIZE)p 878 1179 2 57 v 111
w Fm(0)p 1075 1179 V 112 w(minim)o(um,)g(largest)p 1500
1179 V 372 1181 1130 2 v 371 1237 2 57 v 409 1220 a Fh(GLX)p
484 1220 15 2 v 17 w(ACCUM)p 621 1220 V 16 w(BLUE)p 733
1220 V 17 w(SIZE)p 878 1237 2 57 v 123 w Fm(0)p 1075
1237 V 112 w(minim)o(um,)g(largest)p 1500 1237 V 372
1239 1130 2 v 371 1295 2 57 v 397 1278 a Fh(GLX)p 472
1278 15 2 v 17 w(ACCUM)p 609 1278 V 16 w(ALPHA)p 745
1278 V 17 w(SIZE)p 878 1295 2 57 v 111 w Fm(0)p 1075
1295 V 112 w(minim)o(um,)g(largest)p 1500 1295 V 372
1297 1130 2 v 258 1374 a(T)l(able)g(2:)j(Defaults)d(and)f(selection)i
(criteria)e(used)h(b)o(y)f Fb(glX)o(Cho)q(oseVisual)p
Fm(.)224 1556 y(or)21 b Fb(StaticColor)h Fm(visual)g(supp)q(orted)g(on)
f(framebu\013er)f(lev)o(el)i(zero)f(\(the)g(main)224
1613 y(image)15 b(planes\),)h(and)f(it)h(m)o(ust)e(b)q(e)i(a)o(v)m
(ailable)h(on)e(framebu\013er)g(lev)o(el)h(zero.)295
1669 y(If)j(the)g(X)f(serv)o(er)h(exp)q(orts)g(a)f Fb(PseudoColor)g
Fm(or)h Fb(StaticColor)h Fm(visual)g(on)224 1726 y(framebu\013er)c(lev)
o(el)j(0,)d(a)g(visual)i(that)e(supp)q(orts)h(color)g(index)h
(rendering)g(is)f(also)224 1782 y(required.)30 b(If)18
b(color)g(index)i(rendering)f(is)g(supp)q(orted)f(then)h(one)f(of)g
(the)g(visuals)224 1839 y(that)d(supp)q(orts)g(color)h(index)h
(rendering)f(m)o(ust)f(ha)o(v)o(e)g(at)g(least)g(one)h(color)g
(bu\013er,)224 1895 y(a)h(stencil)i(bu\013er)e(of)g(at)g(least)g(1)g
(bit,)h(and)g(a)f(depth)h(bu\013er)f(of)g(at)g(least)g(12)g(bits.)224
1952 y(It)e(also)f(m)o(ust)h(ha)o(v)o(e)f(as)g(man)o(y)g(color)h
(bitplanes)h(as)e(the)h(deep)q(est)h Fb(PseudoColor)224
2008 y Fm(or)f Fb(StaticColor)i Fm(visual)g(supp)q(orted)f(on)f
(framebu\013er)g(lev)o(el)i(zero,)d(and)i(it)g(m)o(ust)224
2065 y(itself)g(b)q(e)g(made)f(a)o(v)m(ailable)i(on)e(lev)o(el)i(zero.)
295 2121 y Fb(glX)o(Cho)q(oseVisual)e Fm(is)g(used)h(to)e(\014nd)i(a)f
(visual)h(that)e(matc)o(hes)g(the)h(clien)o(t's)224 2177
y(sp)q(eci\014ed)i(attributes.)338 2276 y Fh(XVisualInfo*)28
b Fb(glX)o(Cho)q(oseVisual)p Fh(\()53 b(Display)29 b
Fj(*dpy)p Fh(,)34 b(int)406 2333 y Fj(scr)n(e)n(en)p
Fh(,)13 b(int)i Fj(*attrib)p 786 2333 14 2 v 18 w(list)f
Fh(\))24 b(;)295 2432 y Fb(glX)o(Cho)q(oseVisual)19 b
Fm(returns)f(a)h(p)q(oin)o(ter)g(to)f(an)g Fh(XVisualInfo)f
Fm(structure)224 2488 y(describing)k(the)e(visual)i(that)d(b)q(est)h
(matc)o(hes)g(the)g(sp)q(eci\014ed)i(attributes.)32 b(If)19
b(no)914 2613 y(12)p eop
%%Page: 13 14
13 13 bop 224 286 a Fm(matc)o(hing)15 b(visual)i(exists,)e
Fb(NULL)h Fm(is)g(returned.)295 343 y(The)28 b(attributes)g(are)g(matc)
o(hed)h(in)g(an)f(attribute-sp)q(eci\014c)i(manner,)i(as)224
399 y(sho)o(wn)22 b(in)g(T)l(able)h(2.)39 b(Some)22 b(of)g(the)g
(attributes,)h(suc)o(h)f(as)f Fh(GLX)p 1384 399 15 2
v 17 w(LEVEL)p Fm(,)g(m)o(ust)224 456 y(matc)o(h)13 b(the)h(sp)q
(eci\014ed)h(v)m(alue)g(exactly;)f(others,)f(suc)o(h)h(as,)f
Fh(GLX)p 1293 456 V 17 w(BUFFER)p 1454 456 V 16 w(SIZE)g
Fm(and)224 512 y Fh(GLX)p 299 512 V 17 w(RED)p 388 512
V 17 w(SIZE)19 b Fm(m)o(ust)g(meet)h(or)g(exceed)h(the)f(sp)q
(eci\014ed)i(minim)o(um)f(v)m(alues.)35 b(In)224 569
y(the)14 b(case)h(of)f Fh(GLX)p 523 569 V 16 w(BUFFER)p
683 569 V 17 w(SIZE)p Fm(,)f(preference)i(is)g(giv)o(en)g(based)f(on)g
(ho)o(w)g(close)h(the)224 625 y(visual's)21 b(attribute)f(v)m(alue)h
(is)g(to)f(the)g(sp)q(eci\014ed)i(v)m(alue.)36 b(\(A)o(ttributes)20
b(that)f(are)224 682 y(matc)o(hed)e(in)h(this)g(manner)f(ha)o(v)o(e)g
Fh(minimum,)23 b(smallest)16 b Fm(listed)i(as)f(their)h(selec-)224
738 y(tion)h(criteria)h(in)f(T)l(able)h(2.\))30 b(In)20
b(the)f(case)g(of)f Fh(GLX)p 1124 738 V 17 w(RED)p 1213
738 V 17 w(SIZE)p Fm(,)g(if)h(the)g(sp)q(eci\014ed)224
795 y(v)m(alue)j(is)g(non-zero,)g(then)f(preference)h(is)f(giv)o(en)g
(to)g(visuals)g(with)h(the)e(largest)224 851 y(v)m(alue)j(for)e(this)i
(attribute;)h(otherwise)e(preference)h(is)f(giv)o(en)h(to)e(visuals)i
(with)224 907 y(the)c(smallest)h(v)m(alue.)32 b(\(A)o(ttributes)19
b(that)f(are)h(matc)o(hed)g(in)h(this)f(manner)h(ha)o(v)o(e)224
964 y Fh(minimum,)j(largest)14 b Fm(listed)j(as)d(their)i(selection)h
(criteria)f(in)g(T)l(able)g(2.\))295 1020 y(If)11 b Fh(GLX)p
411 1020 V 16 w(RGBA)g Fm(is)g(in)g Fj(attrib)p 730 1020
14 2 v 17 w(list)f Fm(then)h(the)g(resulting)h(visual)g(will)g(b)q(e)f
Fh(TrueColor)224 1077 y Fm(or)h Fh(DirectColor)p Fm(.)18
b(If)12 b(all)i(other)e(attributes)h(are)f(equiv)m(alen)o(t,)i(then)f
(a)f Fh(TrueColor)224 1133 y Fm(visual)k(will)h(b)q(e)f(c)o(hosen)g(in)
g(preference)g(to)e(a)h Fh(DirectColor)f Fm(visual.)295
1190 y(If)24 b Fh(GLX)p 424 1190 15 2 v 17 w(RGBA)g Fm(is)h(not)f(in)i
Fj(attrib)p 876 1190 14 2 v 17 w(list)d Fm(then)i(the)g(returned)g
(visual)g(will)h(b)q(e)224 1246 y Fh(PseudoColor)11 b
Fm(or)h Fh(StaticColor)p Fm(.)18 b(If)13 b(all)g(other)g(attributes)f
(are)g(equiv)m(alen)o(t)j(then)224 1303 y(a)f Fh(PseudoColor)g
Fm(visual)h(will)i(b)q(e)e(c)o(hosen)g(in)g(preference)h(to)e(a)g
Fh(StaticColor)f Fm(vi-)224 1359 y(sual.)295 1416 y(If)i(an)g
(attribute)g(is)g(not)g(sp)q(eci\014ed)i(in)f Fj(attrib)p
1067 1416 V 17 w(list)p Fm(,)e(then)h(the)g(default)g(v)m(alue)i(is)224
1472 y(used.)k(See)15 b(T)l(able)h(2)f(for)g(a)g(list)h(of)f(defaults.)
295 1528 y(Default)c(sp)q(eci\014cations)j(are)d(sup)q(erseded)i(b)o(y)
e(the)h(attributes)f(included)j(in)f Fj(at-)224 1585
y(trib)p 296 1585 V 17 w(list)p Fm(.)19 b(In)o(teger)c(attributes)g
(are)g(immediately)i(follo)o(w)o(ed)e(b)o(y)g(the)h(corresp)q(ond-)224
1641 y(ing)21 b(desired)h(v)m(alue.)37 b(Bo)q(olean)22
b(attributes)e(app)q(earing)i(in)f Fj(attrib)p 1397 1641
V 17 w(list)f Fm(ha)o(v)o(e)g(an)224 1698 y(implicit)i
Fb(T)l(rue)e Fm(v)m(alue;)j(suc)o(h)d(attributes)g(are)f
Fj(never)g Fm(follo)o(w)o(ed)h(b)o(y)g(an)g(explicit)224
1754 y Fb(T)l(rue)15 b Fm(or)g Fb(F)l(alse)g Fm(v)m(alue.)21
b(The)15 b(list)h(is)g(terminated)f(with)h Fh(None)p
Fm(.)295 1811 y(T)l(o)f(free)g(the)g(data)g(returned,)g(use)g
Fb(XF)l(ree)p Fm(.)295 1867 y Fb(NULL)h Fm(is)g(returned)f(if)h(an)f
(unde\014ned)i(GLX)e(attribute)g(is)h(encoun)o(tered.)224
1986 y Fb(3.2.3)52 b(O\013)17 b(Screen)g(Rendering)224
2071 y Fm(T)l(o)h(create)f(an)h(o\013)f(screen)h(rendering)h(area,)e
(\014rst)g(create)h(an)f(X)h Fh(Pixmap)f Fm(of)g(the)224
2128 y(depth)f(sp)q(eci\014ed)h(b)o(y)e(the)h(desired)g
Fh(Visual)p Fm(,)e(then)i(call)338 2223 y Fh(GLXPixmap)43
b Fb(glX)o(CreateGLXPixmap)p Fh(\()68 b(Display)43 b
Fj(*dpy)p Fh(,)406 2280 y(XVisualInfo*)13 b Fj(visual)p
Fh(,)i(Pixmap)g Fj(pixmap)h Fh(\))23 b(;)295 2375 y Fb(glX)o
(CreateGLXPixmap)c Fm(creates)g(an)g(o\013)g(screen)h(rendering)g(area)
f(and)224 2432 y(returns)i(its)g(XID.)g(An)o(y)g(GLX)g(rendering)h(con)
o(text)f(created)g(with)g(resp)q(ect)h(to)224 2488 y
Fj(visual)15 b Fm(can)g(b)q(e)h(used)g(to)f(render)g(in)o(to)g(this)h
(o\013)e(screen)i(area.)914 2613 y(13)p eop
%%Page: 14 15
14 14 bop 295 286 a Fj(pixmap)22 b Fm(is)h(used)f(for)f(the)h(R)o(GB)g
(planes)h(of)e(the)h(fron)o(t-left)g(bu\013er)g(of)f(the)224
343 y(resulting)16 b(GLX)f(o\013)g(screen)g(rendering)h(area.)k(The)15
b(alpha)g(bu\013er)g(and)h(ancillary)224 399 y(bu\013ers)g(sp)q
(eci\014ed)j(b)o(y)d Fj(visual)g Fm(are)f(created)i(without)f
(externally)h(visible)i(names.)224 456 y(GLX)f(pixmaps)h(ma)o(y)e(b)q
(e)i(created)f(with)g(a)f Fj(visual)h Fm(that)f(includes)j(bac)o(k)e
(bu\013ers)224 512 y(and)11 b(stereoscopic)g(bu\013ers.)19
b(Ho)o(w)o(ev)o(er,)10 b Fb(glXSw)o(apBu\013ers)f Fm(is)j(ignored)f
(for)f(these)224 569 y(pixmaps.)295 625 y(A)i(direct)g(rendering)h(con)
o(text)e(migh)o(t)h(not)f(b)q(e)h(able)h(to)e(b)q(e)h(made)g(curren)o
(t)g(with)224 682 y(a)j Fh(GLXPixmap)p Fm(.)295 738 y(If)i(the)f(depth)
h(of)f Fj(pixmap)i Fm(do)q(es)f(not)f(matc)o(h)g(the)h(depth)g(v)m
(alue)g(rep)q(orted)g(b)o(y)224 795 y(core)j(X11)g(for)f
Fj(visual)p Fm(,)i(or)e(if)i Fj(pixmap)g Fm(w)o(as)e(not)h(created)g
(with)g(resp)q(ect)h(to)e(the)224 851 y(same)f(screen)h(as)f
Fj(visual)p Fm(,)g(then)h(a)f Fh(BadMatch)f Fm(error)h(is)h(generated.)
29 b(If)19 b Fj(visual)f Fm(is)224 907 y(not)h(v)m(alid)h(\(e.g.,)e(if)
h(GLX)g(do)q(es)h(not)e(supp)q(ort)h(it\),)g(then)g(a)g
Fh(BadValue)e Fm(error)i(is)224 964 y(generated.)h(If)13
b Fj(pixmap)i Fm(is)f(not)f(a)h(v)m(alid)h(pixmap)f(id,)h(then)f(a)f
Fh(BadPixmap)g Fm(error)g(is)224 1020 y(generated.)26
b(Finally)l(,)18 b(if)g(the)f(serv)o(er)g(cannot)f(allo)q(cate)i(the)f
(new)h(GLX)f(pixmap,)224 1077 y(a)e Fh(BadAlloc)f Fm(error)h(is)g
(generated.)295 1133 y(A)g Fh(GLXPixmap)f Fm(is)i(destro)o(y)o(ed)e(b)o
(y)h(calling)338 1240 y Fh(void)74 b Fb(glXDestro)o(yGLXPixmap)p
Fh(\()98 b(Display)74 b Fj(*dpy)p Fh(,)406 1296 y(GLXPixmap)14
b Fj(pixmap)i Fh(\))24 b(;)295 1402 y Fm(This)15 b(request)f(deletes)i
(the)f(asso)q(ciation)g(b)q(et)o(w)o(een)f(the)h(resource)g(ID)f
Fj(pixmap)224 1459 y Fm(and)j(the)g(GLX)f(pixmap.)25
b(The)17 b(storage)e(will)j(b)q(e)f(freed)g(when)g(it)g(is)g(not)f
(curren)o(t)224 1515 y(to)f(an)o(y)g(clien)o(t.)295 1572
y(If)i Fj(pixmap)g Fm(is)g(not)f(a)h(v)m(alid)h(GLX)e(pixmap)i(then)f
(a)f Fh(GLXBadPixmap)f Fm(error)h(is)224 1628 y(generated.)224
1748 y Fb(3.2.4)52 b(Rendering)18 b(Con)o(texts)224 1834
y Fm(T)l(o)d(create)g(an)g(Op)q(enGL)i(rendering)f(con)o(text)f(call)
338 1928 y Fh(GLXContext)70 b Fb(glX)o(CreateCon)o(text)p
Fh(\()94 b(Display)70 b Fj(*dpy)p Fh(,)406 1984 y(XVisualInfo*)10
b Fj(visual)p Fh(,)j(GLXContext)d Fj(shar)n(e)p 1210
1984 14 2 v 17 w(list)p Fh(,)h(Bool)h Fj(dir)n(e)n(ct)406
2041 y Fh(\))24 b(;)224 2134 y Fb(glX)o(CreateCon)o(text)17
b Fm(returns)g Fb(NULL)h Fm(if)f(it)h(fails.)26 b(If)18
b Fb(glX)o(CreateCon)o(text)224 2191 y Fm(succeeds,)c(it)e(initializes)
j(the)e(rendering)g(con)o(text)f(to)f(the)i(default)f(Op)q(enGL)i
(state)224 2247 y(and)k(returns)f(a)g(handle)h(to)f(it.)26
b(This)18 b(handle)g(can)f(b)q(e)h(used)g(to)f(render)g(to)g(b)q(oth)
224 2304 y(windo)o(ws)e(and)h(GLX)f(pixmaps.)295 2360
y(If)i Fj(shar)n(e)p 448 2360 V 16 w(list)f Fm(is)h(not)f
Fb(NULL)p Fm(,)h(then)g(all)h(displa)o(y)f(lists)h(and)e(texture)h(ob)s
(jects)224 2417 y(except)12 b(texture)f(ob)s(jects)g(named)g(0)g(will)i
(b)q(e)f(shared)g(b)o(y)f Fj(shar)n(e)p 1291 2417 V 17
w(list)f Fm(and)i(the)f(newly)224 2473 y(created)k(rendering)i(con)o
(text.)i(An)d(arbitrary)e(n)o(um)o(b)q(er)i(of)f Fb(GLX)o(Con)o(texts)f
Fm(can)914 2613 y(14)p eop
%%Page: 15 16
15 15 bop 224 286 a Fm(share)14 b(a)g(single)i(displa)o(y)f(list)g(and)
f(texture)g(ob)s(ject)g(space.)20 b(All)15 b(sharing)g(con)o(texts)224
343 y(m)o(ust)f(also)h(share)f(a)g(single)i(address)f(space)g(or)f(a)g
Fh(BadMatch)g Fm(error)f(is)i(generated.)295 399 y(If)f
Fj(dir)n(e)n(ct)g Fm(is)g(true,)g(then)g(a)g(direct)h(rendering)g(con)o
(text)e(will)j(b)q(e)f(created)f(if)g(the)224 456 y(implemen)o(tation)
21 b(supp)q(orts)f(direct)g(rendering)h(and)f(the)f(connection)i(is)f
(to)f(an)224 512 y(X)e(serv)o(er)g(that)g(is)g(lo)q(cal.)27
b(If)18 b Fj(dir)n(e)n(ct)f Fm(is)g Fb(F)l(alse)p Fm(,)h(then)f(a)g
(rendering)h(con)o(text)f(that)224 569 y(renders)f(through)f(the)g(X)g
(serv)o(er)g(is)h(created.)295 625 y(Direct)i(rendering)i(con)o(texts)e
(ma)o(y)g(b)q(e)h(a)f(scarce)h(resource)g(in)g(some)f(imple-)224
682 y(men)o(tations.)32 b(If)20 b Fj(dir)n(e)n(ct)f Fm(is)h(true,)g
(and)f(if)h(a)f(direct)h(rendering)h(con)o(text)d(cannot)224
738 y(b)q(e)d(created,)f(then)h Fb(glX)o(CreateCon)o(text)f
Fm(will)i(attempt)d(to)h(create)g(an)h(indirect)224 795
y(con)o(text)g(instead.)295 851 y Fb(glX)o(CreateCon)o(text)i
Fm(can)i(generate)e(the)i(follo)o(wing)g(GLX)f(extension)h(er-)224
907 y(rors:)f Fh(GLXBadContext)11 b Fm(if)i Fj(shar)n(e)p
800 907 14 2 v 17 w(list)f Fm(is)h(neither)h(zero)f(nor)f(a)h(v)m(alid)
i(GLX)d(render-)224 964 y(ing)h(con)o(text;)f Fh(BadValue)f
Fm(if)i Fj(visual)f Fm(is)h(not)f(a)f(v)m(alid)j(X)f(Visual)g(or)f(if)h
(GLX)f(do)q(es)h(not)224 1020 y(supp)q(ort)18 b(it;)h
Fh(BadMatch)e Fm(if)i Fj(shar)n(e)p 817 1020 V 16 w(list)e
Fm(de\014nes)i(an)f(address)g(space)g(that)f(cannot)224
1077 y(b)q(e)c(shared)g(with)f(the)h(newly)g(created)f(con)o(text)g(or)
g(if)g Fj(shar)n(e)p 1240 1077 V 17 w(list)f Fm(w)o(as)h(created)g(on)g
(a)224 1133 y(di\013eren)o(t)i(screen)f(than)g(the)h(one)f(referenced)h
(b)o(y)f Fj(visual)p Fm(;)g Fh(BadAlloc)g Fm(if)g(the)g(serv)o(er)224
1190 y(do)q(es)j(not)e(ha)o(v)o(e)h(enough)h(resources)f(to)g(allo)q
(cate)h(the)f(new)g(con)o(text.)295 1246 y(T)l(o)g(determine)h(if)g(an)
f(Op)q(enGL)h(rendering)h(con)o(text)d(is)i(direct)g(call)338
1340 y Fh(Bool)e Fb(glXIsDirect)p Fh(\()40 b(Display)14
b Fj(*dpy)p Fh(,)i(GLXContext)d Fj(ctx)j Fh(\))23 b(;)295
1434 y Fb(glXIsDirect)13 b Fm(returns)g Fb(T)l(rue)g
Fm(if)h Fj(ctx)f Fm(is)g(a)g(direct)h(rendering)g(con)o(text,)f
Fb(F)l(alse)224 1490 y Fm(otherwise.)19 b(If)13 b Fj(ctx)g
Fm(is)g(not)g(a)f(v)m(alid)j(GLX)d(rendering)i(con)o(text,)f(a)f
Fh(GLXBadContext)224 1547 y Fm(error)j(is)g(generated.)295
1603 y(An)g(Op)q(enGL)i(rendering)f(con)o(text)f(is)g(destro)o(y)o(ed)g
(b)o(y)g(calling)338 1697 y Fh(void)21 b Fb(glXDestro)o(yCon)o(text)p
Fh(\()45 b(Display)21 b Fj(*dpy)p Fh(,)k(GLXContext)406
1753 y Fj(ctx)15 b Fh(\))24 b(;)224 1847 y Fm(If)c Fj(ctx)g
Fm(is)g(still)h(curren)o(t)f(to)f(an)o(y)g(thread,)h
Fj(ctx)g Fm(is)g(not)f(destro)o(y)o(ed)g(un)o(til)i(it)f(is)g(no)224
1904 y(longer)d(curren)o(t.)24 b(In)17 b(an)o(y)f(ev)o(en)o(t,)g(the)h
(asso)q(ciated)g(XID)g(will)h(b)q(e)f(destro)o(y)o(ed)f(and)224
1960 y Fj(ctx)f Fm(cannot)g(subsequen)o(tly)i(b)q(e)f(made)f(curren)o
(t)g(to)g(an)o(y)f(thread.)295 2017 y Fb(glXDestro)o(yCon)o(text)h
Fm(will)j(generate)e(a)g Fh(GLXBadContext)f Fm(error)g(if)i
Fj(ctx)g Fm(is)224 2073 y(not)e(a)g(v)m(alid)i(rendering)f(con)o(text.)
295 2130 y(T)l(o)f(cop)o(y)g(Op)q(enGL)h(rendering)h(state)d(from)g
(one)i(con)o(text)e(to)h(another,)f(use)338 2223 y Fh(void)36
b Fb(glX)o(Cop)o(yCon)o(text)p Fh(\()59 b(Display)35
b Fj(*dpy)p Fh(,)43 b(GLXContext)406 2280 y Fj(sour)n(c)n(e)p
Fh(,)15 b(GLXContext)e Fj(dest)p Fh(,)i(unsigned)23 b(long)15
b Fj(mask)g Fh(\))23 b(;)224 2374 y Fb(glX)o(Cop)o(yCon)o(text)13
b Fm(copies)j(selected)g(groups)e(of)h(state)f(v)m(ariables)i(from)e
Fj(sour)n(c)n(e)224 2430 y Fm(to)g Fj(dest)p Fm(.)20
b Fj(mask)14 b Fm(indicates)i(whic)o(h)g(groups)e(of)g(state)g(v)m
(ariables)i(are)e(to)g(b)q(e)h(copied;)224 2487 y(it)25
b(con)o(tains)g(the)f(bit)o(wise)i(OR)f(of)f(the)h(sym)o(b)q(olic)h
(names)f(for)f(the)g(attribute)914 2613 y(15)p eop
%%Page: 16 17
16 16 bop 224 286 a Fm(groups.)20 b(The)15 b(sym)o(b)q(olic)h(names)f
(are)g(the)g(same)g(as)g(those)g(used)g(b)o(y)g Fb(glPushA)o(t-)224
343 y(trib)p Fm(,)j(describ)q(ed)i(in)e(the)f(Op)q(enGL)i(Sp)q
(eci\014cation.)29 b(Also,)18 b(the)g(order)f(in)h(whic)o(h)224
399 y(the)h(attributes)g(are)f(copied)i(to)e Fj(dest)h
Fm(as)f(a)g(result)i(of)e(the)h Fb(glX)o(Cop)o(yCon)o(text)224
456 y Fm(op)q(eration)24 b(is)g(the)f(same)g(as)g(the)h(order)f(in)h
(whic)o(h)h(they)e(are)g(p)q(opp)q(ed)i(o\013)e(of)224
512 y(the)d(stac)o(k)g(when)g Fb(glP)o(opA)o(ttrib)g
Fm(is)h(called.)36 b(The)20 b(single)i(sym)o(b)q(olic)f(constan)o(t)224
569 y Fh(GL)p 275 569 15 2 v 17 w(ALL)p 364 569 V 17
w(ATTRIB)p 525 569 V 16 w(BITS)13 b Fm(can)g(b)q(e)h(used)g(to)f(cop)o
(y)g(the)h(maxim)o(um)f(p)q(ossible)i(p)q(ortion)224
625 y(of)j(the)g(rendering)h(state.)27 b(It)18 b(is)h(not)e(an)h(error)
f(to)h(sp)q(ecify)h Fj(mask)f Fm(bits)g(that)f(are)224
682 y(unde\014ned.)295 738 y(If)e Fj(sour)n(c)n(e)f Fm(and)h
Fj(dest)g Fm(do)f(not)h(share)f(an)h(address)g(space)g(or)f(w)o(ere)h
(not)f(created)224 795 y(on)21 b(the)g(same)f(screen,)i(a)f
Fh(BadMatch)e Fm(error)h(is)h(generated.)37 b(\()p Fj(sour)n(c)n(e)19
b Fm(and)i Fj(dest)224 851 y Fm(ma)o(y)e(b)q(e)i(based)f(on)g
(di\013eren)o(t)h(X)f(visuals)h(and)f(still)h(share)f(an)g(address)g
(space;)224 907 y Fb(glX)o(Cop)o(yCon)o(text)11 b Fm(will)j(w)o(ork)d
(correctly)h(in)h(suc)o(h)g(cases.)19 b(\))f(If)13 b(the)f(destination)
224 964 y(con)o(text)j(is)g(curren)o(t)g(for)g(some)g(thread)f(then)i
(a)f Fh(BadAccess)e Fm(error)i(is)g(generated.)224 1020
y(If)k(the)h(source)f(con)o(text)f(is)i(the)f(same)g(as)f(the)h(curren)
o(t)g(con)o(text)g(of)f(the)h(calling)224 1077 y(thread,)c(and)g(the)h
(curren)o(t)f(dra)o(w)o(able)g(of)g(the)g(calling)i(thread)f(is)f(a)g
(windo)o(w)h(that)224 1133 y(is)c(no)e(longer)h(v)m(alid,)i(a)e
Fh(GLXBadCurrentWindow)d Fm(is)k(generated.)18 b(Finally)l(,)13
b(if)e(either)224 1190 y Fj(sour)n(c)n(e)17 b Fm(or)g
Fj(dest)h Fm(is)g(not)f(a)g(v)m(alid)i(GLX)f(rendering)h(con)o(text,)e
(a)g Fh(GLXBadContext)224 1246 y Fm(error)e(is)g(generated.)295
1303 y Fb(glX)o(Cop)o(yCon)o(text)i Fm(p)q(erforms)h(an)h(implicit)i
Fb(glFlush\(\))f Fm(if)f Fj(sour)n(c)n(e)f Fm(is)h(the)224
1359 y(curren)o(t)c(con)o(text)g(for)f(the)i(calling)h(thread.)295
1416 y(Only)22 b(one)g(rendering)g(con)o(text)f(ma)o(y)f(b)q(e)i(in)g
(use,)h(or)d Fj(curr)n(ent)p Fm(,)j(for)d(a)h(par-)224
1472 y(ticular)f(thread)f(at)g(a)g(giv)o(en)h(time.)32
b(The)20 b(minim)o(um)g(n)o(um)o(b)q(er)g(of)f(curren)o(t)g(ren-)224
1528 y(dering)i(con)o(texts)f(that)f(m)o(ust)h(b)q(e)h(supp)q(orted)g
(b)o(y)f(a)g(GLX)g(implemen)o(tation)i(is)224 1585 y(one.)e(\(Supp)q
(orting)14 b(a)f(larger)g(n)o(um)o(b)q(er)h(of)f(curren)o(t)g
(rendering)i(con)o(texts)e(is)g(essen-)224 1641 y(tial)18
b(for)e(general-purp)q(ose)i(systems,)f(but)g(ma)o(y)f(not)g(b)q(e)i
(necessary)f(for)f(turnk)o(ey)224 1698 y(applications.\))295
1754 y(T)l(o)f(mak)o(e)f(a)h(con)o(text)g(curren)o(t,)g(call)338
1839 y Fh(Bool)29 b Fb(glXMak)o(eCurren)o(t)p Fh(\()51
b(Display)29 b Fj(*dpy)p Fh(,)34 b(GLXDrawable)406 1895
y Fj(dr)n(awable)p Fh(,)15 b(GLXContext)f Fj(ctx)h Fh(\))24
b(;)295 1980 y Fm(If)19 b(the)g(calling)i(thread)e(already)h(has)f(a)f
(curren)o(t)h(rendering)i(con)o(text,)e(then)224 2037
y(that)13 b(con)o(text)g(is)h(\015ushed)h(and)f(mark)o(ed)f(as)h(no)f
(longer)h(curren)o(t.)19 b Fj(ctx)14 b Fm(is)g(made)g(the)224
2093 y(curren)o(t)h(con)o(text)g(for)f(the)i(calling)h(thread.)295
2149 y(If)i(the)g Fj(dr)n(awable)f Fm(and)h Fj(ctx)g
Fm(are)g(not)f(similar,)i(a)f Fh(BadMatch)f Fm(error)g(is)h(gener-)224
2206 y(ated.)32 b(If)19 b Fj(ctx)h Fm(is)f(curren)o(t)h(to)e(some)h
(other)g(thread,)h(then)f Fb(glXMak)o(eCurren)o(t)224
2262 y Fm(will)26 b(generate)d(a)h Fh(BadAccess)e Fm(error.)45
b Fh(GLXBadContextState)22 b Fm(is)i(generated)224 2319
y(if)f(there)f(is)h(a)f(curren)o(t)h(rendering)g(con)o(text)f(and)g
(its)h(render)g(mo)q(de)g(is)f(either)224 2375 y Fb(GL)p
299 2375 16 2 v 20 w(FEEDBA)o(CK)g Fm(or)g Fb(GL)p 772
2375 V 20 w(SELECT)p Fm(.)h Fh(GLXBadContextState)e Fm(will)j(also)224
2432 y(b)q(e)f(generated)g(if)f Fb(glXMak)o(eCurren)o(t)f
Fm(is)i(called)g(b)q(et)o(w)o(een)g(a)f Fb(glBegin)i
Fm(and)224 2488 y(its)18 b(corresp)q(onding)h Fb(glEnd)p
Fm(.)30 b(If)18 b Fj(ctx)g Fm(is)h(not)e(a)h(v)m(alid)i(GLX)e
(rendering)h(con)o(text,)914 2613 y(16)p eop
%%Page: 17 18
17 17 bop 224 286 a Fh(GLXBadContext)12 b Fm(is)i(generated.)19
b(If)14 b Fj(dr)n(awable)g Fm(is)g(not)f(a)g(v)m(alid)i(GLX)f(dra)o(w)o
(able,)f(a)224 343 y Fh(GLXBadDrawable)d Fm(error)h(is)h(generated.)19
b(If)12 b(the)g(previous)h(con)o(text)e(of)g(the)h(calling)224
399 y(thread)i(has)f(un\015ushed)i(commands,)e(and)h(the)g(previous)g
(dra)o(w)o(able)g(is)g(a)f(windo)o(w)224 456 y(that)e(is)h(no)f(longer)
h(v)m(alid,)h Fh(GLXBadCurrentWindow)c Fm(is)j(generated.)19
b(Finally)l(,)13 b(note)224 512 y(that)k(the)g(ancillary)i(bu\013ers)e
(for)g Fj(dr)n(awable)g Fm(need)h(not)f(b)q(e)h(allo)q(cated)h(un)o
(til)f(they)224 569 y(are)g(needed.)29 b(A)18 b Fh(BadAlloc)f
Fm(error)g(will)j(b)q(e)e(generated)g(if)h(the)f(serv)o(er)f(do)q(es)i
(not)224 625 y(ha)o(v)o(e)c(enough)h(resources)f(to)f(allo)q(cate)i
(the)f(bu\013ers.)295 682 y(If)h Fj(dr)n(awable)f Fm(is)h(destro)o(y)o
(ed)f(after)g Fb(glXMak)o(eCurren)o(t)f Fm(is)i(called)h(then)f(sub-)
224 738 y(sequen)o(t)g(rendering)h(commands)f(will)i(b)q(eha)o(v)o(e)e
(as)g(if)g Fj(dr)n(awable)g Fm(is)h(b)q(ound)g(to)e(the)224
795 y(NULL)h(clip.)22 b(The)16 b(commands)f(will)i(b)q(e)f(pro)q
(cessed)g(and)f(the)g(con)o(text)g(state)f(will)224 851
y(b)q(e)i(up)q(dated,)g(but)f(no)g(output)g(will)i(app)q(ear)e(on)h
(the)f(displa)o(y)l(.)295 907 y(T)l(o)e(release)g(the)g(curren)o(t)g
(con)o(text)g(without)g(assigning)h(a)f(new)g(one,)g(use)h
Fh(NULL)224 964 y Fm(for)j Fj(ctx)g Fm(and)g Fh(None)f
Fm(for)h Fj(dr)n(awable)p Fm(.)25 b(If)17 b Fj(ctx)h
Fm(is)f Fh(NULL)g Fm(and)g Fj(dr)n(awable)g Fm(is)g(not)g
Fh(None)p Fm(,)224 1020 y(or)d(if)g Fj(dr)n(awable)h
Fm(is)f Fh(None)g Fm(and)g Fj(ctx)g Fm(is)h(not)f Fh(NULL)p
Fm(,)f(then)h(a)g Fh(BadMatch)f Fm(error)h(will)h(b)q(e)224
1077 y(generated.)295 1133 y(The)f(\014rst)f(time)h Fj(ctx)g
Fm(is)g(made)g(curren)o(t)g(to)f(a)g Fh(GLXDrawable)p
Fm(,)g(its)g(initial)j(view-)224 1190 y(p)q(ort)g(is)h(set.)24
b(That)16 b(viewp)q(ort)g(m)o(ust)g(b)q(e)h(reset)g(b)o(y)f(the)g
(clien)o(t)i(when)f Fj(ctx)g Fm(is)g(sub-)224 1246 y(sequen)o(tly)f
(made)f(curren)o(t.)295 1303 y(Note)21 b(that)h(when)g(m)o(ultiple)i
(threads)e(are)g(using)g(their)h(curren)o(t)f(con)o(texts)224
1359 y(to)16 b(render)g(to)g(the)g(same)g(dra)o(w)o(able,)g(Op)q(enGL)i
(do)q(es)e(not)g(guaran)o(tee)f(atomicit)o(y)224 1416
y(of)22 b(fragmen)o(t)f(up)q(date)h(op)q(erations.)41
b(In)22 b(particular,)i(programmers)d(ma)o(y)h(not)224
1472 y(assume)17 b(that)g(depth-bu\013ering)i(will)g(automatically)f(w)
o(ork)e(correctly;)i(there)g(is)224 1528 y(a)13 b(race)g(condition)i(b)
q(et)o(w)o(een)e(threads)g(that)g(read)g(and)h(up)q(date)f(the)h(depth)
g(bu\013er.)224 1585 y(Clien)o(ts)e(are)f(resp)q(onsible)i(for)e(a)o(v)
o(oiding)g(this)h(condition.)20 b(They)11 b(ma)o(y)g(use)g(v)o(endor-)
224 1641 y(sp)q(eci\014c)18 b(extensions)f(or)f(they)g(ma)o(y)f
(arrange)g(for)h(separate)g(threads)f(to)h(dra)o(w)f(in)224
1698 y(disjoin)o(t)h(regions)f(of)g(the)g(framebu\013er,)g(for)f
(example.)295 1754 y Fb(glX)o(GetCurren)o(tCon)o(text)f
Fm(returns)i(the)h(curren)o(t)f(con)o(text.)338 1861
y Fh(GLXContext)f Fb(glX)o(GetCurren)o(tCon)o(text)p
Fh(\()22 b(void)h(\))h(;)295 1967 y Fm(If)15 b(there)g(is)h(no)f
(curren)o(t)g(con)o(text,)g Fb(NULL)h Fm(is)f(returned.)295
2023 y Fb(glX)o(GetCurren)o(tDra)o(w)o(able)9 b Fm(returns)h(the)g(XID)
g(of)g(the)h(curren)o(t)f(dra)o(w)o(able.)338 2130 y
Fh(GLXDrawable)j Fb(glX)o(GetCurren)o(tDra)o(w)o(able)p
Fh(\()23 b(void)g(\))h(;)295 2236 y Fm(If)15 b(there)g(is)h(no)f
(curren)o(t)g(dra)o(w)o(able,)g Fh(None)g Fm(is)g(returned.)295
2292 y(T)l(o)e(get)g(the)h(displa)o(y)g(asso)q(ciated)g(with)g(the)g
(curren)o(t)f(con)o(text)g(and)h(dra)o(w)o(able,)224
2349 y(call)338 2455 y Fh(Display*)g Fb(glX)o(GetCurren)o(tDispla)o(y)p
Fh(\()23 b(void)g(\))h(;)914 2613 y Fm(17)p eop
%%Page: 18 19
18 18 bop 295 286 a Fm(If)19 b(there)h(is)f(no)g(curren)o(t)h(con)o
(text,)f Fb(NULL)h Fm(is)g(returned.)32 b(This)20 b(routine)g(is)224
343 y(a)o(v)m(ailable)d(only)f(if)f(the)h(GLX)f(v)o(ersion)g(is)h(1.2)e
(or)h(later.)295 399 y Fb(glX)o(Get*)e Fm(calls)h(retriev)o(e)f(clien)o
(t-side)i(state)d(and)h(do)f(not)h(force)f(a)h(round)g(trip)224
456 y(to)k(the)h(X)f(serv)o(er.)26 b(Unlik)o(e)19 b(most)e(X)h(calls)g
(\(including)i(the)e Fb(glX)o(Query*)e Fm(calls\))224
512 y(that)f(return)g(a)g(v)m(alue,)h(these)f(calls)h(do)g(not)e
(\015ush)i(an)o(y)f(p)q(ending)i(requests.)224 632 y
Fb(3.2.5)52 b(Sync)o(hronization)19 b(Primitiv)o(es)224
718 y Fm(T)l(o)h(prev)o(en)o(t)g(X)g(requests)g(from)f(executing)j(un)o
(til)f(an)o(y)f(outstanding)g(Op)q(enGL)224 775 y(rendering)c(is)g
(done,)f(call)338 868 y Fh(void)f Fb(glXW)l(aitGL)p Fh(\()26
b(void)d(\))h(;)224 962 y Fm(Op)q(enGL)14 b(calls)f(made)g(prior)f(to)g
Fb(glXW)l(aitGL)i Fm(are)e(guaran)o(teed)g(to)f(b)q(e)i(executed)224
1019 y(b)q(efore)h(X)f(rendering)h(calls)h(made)e(after)f
Fb(glXW)l(aitGL)p Fm(.)j(While)f(the)g(same)f(result)224
1075 y(can)j(b)q(e)f(ac)o(hiev)o(ed)i(using)f Fb(glFinish)p
Fm(,)g Fb(glXW)l(aitGL)g Fm(do)q(es)g(not)f(require)h(a)f(round)224
1132 y(trip)e(to)f(the)h(serv)o(er,)f(and)h(is)g(therefore)g(more)f
(e\016cien)o(t)h(in)h(cases)e(where)h(the)g(clien)o(t)224
1188 y(and)j(serv)o(er)e(are)h(on)g(separate)g(mac)o(hines.)295
1244 y Fb(glXW)l(aitGL)d Fm(is)f(ignored)h(if)f(there)g(is)g(no)g
(curren)o(t)f(rendering)i(con)o(text.)18 b(If)11 b(the)224
1301 y(dra)o(w)o(able)g(asso)q(ciated)h(with)g(the)f(calling)j
(thread's)d(curren)o(t)g(con)o(text)g(is)h(a)f(windo)o(w)224
1357 y(that)k(is)g(no)g(longer)h(v)m(alid,)g(a)f Fh
(GLXBadCurrentWindow)e Fm(error)h(is)i(generated.)295
1414 y(T)l(o)c(prev)o(en)o(t)g(the)h(Op)q(enGL)h(command)e(sequence)i
(from)d(executing)j(un)o(til)f(an)o(y)224 1470 y(outstanding)i(X)h
(requests)f(are)g(completed,)g(call)338 1564 y Fh(void)f
Fb(glXW)l(aitX)p Fh(\()25 b(void)e(\))h(;)224 1658 y
Fm(X)18 b(rendering)i(calls)f(made)f(prior)g(to)g Fb(glXW)l(aitX)h
Fm(are)f(guaran)o(teed)f(to)h(b)q(e)h(exe-)224 1714 y(cuted)c(b)q
(efore)g(Op)q(enGL)h(rendering)f(calls)h(made)e(after)g
Fb(glXW)l(aitX)p Fm(.)g(While)i(the)224 1771 y(same)f(result)g(can)g(b)
q(e)g(ac)o(hiev)o(ed)g(using)h Fb(XSync)p Fm(,)e Fb(glXW)l(aitX)h
Fm(do)q(es)g(not)f(require)224 1827 y(a)h(round)g(trip)h(to)f(the)g
(serv)o(er,)f(and)i(ma)o(y)e(therefore)h(b)q(e)h(more)f(e\016cien)o(t.)
295 1884 y Fb(glXW)l(aitX)f Fm(is)h(ignored)f(if)h(there)f(is)g(no)g
(curren)o(t)g(rendering)h(con)o(text.)k(If)14 b(the)224
1940 y(dra)o(w)o(able)d(asso)q(ciated)h(with)g(the)f(calling)j
(thread's)d(curren)o(t)g(con)o(text)g(is)h(a)f(windo)o(w)224
1997 y(that)k(is)g(no)g(longer)h(v)m(alid,)g(a)f Fh
(GLXBadCurrentWindow)e Fm(error)h(is)i(generated.)224
2117 y Fb(3.2.6)52 b(Double)18 b(Bu\013ering)224 2203
y Fm(F)l(or)e(dra)o(w)o(ables)g(that)g(are)h(double)g(bu\013ered,)g
(the)g(con)o(ten)o(ts)f(of)g(the)h(bac)o(k)f(bu\013er)224
2259 y(can)j(b)q(e)g(made)g(p)q(oten)o(tially)h(visible)h(\(i.e.,)e(b)q
(ecome)g(the)g(con)o(ten)o(ts)f(of)g(the)h(fron)o(t)224
2315 y(bu\013er\))c(b)o(y)g(calling)338 2409 y Fh(void)28
b Fb(glXSw)o(apBu\013ers)f Fh(\()53 b(Display)27 b Fj(*dpy)p
Fh(,)33 b(GLXDrawable)406 2466 y Fj(dr)n(awable)15 b
Fh(\))24 b(;)914 2613 y Fm(18)p eop
%%Page: 19 20
19 19 bop 224 286 a Fm(The)16 b(con)o(ten)o(ts)f(of)g(the)g(bac)o(k)g
(bu\013er)h(then)f(b)q(ecome)i(unde\014ned.)22 b(This)16
b(op)q(eration)224 343 y(is)g(a)g(no-op)g(if)g Fj(dr)n(awable)g
Fm(w)o(as)f(created)g(with)i(a)e(non-double-bu\013ered)j(visual,)f(or)
224 399 y(if)f Fj(dr)n(awable)f Fm(is)h(a)f Fh(GLXPixmap)p
Fm(.)295 456 y(All)f(GLX)g(rendering)g(con)o(texts)e(share)i(the)f
(same)g(notion)g(of)g(whic)o(h)h(are)f(fron)o(t)224 512
y(bu\013ers)j(and)h(whic)o(h)g(are)f(bac)o(k)h(bu\013ers)f(for)g(a)g
(giv)o(en)h(dra)o(w)o(able.)23 b(This)17 b(notion)g(is)224
569 y(also)e(shared)h(with)f(the)g(X)h(double)g(bu\013er)f(extension)h
(\(DBE\).)295 625 y(When)e(m)o(ultiple)h(threads)e(are)g(rendering)i
(to)e(the)g(same)h(dra)o(w)o(able,)f(only)h(one)224 682
y(of)20 b(them)g(need)g(call)h Fh(glXSwapBuffers)d Fm(and)i(all)h(of)f
(them)g(will)h(see)f(the)g(e\013ect)224 738 y(of)c(the)h(sw)o(ap.)23
b(The)17 b(clien)o(t)h(m)o(ust)d(sync)o(hronize)j(the)f(threads)f(that)
g(p)q(erform)g(the)224 795 y(sw)o(ap)i(and)h(the)g(rendering,)h(using)f
(some)g(means)f(outside)h(the)g(scop)q(e)g(of)f(GLX,)224
851 y(to)e(insure)i(that)e(eac)o(h)h(new)g(frame)f(is)h(completely)h
(rendered)g(b)q(efore)f(it)g(is)g(made)224 907 y(visible.)295
964 y(If)27 b Fj(dpy)h Fm(and)f Fj(dr)n(awable)g Fm(are)g(the)g(displa)
o(y)i(and)e(dra)o(w)o(able)g(for)g(the)g(call-)224 1020
y(ing)h(thread's)f(curren)o(t)g(con)o(text,)j Fh(glXSwapBuffers)25
b Fm(p)q(erforms)i(an)h(implicit)224 1077 y Fh(glFlush\(\))p
Fm(.)18 b(Subsequen)o(t)e(Op)q(enGL)f(commands)f(can)g(b)q(e)h(issued)h
(immediately)l(,)224 1133 y(but)g(will)h(not)f(b)q(e)g(executed)h(un)o
(til)g(the)f(bu\013er)g(sw)o(apping)g(has)f(completed,)i(t)o(ypi-)224
1190 y(cally)f(during)h(v)o(ertical)e(retrace)g(of)g(the)g(displa)o(y)h
(monitor.)295 1246 y(If)c Fj(dr)n(awable)f Fm(is)i(not)e(a)g(v)m(alid)i
(GLX)f(dra)o(w)o(able,)g Fb(glXSw)o(apBu\013ers)e Fm(generates)224
1303 y(a)15 b Fh(GLXBadDrawable)e Fm(error.)19 b(If)c
Fj(dpy)g Fm(and)g Fj(dr)n(awable)g Fm(are)g(the)g(displa)o(y)h(and)f
(dra)o(w-)224 1359 y(able)f(asso)q(ciated)f(with)h(the)f(calling)i
(thread's)d(curren)o(t)h(con)o(text,)g(and)g(if)h Fj(dr)n(awable)224
1416 y Fm(is)21 b(a)g(windo)o(w)f(that)g(is)i(no)e(longer)h(v)m(alid,)i
(a)e Fh(GLXBadCurrentWindow)d Fm(error)i(is)224 1472
y(generated.)224 1592 y Fb(3.2.7)52 b(Access)16 b(to)i(X)f(F)l(on)o(ts)
224 1678 y Fm(A)e(shortcut)g(for)g(using)h(X)f(fon)o(ts)f(is)i(pro)o
(vided)g(b)o(y)f(the)g(command)338 1772 y Fh(void)d Fb(glXUseXF)l(on)o
(t)p Fh(\()35 b(Font)12 b Fj(font)p Fh(,)h(int)f Fj(\014rst)p
Fh(,)h(int)f Fj(c)n(ount)p Fh(,)h(int)406 1828 y Fj(list)p
469 1828 14 2 v 16 w(b)n(ase)h Fh(\))24 b(;)224 1922
y Fj(c)n(ount)19 b Fm(displa)o(y)h(lists)g(are)e(de\014ned)j(starting)d
(at)h Fj(list)p 1142 1922 V 16 w(b)n(ase)p Fm(,)f(eac)o(h)h(list)h
(consisting)224 1978 y(of)d(a)g(single)i(call)g(on)e
Fb(glBitmap)p Fm(.)28 b(The)18 b(de\014nition)h(of)e(bitmap)h
Fj(list)p 1424 1978 V 16 w(b)n(ase)f Fm(+)h(i)g(is)224
2035 y(tak)o(en)d(from)f(the)i(glyph)g Fj(\014rst)e Fm(+)i(i)g(of)f
Fj(font)p Fm(.)k(If)d(a)f(glyph)h(is)g(not)e(de\014ned,)j(then)e(an)224
2091 y(empt)o(y)g(displa)o(y)h(list)g(is)g(constructed)f(for)g(it.)20
b(The)c Fh(width)p Fm(,)e Fh(height)p Fm(,)g Fh(xorig)p
Fm(,)g(and)224 2148 y Fh(yorig)20 b Fm(of)f(the)i(constructed)f(bitmap)
g(are)g(computed)h(from)e(the)h(fon)o(t)g(metrics)224
2204 y(as)g Fh(rbearing-lbearing)p Fm(,)e Fh(ascent+descent)p
Fm(,)h Fh(-lbearing)p Fm(,)h(and)g Fh(descent-1)224 2261
y Fm(resp)q(ectiv)o(ely)l(.)26 b Fh(xmove)15 b Fm(is)i(tak)o(en)f(from)
g(the)h Fh(width)e Fm(metric)i(and)g Fh(ymove)f Fm(is)h(set)f(to)224
2317 y(zero.)295 2374 y(Note)d(that)f(in)i(the)g(direct)g(rendering)g
(case,)f(this)h(requires)g(that)e(the)i(bitmaps)224 2430
y(b)q(e)i(copied)g(to)f(the)g(clien)o(t's)h(address)g(space.)295
2486 y Fb(glXUseXF)l(on)o(t)e Fm(p)q(erforms)h(an)g(implicit)j
Fh(glFlush\(\))p Fm(.)914 2613 y(19)p eop
%%Page: 20 21
20 20 bop 295 286 a Fb(glXUseXF)l(on)o(t)25 b Fm(is)i(ignored)g(if)f
(there)h(is)f(no)h(curren)o(t)f(GLX)g(rendering)224 343
y(con)o(text.)64 b Fh(BadFont)29 b Fm(is)i(generated)f(if)g
Fj(font)g Fm(is)h(not)f(a)f(v)m(alid)j(X)e(fon)o(t)g(id.)224
399 y Fh(GLXBadContextState)11 b Fm(is)j(generated)g(if)g(the)g(curren)
o(t)f(GLX)h(rendering)h(con)o(text)224 456 y(is)f(in)h(displa)o(y)g
(list)f(construction)g(mo)q(de.)20 b Fh(GLXBadCurrentWindow)11
b Fm(is)j(generated)224 512 y(if)j(the)f(dra)o(w)o(able)f(asso)q
(ciated)i(with)f(the)g(calling)h(thread's)f(curren)o(t)g(con)o(text)f
(is)h(a)224 569 y(windo)o(w)g(and)f(is)h(no)f(longer)g(v)m(alid.)224
689 y Fb(3.2.8)52 b(GLX)17 b(V)l(ersioning)224 775 y
Fm(The)h(follo)o(wing)h(functions)g(are)f(a)o(v)m(ailable)h(only)g(if)f
(the)h(GLX)f(v)o(ersion)g(is)h(1.1)e(or)224 831 y(later.)338
925 y Fh(const)23 b(char*)68 b Fb(glX)o(QueryExtensionsString)p
Fh(\()g(Display)406 981 y Fj(*dpy)p Fh(,)16 b(int)f Fj(scr)n(e)n(en)e
Fh(\))24 b(;)295 1075 y Fb(glX)o(QueryExtensionsString)15
b Fm(returns)h(a)f(p)q(oin)o(ter)i(to)e(a)g(string)h(describ-)224
1132 y(ing)c(whic)o(h)g(GLX)f(extensions)h(are)f(supp)q(orted)g(on)g
(the)h(connection.)19 b(The)12 b(string)f(is)224 1188
y(zero-terminated)16 b(and)f(con)o(tains)h(a)f(space-sep)q(erated)h
(list)g(of)f(extension)i(names.)224 1244 y(The)g(extension)g(names)g
(themselv)o(es)g(do)f(not)g(con)o(tain)h(spaces.)24 b(If)16
b(there)h(are)f(no)224 1301 y(extensions)g(to)f(GLX,)g(then)g(the)g
(empt)o(y)g(string)g(is)h(returned.)338 1407 y Fh(const)23
b(char*)e Fb(glX)o(GetClien)o(tString)p Fh(\()47 b(Display)22
b Fj(*dpy)p Fh(,)i(int)406 1464 y Fj(name)15 b Fh(\);)295
1570 y Fb(glX)o(GetClien)o(tString)h Fm(returns)g(a)f(p)q(oin)o(ter)g
(to)g(a)g(static,)g(zero-terminated)224 1626 y(string)j(describing)h
(some)e(asp)q(ect)h(of)f(the)g(clien)o(t)i(library)l(.)28
b(The)18 b(p)q(ossible)h(v)m(alues)224 1683 y(for)e Fj(name)g
Fm(are)h Fh(GLX)p 574 1683 15 2 v 16 w(VENDOR)p Fm(,)f
Fh(GLX)p 836 1683 V 16 w(VERSION)p Fm(,)f(and)i Fh(GLX)p
1212 1683 V 17 w(EXTENSIONS)p Fm(.)e(If)h Fj(name)224
1739 y Fm(is)i(not)f(set)g(to)g(one)h(of)f(these)g(v)m(alues)i(then)f
Fb(NULL)g Fm(is)g(returned.)30 b(The)18 b(format)224
1796 y(and)d(con)o(ten)o(ts)f(of)g(the)h(v)o(endor)g(string)f(is)h
(implemen)o(tation)h(dep)q(enden)o(t,)g(and)f(the)224
1852 y(format)e(of)h(the)g(extension)h(string)g(is)f(the)h(same)f(as)f
(for)h Fb(glX)o(QueryExtension-)224 1909 y(sString)p
Fm(.)20 b(The)c(v)o(ersion)f(string)g(is)h(laid)g(out)f(as)g(follo)o
(ws:)338 2015 y Fa(<)p Fm(ma)s(jor)p 495 2015 14 2 v
15 w(v)o(ersion.minor)p 778 2015 V 17 w(v)o(ersion)p
Fa(><)p Fm(space)p Fa(><)p Fm(v)o(endor-sp)q(eci\014c)406
2071 y(info)p Fa(>)224 2178 y Fm(Both)c(the)g(ma)s(jor)e(and)i(minor)g
(p)q(ortions)g(of)f(the)h(v)o(ersion)g(n)o(um)o(b)q(er)g(are)f(of)h
(arbitrary)224 2234 y(length.)36 b(The)21 b(v)o(endor-sp)q(eci\014c)h
(information)e(is)h(optional.)36 b(Ho)o(w)o(ev)o(er,)20
b(if)h(it)g(is)224 2291 y(presen)o(t,)15 b(the)g(format)f(and)i(con)o
(ten)o(ts)e(are)h(implemen)o(tation)h(sp)q(eci\014c.)338
2397 y Fh(const)23 b(char*)12 b Fb(glX)o(QueryServ)o(erString)p
Fh(\()e(Display)h Fj(*dpy)p Fh(,)j(int)406 2453 y Fj(scr)n(e)n(en)p
Fh(,)f(int)i Fj(name)g Fh(\))24 b(;)914 2613 y Fm(20)p
eop
%%Page: 21 22
21 21 bop 295 286 a Fb(glX)o(QueryServ)o(erString)34
b Fm(returns)i(a)h(p)q(oin)o(ter)g(to)f(a)g(static,)41
b(zero-)224 343 y(terminated)14 b(string)h(describing)g(some)f(asp)q
(ect)g(of)g(the)g(serv)o(er's)f(GLX)i(extension.)224
399 y(The)i(p)q(ossible)i(v)m(alues)e(for)f Fj(name)h
Fm(and)g(the)g(format)e(of)h(the)h(strings)f(is)i(the)e(same)224
456 y(as)i(for)g Fb(glX)o(GetClien)o(tString)p Fm(.)30
b(If)19 b Fj(name)f Fm(is)h(not)f(set)g(to)f(a)h(recognized)i(v)m(alue)
224 512 y(then)c Fb(NULL)g Fm(is)g(returned.)224 655
y Fk(4)67 b(Enco)r(ding)23 b(on)g(the)f(X)h(Byte)f(Stream)224
757 y Fm(In)16 b(the)g(remote)f(rendering)i(case,)e(the)h(o)o(v)o
(erhead)f(asso)q(ciated)h(with)g(in)o(terpreting)224
813 y(the)21 b(GLX)g(extension)h(requests)f(m)o(ust)g(b)q(e)h
(minimized.)40 b(F)l(or)20 b(this)h(reason,)h(all)224
870 y(commands)15 b(ha)o(v)o(e)f(b)q(een)h(brok)o(en)g(up)g(in)o(to)g
(t)o(w)o(o)e(categories:)19 b(Op)q(enGL)d(and)f(GLX)224
926 y(commands)k(that)g(are)g(eac)o(h)g(implemen)o(ted)i(as)e(a)g
(single)i(X)e(extension)h(request)224 983 y(and)f(Op)q(enGL)h
(rendering)g(requests)f(that)f(are)h(batc)o(hed)g(within)h(a)e
Fh(GLXRender)224 1039 y Fm(request.)224 1161 y Fi(4.1)56
b(Requests)17 b(that)i(hold)f(a)h(single)f(extension)f(request)224
1247 y Fm(Eac)o(h)f(of)g(the)h(commands)f(from)f(glx.h)i(\(that)e(is,)i
(the)f Fb(glX*)h Fm(commands\))f(is)h(en-)224 1303 y(co)q(ded)d(b)o(y)f
(a)f(separate)h(X)g(extension)h(request.)19 b(In)13 b(addition,)i
(there)e(is)g(a)g(separate)224 1360 y(X)j(extension)h(request)f(for)f
(eac)o(h)i(of)e(the)h(Op)q(enGL)i(commands)d(that)h(cannot)f(b)q(e)224
1416 y(put)j(in)o(to)g(a)f(displa)o(y)i(list.)29 b(That)17
b(list)h(consists)g(of)g(all)h(the)e Fb(glGet*)i Fm(commands)224
1473 y(plus)330 1566 y Fb(glAreT)l(exturesResiden)o(t)330
1623 y(glDeleteLists)330 1679 y(glDeleteT)l(extures)330
1736 y(glEndList)330 1792 y(glF)l(eedbac)o(kBu\013er)330
1849 y(glFinish)330 1905 y(glFlush)330 1962 y(glGenLists)330
2018 y(glGenT)l(extures)330 2074 y(glIsEnabled)330 2131
y(glIsList)330 2187 y(glIsT)l(exture)330 2244 y(glNewList)330
2300 y(glPixelStoref)330 2357 y(glPixelStorei)330 2413
y(glReadPixels)330 2470 y(glRenderMo)q(de)914 2613 y
Fm(21)p eop
%%Page: 22 23
22 22 bop 224 247 1459 2 v 224 631 2 385 v 278 321 a
21313290 2557593 2105016 42626580 38679674 47099740 startTexFig
278 321 a
%%BeginDocument: encoding.eps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
/incr {
2 1 roll dup 3 -1 roll
5 -1 roll dup 6 1 roll cvi put
3 1 roll dup 4 1 roll add 3 1 roll
} bind def
/scanspan {
/xb2 exch def
/xg2 exch def
/xr2 exch def
/xx2 exch def
/xb1 exch def
/xg1 exch def
/xr1 exch def
/xx1 exch def
/dx xx2 xx1 sub def
dx 0 ne {
/drdx xr2 xr1 sub dx div def
/dgdx xg2 xg1 sub dx div def
/dbdx xb2 xb1 sub dx div def
}{
/drdx 0 def
/dgdx 0 def
/dbdx 0 def
} ifelse
/len dx 1 add cvi 3 mul def
len string dup dup
xr1 drdx 3 -1 roll
0 3 len 1 sub { incr } for
pop pop pop
xg1 dgdx 3 -1 roll
1 3 len 1 sub { incr } for
pop pop pop
xb1 dbdx 3 -1 roll
2 3 len 1 sub { incr } for
3 1 roll pop pop
} bind def
/scantrap {
/trapsave save def
/b4 exch def
/g4 exch def
/r4 exch def
/x4 exch def
/b3 exch def
/g3 exch def
/r3 exch def
/x3 exch def
/b2 exch def
/g2 exch def
/r2 exch def
/y2 exch def
/x2 exch def
/b1 exch def
/g1 exch def
/r1 exch def
/y1 exch def
/x1 exch def
/dy y1 y2 sub def
dy 0 ne {
/dxdy12 x2 x1 sub dy div def
/dxdy43 x3 x4 sub dy div def
/drdy12 r2 r1 sub dy div def
/drdy43 r3 r4 sub dy div def
/dgdy12 g2 g1 sub dy div def
/dgdy43 g3 g4 sub dy div def
/dbdy12 b2 b1 sub dy div def
/dbdy43 b3 b4 sub dy div def
}{
/dxdy12 0 def
/dxdy43 0 def
/drdy12 0 def
/drdy43 0 def
/dgdy12 0 def
/dgdy43 0 def
/dbdy12 0 def
/dbdy43 0 def
} ifelse
y1 -1 y2 {
x4 x1 sub 0 lt { exit } if
/y exch def
/traploopsave save def
x1 r1 g1 b1 x4 r4 g4 b4 scanspan
/img exch def
/xlen x4 x1 sub 1 add def
x1 y translate
xlen 1 scale
xlen cvi 1 8 [xlen 0 0 0.9 0 0] { img } false 3 colorimage
traploopsave restore
/x1 x1 dxdy12 add def
/r1 r1 drdy12 add def
/g1 g1 dgdy12 add def
/b1 b1 dbdy12 add def
/x4 x4 dxdy43 add def
/r4 r4 drdy43 add def
/g4 g4 dgdy43 add def
/b4 b4 dbdy43 add def
} for
trapsave restore
} def
/d {
newpath
moveto
lineto
lineto
closepath
stroke
} bind def
/q {
newpath
moveto
lineto
lineto
lineto
closepath
stroke
} bind def
/draw3 {
setgray
newpath
moveto
lineto
lineto
closepath
stroke
} bind def
/F3 {
setgray
newpath
moveto
lineto
lineto
closepath
fill
} bind def
/F4 {
setgray
newpath
moveto
lineto
lineto
lineto
closepath
fill
} bind def
/F5 {
setgray
newpath
moveto
lineto
lineto
lineto
lineto
closepath
fill
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Helvetica-Bold-SHOWISO exch definefont pop
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Courier-Bold-SHOWISO exch definefont pop
gsave
0 0 0 setrgbcolor
gsave
matrix currentmatrix
[96 0 0 -68 32 716] concat
B
setmatrix
2 setlinewidth
gsave stroke grestore
grestore
0 0 0 setrgbcolor
gsave
matrix currentmatrix
[144 0 0 -68 128 716] concat
B
setmatrix
2 setlinewidth
gsave stroke grestore
grestore
0 0 0 setrgbcolor
gsave
matrix currentmatrix
[316 0 0 -68 272 716] concat
B
setmatrix
2 setlinewidth
gsave stroke grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
2 setlinewidth
[2 3 8 3] 1 setdash
newpath
88 716 M
88 648 L
stroke
grestore
0 0 0 setrgbcolor
gsave
newpath
273 687 M 253 706 L 343 706 L 343 687 L
closepath clip newpath
283 692 M gsave
-283 0.0 translate
0.972763 1.0 scale
290.924 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(GLX) S
grestore
grestore
0 0 0 setrgbcolor
gsave
newpath
265 658 M 245 677 L 358 677 L 358 658 L
closepath clip newpath
275 663 M gsave
-275 0.0 translate
1.05743 1.0 scale
260.064 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(Render) S
grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
2 setlinewidth
[2 3 8 3] 1 setdash
newpath
328 716 M
328 648 L
stroke
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
2 setlinewidth
[2 3 8 3] 1 setdash
newpath
184 716 M
184 648 L
stroke
grestore
0 0 0 setrgbcolor
gsave
newpath
128 686 M 108 705 L 198 705 L 198 686 L
closepath clip newpath
138 691 M gsave
-138 0.0 translate
0.972763 1.0 scale
141.864 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(GLX) S
grestore
grestore
0 0 0 setrgbcolor
gsave
newpath
33 659 M 13 697 L 109 697 L 109 659 L
closepath clip newpath
44 683 M gsave
-44 0.0 translate
1.0661 1.0 scale
41.272 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(Core) S
grestore
56 664 M gsave
-56 0.0 translate
0.963804 1.0 scale
58.1031 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(X) S
grestore
grestore
0 0 0 setrgbcolor
gsave
newpath
81 670 M 61 689 L 153 689 L 153 670 L
closepath clip newpath
91 675 M gsave
-91 0.0 translate
1.04225 1.0 scale
87.3115 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(data) S
grestore
grestore
0 0 0 setrgbcolor
gsave
newpath
125 658 M 105 677 L 209 677 L 209 658 L
closepath clip newpath
135 663 M gsave
-135 0.0 translate
1.03806 1.0 scale
130.05 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(single) S
grestore
grestore
0 0 0 setrgbcolor
gsave
newpath
189 670 M 169 689 L 261 689 L 261 670 L
closepath clip newpath
199 675 M gsave
-199 0.0 translate
1.04225 1.0 scale
190.934 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(data) S
grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
1 setlinewidth
[1 3] 0 setdash
newpath
464 712 M
464 648 L
stroke
grestore
0 0 0 setrgbcolor
gsave
newpath
325 670 M 305 689 L 396 689 L 396 670 L
closepath clip newpath
335 675 M gsave
-335 0.0 translate
1.0075 1.0 scale
332.505 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(cmd) S
grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
1 setlinewidth
[1 3] 0 setdash
newpath
376 704 M
376 660 L
stroke
grestore
0 0 0 setrgbcolor
gsave
newpath
385 670 M 365 689 L 457 689 L 457 670 L
closepath clip newpath
395 675 M gsave
-395 0.0 translate
1.04225 1.0 scale
378.989 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(data) S
grestore
grestore
0 0 0 setrgbcolor
gsave
newpath
461 670 M 441 689 L 532 689 L 532 670 L
closepath clip newpath
471 675 M gsave
-471 0.0 translate
1.0075 1.0 scale
467.492 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(cmd) S
grestore
grestore
0 0 0 setrgbcolor
gsave
0 0 0 setrgbcolor
1 setlinewidth
[1 3] 0 setdash
newpath
512 704 M
512 660 L
stroke
grestore
0 0 0 setrgbcolor
gsave
newpath
529 670 M 509 689 L 601 689 L 601 670 L
closepath clip newpath
539 675 M gsave
-539 0.0 translate
1.04225 1.0 scale
517.153 0.0 translate
/Helvetica-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
(data) S
grestore
grestore
grestore
showpage
%%EndDocument
endTexFig
263 601 a Fp(Figure)14 b(2.)k(GLX)13 b(b)o(yte)i(stream.)p
1681 631 2 385 v 224 633 1459 2 v 330 811 a Fb(glSelectBu\013er)224
961 y Fm(The)c(t)o(w)o(o)e Fb(PixelStore)i Fm(commands)f(\()p
Fb(glPixelStorei)i Fm(and)e Fb(glPixelStoref)p Fm(\))h(are)224
1018 y(exceptions.)21 b(These)15 b(commands)g(are)f(issued)i(to)e(the)h
(serv)o(er)f(only)i(to)e(allo)o(w)h(it)g(to)224 1074
y(set)c(its)f(error)g(state)g(appropriately)l(.)19 b(Pixel)12
b(storage)e(state)f(is)j(main)o(tained)f(en)o(tirely)224
1131 y(on)16 b(the)g(clien)o(t)h(side.)22 b(When)16 b(pixel)i(data)d
(is)h(transmitted)f(to)h(the)f(serv)o(er)h(\(b)o(y)f
Fb(gl-)224 1187 y(Dra)o(wPixels)p Fm(,)e(for)h(example\),)g(the)g
(pixel)h(storage)e(information)h(that)f(describ)q(es)224
1243 y(it)j(is)g(transmitted)f(as)g(part)g(of)g(the)g(same)g(proto)q
(col)h(request.)k(Implemen)o(tations)224 1300 y(ma)o(y)13
b(not)h(c)o(hange)g(this)g(b)q(eha)o(vior,)g(b)q(ecause)h(suc)o(h)f(c)o
(hanges)g(w)o(ould)g(cause)g(shared)224 1356 y(con)o(texts)h(to)f(b)q
(eha)o(v)o(e)i(incorrectly)l(.)224 1478 y Fi(4.2)56 b(Request)17
b(that)i(holds)f(m)n(ultiple)e(Op)r(enGL)i(commands)224
1564 y Fm(The)e(remaining)h(Op)q(enGL)g(commands)f(are)g(those)f(that)h
(ma)o(y)f(b)q(e)h(put)g(in)o(to)g(dis-)224 1620 y(pla)o(y)d(lists.)20
b(Multiple)14 b(o)q(ccurrences)g(of)e(these)h(commands)f(are)h(group)q
(ed)g(together)224 1677 y(in)o(to)k(a)g(single)h(X)f(extension)g
(request)g(\()p Fb(GLXRender)p Fm(\).)24 b(This)18 b(is)f(diagrammed)
224 1733 y(in)f(Figure)g(2.)295 1790 y(The)c(grouping)g(minimizes)i
(dispatc)o(hing)g(within)f(the)f(X)g(serv)o(er.)18 b(The)12
b(library)224 1846 y(pac)o(ks)18 b(as)g(man)o(y)g(Op)q(enGL)i(commands)
e(as)g(p)q(ossible)i(in)o(to)e(a)g(single)i(X)e(request)224
1903 y(\(without)j(exceeding)i(the)f(maxim)o(um)f(size)h(limit\).)39
b(No)22 b(Op)q(enGL)g(command)224 1959 y(ma)o(y)15 b(b)q(e)h(split)g
(across)e(m)o(ultiple)j Fb(GLXRender)e Fm(requests.)295
2016 y(F)l(or)i(long)i(Op)q(enGL)h(commands)e(\(those)g(longer)g(than)g
(a)g(maxim)o(um)h(X)f(re-)224 2072 y(quest)i(size\),)h(a)f(series)h(of)
e Fb(GLXRenderLarge)h Fm(commands)g(is)h(issued.)35 b(The)224
2128 y(structure)19 b(of)g(the)h(Op)q(enGL)h(command)e(within)h
Fb(GLXRenderLarge)g Fm(is)g(the)224 2185 y(same)15 b(as)g(for)f
Fb(GLXRender)p Fm(.)295 2241 y(Note)j(that)g(it)h(is)g(legal)h(to)e(ha)
o(v)o(e)g(a)h Fb(glBegin)h Fm(in)f(one)g(request,)g(follo)o(w)o(ed)g(b)
o(y)224 2298 y Fb(glV)l(ertex)g Fm(commands,)i(and)f(ev)o(en)o(tually)h
(the)f(matc)o(hing)h Fb(glEnd)g Fm(in)g(a)e(subse-)224
2354 y(quen)o(t)d(request.)20 b(A)c(command)f(is)g(not)g(the)g(same)g
(as)g(an)g(Op)q(enGL)i(primitiv)o(e.)914 2613 y(22)p
eop
%%Page: 23 24
23 23 bop 224 286 a Fi(4.3)56 b(Wire)17 b(represen)n(tations)h(and)h(b)
n(yte)f(sw)n(apping)224 372 y Fm(Unsigned)f(and)e(signed)h(in)o(tegers)
f(are)g(represen)o(ted)h(as)f(they)g(are)g(represen)o(ted)g(in)224
429 y(the)g(core)g(X)f(proto)q(col.)20 b(Single)d(and)e(double)h
(precision)g(\015oating)f(p)q(oin)o(t)g(n)o(um)o(b)q(ers)224
485 y(are)f(sen)o(t)g(and)g(receiv)o(ed)h(in)g(IEEE)g(\015oating)f(p)q
(oin)o(t)g(format.)k(The)d(X)f(b)o(yte)g(stream)224 542
y(and)21 b(net)o(w)o(ork)e(sp)q(eci\014cations)k(mak)o(e)d(it)g(imp)q
(ossible)j(for)d(the)h(clien)o(t)g(to)f(assure)224 598
y(that)f(double)i(precision)g(\015oating)e(p)q(oin)o(t)h(n)o(um)o(b)q
(ers)g(will)h(b)q(e)g(naturally)f(aligned)224 655 y(within)e(the)g
(transp)q(ort)e(bu\013ers)h(of)g(the)g(serv)o(er.)25
b(F)l(or)17 b(those)f(arc)o(hitectures)i(that)224 711
y(require)d(it,)e(the)h(serv)o(er)f(or)g(clien)o(t)i(m)o(ust)e(cop)o(y)
h(those)f(\015oating)h(p)q(oin)o(t)g(n)o(um)o(b)q(ers)g(to)224
767 y(a)h(prop)q(erly)h(aligned)h(bu\013er)e(b)q(efore)g(using)h(them.)
295 824 y(Byte)23 b(sw)o(apping)h(on)f(the)g(encapsulated)i(Op)q(enGL)f
(b)o(yte)f(stream)g(is)g(p)q(er-)224 880 y(formed)15
b(b)o(y)h(the)f(serv)o(er)g(using)h(the)g(same)f(rule)h(as)f(the)g
(core)h(X)f(proto)q(col.)20 b(Single)224 937 y(precision)d(\015oating)f
(p)q(oin)o(t)g(v)m(alues)h(are)e(sw)o(app)q(ed)h(in)h(the)e(same)h(w)o
(a)o(y)e(that)h(32-bit)224 993 y(in)o(tegers)d(are)f(sw)o(app)q(ed.)19
b(Double)12 b(precision)h(\015oating)f(p)q(oin)o(t)g(v)m(alues)h(are)e
(sw)o(app)q(ed)224 1050 y(across)k(all)h(8)f(b)o(ytes.)224
1171 y Fi(4.4)56 b(Sequen)n(tialit)n(y)224 1257 y Fm(There)16
b(are)f(t)o(w)o(o)f(sequences)j(of)e(commands:)20 b(the)c(X)f(stream,)g
(and)g(the)h(Op)q(enGL)224 1314 y(stream.)34 b(In)21
b(general)g(these)f(t)o(w)o(o)f(streams)g(are)h(indep)q(enden)o(t:)32
b(Although)21 b(the)224 1370 y(commands)h(in)h(eac)o(h)g(stream)e(will)
j(b)q(e)f(pro)q(cessed)g(in)g(sequence,)i(there)d(is)h(no)224
1427 y(guaran)o(tee)17 b(that)g(commands)h(in)g(the)g(separate)f
(streams)g(will)i(b)q(e)g(pro)q(cessed)f(in)224 1483
y(the)d(order)g(in)h(whic)o(h)g(they)g(w)o(ere)f(issued)h(b)o(y)f(the)g
(calling)i(thread.)295 1540 y(An)g(exception)h(to)f(this)g(rule)h
(arises)f(when)h(a)f(single)h(command)f(app)q(ears)g(in)224
1596 y Fj(b)n(oth)e Fm(streams.)k(This)d(forces)f(the)g(t)o(w)o(o)f
(streams)h(to)f(rendezv)o(ous.)295 1652 y(Because)f(the)f(pro)q
(cessing)h(of)f(the)g(t)o(w)o(o)f(streams)g(ma)o(y)h(tak)o(e)f(place)i
(at)f(di\013eren)o(t)224 1709 y(rates,)h(and)h(some)f(op)q(erations)h
(ma)o(y)f(dep)q(end)j(on)d(the)h(results)g(of)f(commands)h(in)g(a)224
1765 y(di\013eren)o(t)j(stream,)e(w)o(e)i(distinguish)h(b)q(et)o(w)o
(een)f(commands)f(assigned)h(to)f(eac)o(h)h(of)224 1822
y(the)e(X)h(and)f(Op)q(enGL)i(streams.)295 1878 y(The)f(follo)o(wing)g
(commands)f(are)h(pro)q(cessed)g(on)g(the)f(clien)o(t)i(side)g(and)f
(there-)224 1935 y(fore)f(do)g(not)g(exist)g(in)h(either)g(the)g(X)f
(or)g(the)g(Op)q(enGL)h(stream:)330 2041 y Fb(glX)o(GetClien)o(tString)
330 2097 y(glX)o(GetCurren)o(tCon)o(text)330 2154 y(glX)o(GetCurren)o
(tDispla)o(y)330 2210 y(glX)o(GetCurren)o(tDra)o(w)o(able)330
2267 y(glX)o(GetCon\014g)295 2429 y Fm(The)h(follo)o(wing)g(commands)f
(are)g(in)i(the)e(X)h(stream)f(and)h(ob)q(ey)g(the)f(sequen-)224
2486 y(tialit)o(y)g(guaran)o(tees)e(for)h(X)g(requests:)914
2613 y(23)p eop
%%Page: 24 25
24 24 bop 330 286 a Fb(glX)o(CreateCon)o(text)330 343
y(glXDestro)o(yCon)o(text)330 399 y(glXMak)o(eCurren)o(t)330
456 y(glXIsDirect)330 512 y(glX)o(QueryExtensionsString)330
569 y(glX)o(QueryServ)o(erString)330 625 y(glX)o(QueryV)l(ersion)330
682 y(glXW)l(aitGL)330 738 y(glX)o(CreateGLXPixmap)330
795 y(glXDestro)o(yGLXPixmap)330 851 y(glX)o(Cho)q(oseVisual)330
907 y(glXSw)o(apBu\013ers)14 b Fm(\(but)h(see)h(b)q(elo)o(w\))330
964 y Fb(glX)o(Cop)o(yCon)o(text)e Fm(\(see)h(b)q(elo)o(w\))295
1127 y Fb(glXSw)o(apBu\013ers)h Fm(is)h(in)h(the)g(X)f(stream)f(if)i
(and)f(only)h(if)f(the)h(displa)o(y)g(and)224 1183 y(dra)o(w)o(able)13
b(are)g(not)g(those)h(b)q(elonging)h(to)d(the)i(calling)h(thread's)e
(curren)o(t)g(con)o(text;)224 1240 y(otherwise)19 b(it)f(is)h(in)g(the)
f(Op)q(enGL)h(stream.)28 b Fb(glX)o(Cop)o(yCon)o(text)17
b Fm(is)i(in)g(the)f(X)224 1296 y(stream)i(alone)i(if)g(and)f(only)h
(if)f(its)h(source)f(con)o(text)f(di\013ers)i(from)e(the)h(calling)224
1352 y(thread's)15 b(curren)o(t)g(con)o(text;)f(otherwise)i(it)f(is)h
(in)g(b)q(oth)f(streams.)295 1409 y(Commands)23 b(in)h(the)g(Op)q(enGL)
h(stream,)g(whic)o(h)f(ob)q(ey)g(the)g(sequen)o(tialit)o(y)224
1465 y(guaran)o(tees)15 b(for)f(Op)q(enGL)j(requests)e(are:)330
1572 y Fb(glXW)l(aitX)330 1628 y(glXSw)o(apBu\013ers)f
Fm(\(see)h(b)q(elo)o(w\))330 1685 y(All)i(Op)q(enGL)f(Commands)295
1847 y Fb(glXSw)o(apBu\013ers)11 b Fm(is)j(in)f(the)g(Op)q(enGL)i
(stream)d(if)h(and)g(only)h(if)f(the)g(displa)o(y)224
1904 y(and)g(dra)o(w)o(able)f(are)h(those)f(b)q(elonging)i(to)e(the)h
(calling)h(thread's)f(curren)o(t)f(con)o(text;)224 1960
y(otherwise)k(it)f(is)h(in)g(the)f(X)g(stream.)295 2017
y(Commands)f(in)i(b)q(oth)g(streams,)e(whic)o(h)i(force)f(a)g(rendezv)o
(ous)g(are:)330 2123 y Fb(glX)o(Cop)o(yCon)o(text)f Fm(\(see)h(b)q(elo)
o(w\))330 2179 y Fb(glXUseXF)l(on)o(t)295 2342 y(glX)o(Cop)o(yCon)o
(text)9 b Fm(is)i(in)g(b)q(oth)g(streams)f(if)h(and)f(only)h(if)g(the)g
(source)g(con)o(text)224 2399 y(is)18 b(the)f(same)f(as)h(the)g(curren)
o(t)g(con)o(text)f(of)h(the)g(calling)i(thread;)e(otherwise)g(it)h(is)
224 2455 y(in)e(the)f(X)h(stream)e(only)l(.)914 2613
y(24)p eop
%%Page: 25 26
25 25 bop 224 286 a Fk(5)67 b(Extending)24 b(Op)r(enGL)224
388 y Fm(Op)q(enGL)16 b(is)e(extended)h(b)o(y)f(adding)h(new)f(GLX)g
(requests,)g(Op)q(enGL)i(requests)e(or)224 444 y(additional)f(en)o
(umerated)e(v)m(alues)i(to)d(the)i(Op)q(enGL)g(requests.)19
b(The)11 b(Op)q(enGL)i(Ar-)224 501 y(c)o(hitectural)h(Review)g(Board)e
(main)o(tains)h(a)f(registry)g(of)h(indexes)h(for)e(eac)o(h)g(v)o
(endor)224 557 y(to)j(use)g(as)g(they)g(wish.)295 614
y(New)23 b(names)f(m)o(ust)g(clearly)i(indicate)g(to)e(clien)o(ts)i
(whether)f(some)g(partic-)224 670 y(ular)h(feature)g(is)h(in)f(the)g
(core)g(Op)q(enGL)h(or)f(is)g(v)o(endor)g(sp)q(eci\014c.)48
b(T)l(o)24 b(mak)o(e)224 727 y(a)e(v)o(endor-sp)q(eci\014c)i(name,)g
(app)q(end)g(a)d(compan)o(y)i(iden)o(ti\014er)g(\(in)g(upp)q(er)g
(case\))224 783 y(and)c(an)o(y)e(additional)j(v)o(endor-sp)q(eci\014c)g
(tags)e(\(e.g.)28 b(mac)o(hine)19 b(names\).)29 b(F)l(or)17
b(in-)224 840 y(stance,)22 b(SGI)f(migh)o(t)f(add)h(new)g(commands)f
(and)h(manifest)g(constan)o(ts)f(of)g(the)224 896 y(form)f
Fb(glNewCommandSGI)f Fm(and)i Fb(GL)p 990 896 16 2 v
19 w(NEW)p 1138 896 V 19 w(DEFINITION)p 1481 896 V 19
w(SGI)p Fm(.)f(If)224 952 y(SGI)f(w)o(an)o(ted)g(to)f(pro)o(vide)i
(extensions)f(that)g(w)o(ere)f(sp)q(eci\014c)j(to)e(its)g(Realit)o(y)h
(En-)224 1009 y(gine,)13 b(then)f(the)f(names)h(migh)o(t)f(b)q(e)i(of)e
(the)g(form)g Fb(glNewCommandSGIre)g Fm(and)224 1065
y Fb(GL)p 299 1065 V 20 w(NEW)p 448 1065 V 19 w(DEFINITION)p
791 1065 V 19 w(SGI)p 900 1065 V 18 w(RE)p Fm(.)k(If)f(t)o(w)o(o)f(or)h
(more)f(licensees)k(agree)c(in)224 1122 y(go)q(o)q(d)i(faith)h(to)e
(implemen)o(t)j(the)e(same)g(extension,)g(and)h(to)e(mak)o(e)h(the)g
(sp)q(eci\014ca-)224 1178 y(tion)f(of)g(that)f(extension)i(publicly)h
(a)o(v)m(ailable,)g(the)e(pro)q(cedures)g(and)g(tok)o(ens)g(that)224
1235 y(are)h(de\014ned)i(b)o(y)e(the)g(extension)h(can)f(b)q(e)h
(su\016xed)g(b)o(y)f Fb(EXT)p Fm(.)224 1378 y Fk(6)67
b(Glossary)224 1479 y Fb(Address)16 b(Space)23 b Fm(the)30
b(set)f(of)h(ob)s(jects)f(or)g(memory)g(lo)q(cations)h(accessible)338
1536 y(through)18 b(a)f(single)j(name)e(space.)29 b(In)19
b(other)f(w)o(ords,)f(it)i(is)f(a)g(data)g(region)338
1592 y(that)c(one)i(or)e(more)h(pro)q(cesses)h(ma)o(y)e(share)h
(through)g(p)q(oin)o(ters.)224 1686 y Fb(Clien)o(t)24
b Fm(an)16 b(X)h(clien)o(t.)26 b(An)18 b(application)g(comm)o(unicates)
f(to)g(a)f(serv)o(er)h(b)o(y)f(some)338 1743 y(path.)j(The)13
b(application)i(program)d(is)h(referred)g(to)g(as)f(a)h(clien)o(t)i(of)
d(the)h(win-)338 1799 y(do)o(w)i(system)f(serv)o(er.)20
b(T)l(o)15 b(the)g(serv)o(er,)g(the)g(clien)o(t)h(is)g(the)f(comm)o
(unication)338 1855 y(path)e(itself.)20 b(A)13 b(program)f(with)h(m)o
(ultiple)i(connections)f(is)f(view)o(ed)h(as)f(m)o(ul-)338
1912 y(tiple)j(clien)o(ts)g(to)f(the)g(serv)o(er.)k(The)c(resource)g
(lifetimes)i(are)d(con)o(trolled)i(b)o(y)338 1968 y(the)f(connection)h
(lifetimes,)h(not)e(the)g(application)i(program)d(lifetimes.)224
2062 y Fb(Connection)24 b Fm(a)15 b(bidirectional)j(b)o(yte)d(stream)f
(that)g(carries)i(the)f(X)g(\(and)g(GLX\))338 2119 y(proto)q(col)h(b)q
(et)o(w)o(een)h(the)g(clien)o(t)h(and)f(the)g(serv)o(er.)24
b(A)16 b(clien)o(t)i(t)o(ypically)g(has)338 2175 y(only)e(one)f
(connection)h(to)f(a)g(serv)o(er.)224 2269 y Fb(\(Rendering\))k(Con)o
(text)j Fm(a)15 b(Op)q(enGL)h(rendering)g(con)o(text.)j(This)c(is)h(a)e
(virtual)338 2325 y(Op)q(enGL)j(mac)o(hine.)24 b(All)18
b(Op)q(enGL)g(rendering)f(is)g(done)f(with)h(resp)q(ect)g(to)338
2382 y(a)g(con)o(text.)27 b(The)19 b(state)e(main)o(tained)h(b)o(y)g
(one)g(rendering)h(con)o(text)e(is)i(not)338 2438 y(a\013ected)c(b)o(y)
g(another)g(except)g(in)h(case)g(of)e(shared)i(displa)o(y)g(lists.)914
2613 y(25)p eop
%%Page: 26 27
26 26 bop 224 286 a Fb(GLX)o(Con)o(text)22 b Fm(a)g(handle)i(to)e(a)g
(rendering)i(con)o(text.)41 b(Rendering)25 b(con)o(texts)338
343 y(consist)15 b(of)g(clien)o(t)i(side)f(state)e(and)h(serv)o(er)g
(side)h(state.)224 437 y Fb(Similar)24 b Fm(a)18 b(p)q(oten)o(tial)h
(corresp)q(ondence)h(among)e Fh(GLXDrawable)p Fm(s)f(and)h(render-)338
493 y(ing)f(con)o(texts.)25 b Fh(Window)p Fm(s)16 b(and)h
Fh(GLXPixmap)p Fm(s)f(are)h(similar)h(to)e(a)h(rendering)338
550 y(con)o(text)j(are)h(similar)h(if,)g(and)f(only)h(if,)g(they)f(ha)o
(v)o(e)g(b)q(een)h(created)f(with)338 606 y(resp)q(ect)15
b(to)g(the)g(same)g Fh(VisualID)f Fm(and)i(ro)q(ot)e(windo)o(w.)224
700 y Fb(Thread)23 b Fm(one)15 b(of)f(a)g(group)g(of)g(pro)q(cesses)g
(all)i(sharing)e(the)h(same)f(address)g(space.)338 756
y(T)o(ypically)l(,)g(eac)o(h)f(thread)f(will)i(ha)o(v)o(e)e(its)g(o)o
(wn)g(program)f(coun)o(ter)h(and)h(stac)o(k)338 813 y(p)q(oin)o(ter,)22
b(but)e(the)h(text)f(and)h(data)f(spaces)g(are)h(visible)h(to)e(eac)o
(h)h(of)f(the)338 869 y(threads.)e(A)11 b(thread)g(that)f(is)h(the)g
(only)h(mem)o(b)q(er)f(of)f(its)h(group)g(is)g(equiv)m(alen)o(t)338
926 y(to)j(a)h(pro)q(cess.)914 2613 y(26)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF