1 %!PS-Adobe-2.0 EPSF-2.0
3 %%Creator: fig2dev Version 3.2 Patchlevel 4
4 %%CreationDate: Fri Oct 19 09:26:25 2007
5 %%For: hessb@pckr59 (Berk Hess,1.704,Tel. 166)
6 %%BoundingBox: 0 0 488 380
7 %%Magnification: 1.0000
9 /MyAppDict 100 dict dup begin def
10 /$F2psDict 200 dict def
12 $F2psDict /mtrx matrix put
13 /col-1 {0 setgray} bind def
14 /col0 {0.000 0.000 0.000 srgb} bind def
15 /col1 {0.000 0.000 1.000 srgb} bind def
16 /col2 {0.000 1.000 0.000 srgb} bind def
17 /col3 {0.000 1.000 1.000 srgb} bind def
18 /col4 {1.000 0.000 0.000 srgb} bind def
19 /col5 {1.000 0.000 1.000 srgb} bind def
20 /col6 {1.000 1.000 0.000 srgb} bind def
21 /col7 {1.000 1.000 1.000 srgb} bind def
22 /col8 {0.000 0.000 0.560 srgb} bind def
23 /col9 {0.000 0.000 0.690 srgb} bind def
24 /col10 {0.000 0.000 0.820 srgb} bind def
25 /col11 {0.530 0.810 1.000 srgb} bind def
26 /col12 {0.000 0.560 0.000 srgb} bind def
27 /col13 {0.000 0.690 0.000 srgb} bind def
28 /col14 {0.000 0.820 0.000 srgb} bind def
29 /col15 {0.000 0.560 0.560 srgb} bind def
30 /col16 {0.000 0.690 0.690 srgb} bind def
31 /col17 {0.000 0.820 0.820 srgb} bind def
32 /col18 {0.560 0.000 0.000 srgb} bind def
33 /col19 {0.690 0.000 0.000 srgb} bind def
34 /col20 {0.820 0.000 0.000 srgb} bind def
35 /col21 {0.560 0.000 0.560 srgb} bind def
36 /col22 {0.690 0.000 0.690 srgb} bind def
37 /col23 {0.820 0.000 0.820 srgb} bind def
38 /col24 {0.500 0.190 0.000 srgb} bind def
39 /col25 {0.630 0.250 0.000 srgb} bind def
40 /col26 {0.750 0.380 0.000 srgb} bind def
41 /col27 {1.000 0.500 0.500 srgb} bind def
42 /col28 {1.000 0.630 0.630 srgb} bind def
43 /col29 {1.000 0.750 0.750 srgb} bind def
44 /col30 {1.000 0.880 0.880 srgb} bind def
45 /col31 {1.000 0.840 0.000 srgb} bind def
49 newpath 0 380 moveto 0 0 lineto 488 0 lineto 488 380 lineto closepath clip newpath
50 -167.3 490.3 translate
53 % This junk string is used by the show operators
55 /PATawidthshow { % cx cy cchar rx ry string
56 % Loop over each character in the string
57 { % cx cy cchar rx ry char
59 dup % cx cy cchar rx ry char char
60 PATsstr dup 0 4 -1 roll put % cx cy cchar rx ry char (char)
61 false charpath % cx cy cchar rx ry char
63 % Move past the character (charpath modified the
65 currentpoint % cx cy cchar rx ry char x y
67 moveto % cx cy cchar rx ry char
68 % Reposition by cx,cy if the character in the string is cchar
69 3 index eq { % cx cy cchar rx ry
70 4 index 4 index rmoveto
72 % Reposition all characters by rx ry
73 2 copy rmoveto % cx cy cchar rx ry
75 pop pop pop pop pop % -
82 /lw currentlinewidth def
83 /lc currentlinecap def
84 /lj currentlinejoin def
85 /ml currentmiterlimit def
86 /ds [ currentdash ] def
87 /cc [ currentrgbcolor ] def
88 /cm matrix currentmatrix def
91 % PATdraw - calculates the boundaries of the object and
92 % fills it with the current pattern
95 PATpcalc % proc nw nh px py
96 5 -1 roll exec % nw nh px py
101 % PATfill - performs the tiling for the shape
102 /PATfill { % nw nh px py PATfill -
103 PATDict /CurrentPattern get dup begin
105 % Set the coordinate system to Pattern Space
107 % Set the color for uncolored pattezns
108 PaintType 2 eq { PATDict /PColor get PATsc } if
109 % Create the string for showing
110 3 index string % nw nh px py str
111 % Loop for each of the pattern sources
112 0 1 Multi 1 sub { % nw nh px py str source
113 % Move to the starting location
114 3 index 3 index % nw nh px py str source px py
115 moveto % nw nh px py str source
116 % For multiple sources, set the appropriate color
117 Multi 1 ne { dup PC exch get PATsc } if
118 % Set the appropriate string for the source
119 0 1 7 index 1 sub { 2 index exch 2 index put } for pop
120 % Loop over the number of vertical cells
121 3 index % nw nh px py str nh
123 currentpoint % nw nh px py str cx cy
124 2 index oldshow % nw nh px py str cx cy
125 YStep add moveto % nw nh px py str
126 } repeat % nw nh px py str
132 % PATkshow - kshow with the current pattezn
133 /PATkshow { % proc string
134 exch bind % string proc
135 1 index 0 get % string proc char
136 % Loop over all but the last character in the string
137 0 1 4 index length 2 sub {
138 % string proc char idx
139 % Find the n+1th character in the string
140 3 index exch 1 add get % string proc char char+1
141 exch 2 copy % strinq proc char+1 char char+1 char
142 % Now show the nth character
143 PATsstr dup 0 4 -1 roll put % string proc chr+1 chr chr+1 (chr)
144 false charpath % string proc char+1 char char+1
146 % Move past the character (charpath modified the current point)
147 currentpoint newpath moveto
148 % Execute the user proc (should consume char and char+1)
149 mark 3 1 roll % string proc char+1 mark char char+1
150 4 index exec % string proc char+1 mark...
151 cleartomark % string proc char+1
153 % Now display the last character
154 PATsstr dup 0 4 -1 roll put % string proc (char+1)
155 false charpath % string proc
160 % PATmp - the makepattern equivalent
161 /PATmp { % patdict patmtx PATmp patinstance
162 exch dup length 7 add % We will add 6 new entries plus 1 FID
163 dict copy % Create a new dictionary
165 % Matrix to install when painting the pattern
167 /PatternGState PATcg def
168 PatternGState /cm 3 -1 roll put
169 % Check for multi pattern sources (Level 1 fast color patterns)
170 currentdict /Multi known not { /Multi 1 def } if
171 % Font dictionary definitions
173 % Create a dummy encoding vector
174 /Encoding 256 array def
176 Encoding exch dup 3 index cvs cvn put } for pop
177 /FontMatrix matrix def
180 mark 3 1 roll % mark dict char
182 Multi 1 ne {PaintData exch get}{pop} ifelse % mark [paintdata]
183 PaintType 2 eq Multi 1 ne or
184 { XStep 0 FontBBox aload pop setcachedevice }
185 { XStep 0 setcharwidth } ifelse
186 currentdict % mark [paintdata] dict
187 /PaintProc load % mark [paintdata] dict paintproc
190 false PATredef exec true PATredef
196 /foo exch % /foo newlict
199 % PATpcalc - calculates the starting point and width/height
200 % of the tile fill for the shape
201 /PATpcalc { % - PATpcalc nw nh px py
202 PATDict /CurrentPattern get begin
204 % Set up the coordinate system to Pattern Space
205 % and lock down pattern
206 PatternGState /cm get setmatrix
207 BBox aload pop pop pop translate
208 % Determine the bounding box of the shape
209 pathbbox % llx lly urx ury
211 % Determine (nw, nh) the # of cells to paint width and height
212 PatHeight div ceiling % llx lly urx qh
213 4 1 roll % qh llx lly urx
214 PatWidth div ceiling % qh llx lly qw
215 4 1 roll % qw qh llx lly
216 PatHeight div floor % qw qh llx ph
217 4 1 roll % ph qw qh llx
218 PatWidth div floor % ph qw qh pw
219 4 1 roll % pw ph qw qh
220 2 index sub cvi abs % pw ph qs qh-ph
221 exch 3 index sub cvi abs exch % pw ph nw=qw-pw nh=qh-ph
222 % Determine the starting point of the pattern fill
224 4 2 roll % nw nh pw ph
225 PatHeight mul % nw nh pw py
227 PatWidth mul exch % nw nh px py
231 % Save the original routines so that we can use them later on
232 /oldfill /fill load def
233 /oldeofill /eofill load def
234 /oldstroke /stroke load def
235 /oldshow /show load def
236 /oldashow /ashow load def
237 /oldwidthshow /widthshow load def
238 /oldawidthshow /awidthshow load def
239 /oldkshow /kshow load def
241 % These defs are necessary so that subsequent procs don't bind in
243 /fill { oldfill } bind def
244 /eofill { oldeofill } bind def
245 /stroke { oldstroke } bind def
246 /show { oldshow } bind def
247 /ashow { oldashow } bind def
248 /widthshow { oldwidthshow } bind def
249 /awidthshow { oldawidthshow } bind def
250 /kshow { oldkshow } bind def
254 /fill { /clip load PATdraw newpath } bind def
255 /eofill { /eoclip load PATdraw newpath } bind def
256 /stroke { PATstroke } bind def
257 /show { 0 0 null 0 0 6 -1 roll PATawidthshow } bind def
258 /ashow { 0 0 null 6 3 roll PATawidthshow }
260 /widthshow { 0 0 3 -1 roll PATawidthshow }
262 /awidthshow { PATawidthshow } bind def
263 /kshow { PATkshow } bind def
265 /fill { oldfill } bind def
266 /eofill { oldeofill } bind def
267 /stroke { oldstroke } bind def
268 /show { oldshow } bind def
269 /ashow { oldashow } bind def
270 /widthshow { oldwidthshow } bind def
271 /awidthshow { oldawidthshow } bind def
272 /kshow { oldkshow } bind def
277 % Conditionally define setcmykcolor if not available
278 /setcmykcolor where { pop } {
282 3 index add neg dup 0 lt { pop 0 } if 3 1 roll
287 /PATsc { % colorarray
288 aload length % c1 ... cn length
289 dup 1 eq { pop setgray } { 3 eq { setrgbcolor } { setcmykcolor
299 cc aload pop setrgbcolor
308 /CurrentPattern exch def
309 % If it's an uncolored pattern, save the color
310 CurrentPattern /PaintType get 2 eq {
313 /CColor [ currentrgbcolor ] def
316 % PATstroke - stroke with the current pattern
322 currentpoint strokepath moveto
323 PATpcalc % proc nw nh px py
326 (*** PATstroke Warning: Path is too complex, stroking
330 countdictstack exch sub dup 0 gt
331 { { end } repeat } { pop } ifelse
332 gsave 0.5 setgray oldstroke grestore
333 } { pop restore pop } ifelse
336 /PATtcalc { % modmtx tilingtype PATtcalc tilematrix
337 % Note: tiling types 2 and 3 are not supported
339 exch concat % tilingtype
340 matrix currentmatrix exch % cmtx tilingtype
341 % Tiling type 1 and 3: constant spacing
343 % Distort the pattern so that it occupies
344 % an integral number of device pixels
345 dup 4 get exch dup 5 get exch % tx ty cmtx
347 round exch round exch % tx ty cmtx dx.x dx.y
348 XStep div exch XStep div exch % tx ty cmtx a b
350 round exch round exch % tx ty cmtx a b dy.x dy.y
351 YStep div exch YStep div exch % tx ty cmtx a b c d
352 7 -3 roll astore % { a b c d tx ty }
363 % this is the pattern fill program from the Second edition Reference Manual
364 % with changes to call the above pattern fill
378 { 32 16 true [ 32 0 0 -16 0 16 ]
379 {<c000c000300030000c000c000300030000c000c000300030
380 000c000c00030003c000c000300030000c000c0003000300
381 00c000c000300030000c000c00030003>}
392 /cp {closepath} bind def
393 /ef {eofill} bind def
394 /gr {grestore} bind def
397 /rs {restore} bind def
400 /rm {rmoveto} bind def
401 /n {newpath} bind def
404 /slc {setlinecap} bind def
405 /slj {setlinejoin} bind def
406 /slw {setlinewidth} bind def
407 /srgb {setrgbcolor} bind def
408 /rot {rotate} bind def
410 /sd {setdash} bind def
411 /ff {findfont} bind def
412 /sf {setfont} bind def
413 /scf {scalefont} bind def
414 /sw {stringwidth} bind def
415 /tr {translate} bind def
416 /tnt {dup dup currentrgbcolor
417 4 -2 roll dup 1 exch sub 3 -1 roll mul add
418 4 -2 roll dup 1 exch sub 3 -1 roll mul add
419 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
421 /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
422 4 -2 roll mul srgb} bind def
430 /savematrix mtrx currentmatrix def
431 x y tr xrad yrad sc 0 0 1 startangle endangle arc
436 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
437 /$F2psEnd {$F2psEnteredState restore end} def
447 % here starts figure with depth 54
450 n 6300 3960 1440 1440 0 360 DrawEllipse gs col0 s gr
453 n 6075 4500 1755 1755 0 360 DrawEllipse gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
454 15.00 15.00 sc P1 [16 0 0 -8 288.00 183.00] PATmp PATsp ef gr PATusp gs col0 s gr
458 5625 5658 m 5651 5604 l 5513 5540 l 5610 5618 l 5488 5594 l cp
460 n 6305.0 4007.1 1755.0 -67.6 112.8 arcn
461 gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
462 15.00 15.00 sc P1 [16 0 0 -8 -44.67 108.13] PATmp PATsp ef gr PATusp gs col0 s gr
467 n 5488 5594 m 5610 5618 l 5513 5540 l col0 s
470 n 6795 6660 m 7065 6660 l 6840 7200 l 6525 7200 l
471 6750 6660 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
472 15.00 15.00 sc P1 [16 0 0 -8 435.00 444.00] PATmp PATsp ef gr PATusp
474 n 4050 4500 m 6075 4500 l 6120 2745 l 4770 2745 l
475 cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
476 15.00 15.00 sc P1 [16 0 0 -8 270.00 183.00] PATmp PATsp ef gr PATusp
478 n 5175 6660 m 7065 6660 l 7695 5175 l 5805 5175 l
479 cp gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
480 15.00 15.00 sc P1 [16 0 0 -8 345.00 345.00] PATmp PATsp ef gr PATusp
483 n 6075.0 4500.0 1755.0 -90.0 22.6 arc
488 4770 2745 l gs col0 s gr
491 n 6300 3960 m 7875 3960 l 8775 1800 l 7200 1800 l
494 n 5175 6660 m 6300 3960 l 7875 3960 l 6750 6660 l
499 4725 7740 l gs col0 s gr [] 0 sd
501 n 4050 4500 m 6075 4500 l 7200 1800 l 5175 1800 l
504 n 2925 7200 m 4950 7200 l 6075 4500 l 4050 4500 l
505 cp gs col7 1.00 shd ef gr gs col0 s gr
507 n 8775 1800 m 10350 1800 l 8100 7200 l 6525 7200 l
508 6750 6660 l gs col0 s gr
511 7425 5040 l gs col0 s gr
515 7065 6660 l gs col0 s gr
518 6840 7200 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
519 15.00 15.00 sc P1 [16 0 0 -8 456.00 444.00] PATmp PATsp ef gr PATusp gs col0 s gr
524 6300 7740 l gs col0 s gr [] 0 sd
528 7875 7740 l gs col0 s gr [] 0 sd
532 2700 7740 l gs col0 s gr [] 0 sd
536 7224 6343 m 7293 6177 l 7016 6061 l 7203 6237 l 6946 6227 l cp
539 7245 6255 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
540 15.00 15.00 sc P1 [16 0 0 -8 375.00 372.00] PATmp PATsp ef gr PATusp gs col0 s gr gr
543 n 6946 6227 m 7203 6237 l 7016 6061 l col0 s
548 8685 6885 l gs col0 s gr [] 0 sd
552 9585 4725 l gs col0 s gr [] 0 sd
556 4725 1800 l gs col0 s gr [] 0 sd
560 2700 6660 l gs col0 s gr [] 0 sd
563 7279 2879 m 7139 2767 l 6951 3002 l 7172 2871 l 7092 3114 l cp
566 7200 2835 l gs /PC [[1.00 1.00 1.00] [0.00 0.00 0.00]] def
567 15.00 15.00 sc P1 [16 0 0 -8 420.00 189.00] PATmp PATsp ef gr PATusp gs col0 s gr gr
571 n 7092 3114 m 7172 2871 l 6951 3002 l col0 s
574 5580 4485 m 5400 4485 l 5400 4786 l 5490 4546 l 5580 4786 l cp
575 5400 6675 m 5580 6675 l 5580 6374 l 5490 6614 l 5400 6374 l cp
578 5490 4500 l gs col0 s gr gr
581 n 5400 6374 m 5490 6614 l 5580 6374 l col0 s
583 n 5580 4786 m 5490 4546 l 5400 4786 l col0 s
588 3960 3600 l gs col0 s gr [] 0 sd
589 /Helvetica ff 720.00 scf sf
591 gs 1 -1 sc (1) col0 sh gr
592 /Helvetica ff 720.00 scf sf
594 gs 1 -1 sc (1) col0 sh gr
595 /Helvetica ff 720.00 scf sf
597 gs 1 -1 sc (2) col0 sh gr
598 /Helvetica ff 600.00 scf sf
600 gs 1 -1 sc (d) col0 sh gr
601 /Helvetica ff 720.00 scf sf
603 gs 1 -1 sc (0) col0 sh gr
604 /Helvetica ff 720.00 scf sf
606 gs 1 -1 sc (3) col0 sh gr
607 /Helvetica ff 720.00 scf sf
609 gs 1 -1 sc (2) col0 sh gr
610 /Helvetica ff 720.00 scf sf
612 gs 1 -1 sc (3') col0 sh gr
613 /Helvetica ff 600.00 scf sf
615 gs 1 -1 sc (r) col0 sh gr
616 /Helvetica ff 420.00 scf sf
618 gs 1 -1 sc (c) col0 sh gr
619 /Helvetica ff 600.00 scf sf
621 gs 1 -1 sc (r) col0 sh gr
622 /Helvetica ff 420.00 scf sf
624 gs 1 -1 sc (b) col0 sh gr
625 /Helvetica ff 720.00 scf sf
627 gs 1 -1 sc (2') col0 sh gr