1%!
2%%BoundingBox: 15 712 321 775
3%%Title: cons-cell-diagram2
4%%CreationDate: Wed Mar  8 14:26:39 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6%
7%	Due to bugs in Transcript, the 'PS-Adobe-' stuff is omitted from line 1
8%
9
10% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007
11%   Free Software Foundation, Inc.
12%
13% This file is part of GNU Emacs.
14%
15% GNU Emacs is free software; you can redistribute it and/or modify
16% it under the terms of the GNU General Public License as published by
17% the Free Software Foundation; either version 2, or (at your option)
18% any later version.
19%
20% GNU Emacs is distributed in the hope that it will be useful,
21% but WITHOUT ANY WARRANTY; without even the implied warranty of
22% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23% GNU General Public License for more details.
24%
25% You should have received a copy of the GNU General Public License
26% along with GNU Emacs; see the file COPYING.  If not, write to
27% the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
28% Boston, MA 02110-1301, USA.
29
30/tgifdict 132 dict def
31tgifdict begin
32
33%
34%	Using a zero value radius for an ellipse or an arc would result
35%		in a non-invertible CTM matrix which causes problem when this
36%		when this PostScript is wrapped inside other routines, such as
37%		the multi.ps package from
38%		ftp.ucc.su.oz.au:/pub/ps_printing/multi.  You can overcome such
39%		error by uncommenting the sole line of the procedure below:
40%
41/tgif_min_radius
42 {
43%    dup 0.01 lt { pop 0.01 } if
44 } bind def
45
46/tgifellipsedict 6 dict def
47tgifellipsedict /mtrx matrix put
48
49/tgifellipse
50 { tgifellipsedict begin
51      /yrad exch def
52      /xrad exch def
53      /y exch def
54      /x exch def
55      /savematrix mtrx currentmatrix def
56      x y translate
57      xrad yrad scale
58      0 0 1 0 360 arc
59      savematrix setmatrix
60   end
61 } def
62
63/tgifarrowtipdict 8 dict def
64tgifarrowtipdict /mtrx matrix put
65
66/tgifarrowtip
67 { tgifarrowtipdict begin
68      /dy exch def
69      /dx exch def
70      /h exch def
71      /w exch def
72      /y exch def
73      /x exch def
74      /savematrix mtrx currentmatrix def
75      x y translate
76      dy dx atan rotate
77      0 0 moveto
78      w neg h lineto
79      w neg h neg lineto
80      savematrix setmatrix
81   end
82 } def
83
84/tgifarcdict 8 dict def
85tgifarcdict /mtrx matrix put
86
87/tgifarcn
88 { tgifarcdict begin
89      /endangle exch def
90      /startangle exch def
91      /yrad exch def
92      /xrad exch def
93      /y exch def
94      /x exch def
95      /savematrix mtrx currentmatrix def
96      x y translate
97      xrad yrad scale
98      0 0 1 startangle endangle arc
99      savematrix setmatrix
100   end
101 } def
102
103/tgifarc
104 { tgifarcdict begin
105      /endangle exch def
106      /startangle exch def
107      /yrad exch def
108      /xrad exch def
109      /y exch def
110      /x exch def
111      /savematrix mtrx currentmatrix def
112      x y translate
113      xrad yrad scale
114      0 0 1 startangle endangle arcn
115      savematrix setmatrix
116   end
117 } def
118
119/tgifsetuserscreendict 22 dict def
120tgifsetuserscreendict begin
121   /tempctm matrix def
122   /temprot matrix def
123   /tempscale matrix def
124
125   /concatprocs
126    { /proc2 exch cvlit def
127      /proc1 exch cvlit def
128      /newproc proc1 length proc2 length add array def
129      newproc 0 proc1 putinterval
130      newproc proc1 length proc2 putinterval
131      newproc cvx
132    } def
133   /resmatrix matrix def
134   /findresolution
135    { 72 0 resmatrix defaultmatrix dtransform
136      /yres exch def /xres exch def
137      xres dup mul yres dup mul add sqrt
138    } def
139end
140
141/tgifsetuserscreen
142 { tgifsetuserscreendict begin
143      /spotfunction exch def
144      /screenangle exch def
145      /cellsize exch def
146
147      /m tempctm currentmatrix def
148      /rm screenangle temprot rotate def
149      /sm cellsize dup tempscale scale def
150
151      sm rm m m concatmatrix m concatmatrix pop
152
153      1 0 m dtransform /y1 exch def /x1 exch def
154
155      /veclength x1 dup mul y1 dup mul add sqrt def
156      /frequency findresolution veclength div def
157
158      /newscreenangle y1 x1 atan def
159
160      m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
161
162      {{neg} /spotfunction load concatprocs
163         /spotfunction exch def
164      } if
165
166      frequency newscreenangle /spotfunction load setscreen
167   end
168 } def
169
170/tgifsetpatterndict 18 dict def
171tgifsetpatterndict begin
172   /bitison
173    { /ybit exch def /xbit exch def
174      /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
175
176      /mask 1 7 xbit 8 mod sub bitshift def
177      bytevalue mask and 0 ne
178    } def
179end
180
181/tgifbitpatternspotfunction
182 { tgifsetpatterndict begin
183      /y exch def /x exch def
184
185      /xindex x 1 add 2 div bpside mul cvi def
186      /yindex y 1 add 2 div bpside mul cvi def
187
188      xindex yindex bitison
189       { /onbits onbits 1 add def 1 }
190       { /offbits offbits 1 add def 0 }
191       ifelse
192   end
193 } def
194
195/tgifsetpattern
196 { tgifsetpatterndict begin
197      /cellsz exch def
198      /angle exch def
199      /bwidth exch def
200      /bpside exch def
201      /bstring exch def
202
203      /onbits 0 def /offbits 0 def
204      cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
205      {} settransfer
206      offbits offbits onbits add div setgray
207   end
208 } def
209
210/tgifxpmdict 4 dict def
211/tgifbwpicstr 1 string def
212/tgifcolorpicstr 3 string def
213
214/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
215
216/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
217
218/tgifbwspot
219 { tgifxpmdict begin
220      /index exch def
221      tgifbwpicstr 0
222      pixels index 3 mul 3 getinterval aload pop
223      255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
224      cvi put
225      tgifbwpicstr
226   end
227 } def
228
229/tgifcolorspot
230 { tgifxpmdict begin
231      /index exch def
232      pixels index 3 mul 3 getinterval aload pop
233      255 mul cvi tgifcolorpicstr 2 3 -1 roll put
234      255 mul cvi tgifcolorpicstr 1 3 -1 roll put
235      255 mul cvi tgifcolorpicstr 0 3 -1 roll put
236      tgifcolorpicstr
237   end
238 } def
239
240/tgifnewcolorspot
241 { tgifxpmdict begin
242      /index exch def
243      pixels index 3 mul 3 getinterval aload pop setrgbcolor
244   end
245 } def
246
247/tgifcolordict 4 dict def
248
249/colorimage where
250 { pop }
251 { /colorimage
252   { tgifcolordict begin
253        pop pop pop pop pop
254        /ih exch def
255        /iw exch def
256        /x 0 def
257        /y 0 def
258        1 1 ih
259         { pop 1 1 iw
260            { pop currentfile
261              tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
262              x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
263              closepath fill
264              /x x 1 add def
265            } for
266           /y y 1 add def
267           /x 0 def
268         } for
269     end
270   } def
271 } ifelse
272
273/tgifpatdict 10 dict def
274
275/tgifpatbyte
276 { currentdict /retstr get exch
277   pat i cellsz mod get put
278 } def
279
280/tgifpatproc
281 { 0 1 widthlim {tgifpatbyte} for retstr
282   /i i 1 add def
283 } def
284
285/tgifpatfill
286 { tgifpatdict begin
287      /h exch def
288      /w exch def
289      /lty exch def
290      /ltx exch def
291      /cellsz exch def
292      /pat exch def
293
294      /widthlim w cellsz div cvi 1 sub def
295      /retstr widthlim 1 add string def
296      /i 0 def
297
298      ltx lty translate
299      w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
300      ltx neg lty neg translate
301   end
302 } def
303
304/pat1 <ffffffffffffffff> def
305/pat2 <0000000000000000> def
306/pat3 <8000000008000000> def
307/pat4 <8800000022000000> def
308/pat5 <8800220088002200> def
309/pat6 <8822882288228822> def
310/pat7 <aa55aa55aa55aa55> def
311/pat8 <77dd77dd77dd77dd> def
312/pat9 <77ffddff77ffddff> def
313/pat10 <77ffffff77ffffff> def
314/pat11 <7fffffff7fffffff> def
315/pat12 <8040200002040800> def
316/pat13 <40a00000040a0000> def
317/pat14 <ff888888ff888888> def
318/pat15 <ff808080ff080808> def
319/pat16 <f87422478f172271> def
320/pat17 <038448300c020101> def
321/pat18 <081c22c180010204> def
322/pat19 <8080413e080814e3> def
323/pat20 <8040201008040201> def
324/pat21 <8844221188442211> def
325/pat22 <77bbddee77bbddee> def
326/pat23 <c1e070381c0e0783> def
327/pat24 <7fbfdfeff7fbfdfe> def
328/pat25 <3e1f8fc7e3f1f87c> def
329/pat26 <0102040810204080> def
330/pat27 <1122448811224488> def
331/pat28 <eeddbb77eeddbb77> def
332/pat29 <83070e1c3870e0c1> def
333/pat30 <fefdfbf7efdfbf7f> def
334/pat31 <7cf8f1e3c78f1f3e> def
335
336/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
337
338/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
339
340/tgifreencsmalldict 12 dict def
341/tgifReEncodeSmall
342 { tgifreencsmalldict begin
343      /newcodesandnames exch def
344      /newfontname exch def
345      /basefontname exch def
346
347      /basefontdict basefontname findfont def
348      /newfont basefontdict maxlength dict def
349
350      basefontdict
351      { exch dup /FID ne
352         { dup /Encoding eq
353            { exch dup length array copy newfont 3 1 roll put }
354            { exch newfont 3 1 roll put }
355            ifelse
356         }
357         { pop pop }
358         ifelse
359      }
360      forall
361
362      newfont /FontName newfontname put
363      newcodesandnames aload pop
364
365      newcodesandnames length 2 idiv
366      { newfont /Encoding get 3 1 roll put}
367      repeat
368
369      newfontname newfont definefont pop
370   end
371 } def
372
373/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
374
375/tgifboxdict 6 dict def
376/tgifboxstroke
377 { tgifboxdict begin
378      /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
379      1.415 setmiterlimit
380      w 1 eq { w setlinewidth } if
381      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
382      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
383      pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
384      pat pat1 ne pat pat2 ne and { grestore } if
385      w 1 eq { 1 setlinewidth } if
386      1 setmiterlimit
387   end
388 } def
389/tgifboxfill
390 { tgifboxdict begin
391      /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
392      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
393      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
394      pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
395      pat pat1 ne pat pat2 ne and { grestore } if
396   end
397 } def
398
399end
400
401%%PageBoundingBox: 15 712 321 775
402tgifdict begin
403/tgifsavedpage save def
404
4051 setmiterlimit
4061 setlinewidth
407
4080 setgray
409
41072 0 mul 72 11.00 mul translate
41172 128 div 100 mul 100 div dup neg scale
412
413gsave
414
415% TEXT
4160 setgray
417/Courier findfont [17 0 0 -17 0 0] makefont setfont
418   gsave
419      32 47 moveto (bouquet) show
420   grestore
421
422% BOX
423gsave
424   1.415 setmiterlimit
425   newpath
426      122 65 moveto 186 65 lineto 186 97 lineto 122 97 lineto
427   closepath stroke
428   1 setmiterlimit
429grestore
430
431% POLY/OPEN-SPLINE
432gsave
433   newpath
434      154 65 moveto
435      154 97 lineto
436   stroke
437grestore
438
439% POLY/OPEN-SPLINE
440gsave
441   newpath
442      170 81 moveto
443      0 80 atan dup cos 8 mul 250 exch sub
444      exch sin 8 mul 81 exch sub lineto
445   stroke
446grestore
447gsave
448   newpath
449      250 81 8 3 80 0 tgifarrowtip
450   closepath fill
451grestore
452
453% TEXT
4540 setgray
455/Courier findfont [17 0 0 -17 0 0] makefont setfont
456   gsave
457      202 135 moveto (rose) show
458   grestore
459
460% POLY/OPEN-SPLINE
461gsave
462   newpath
463      138 81 moveto
464      138 130 lineto
465      0 48 atan dup cos 8 mul 186 exch sub
466      exch sin 8 mul 130 exch sub lineto
467   stroke
468grestore
469gsave
470   newpath
471      186 130 8 3 48 0 tgifarrowtip
472   closepath fill
473grestore
474
475% BOX
476gsave
477   1.415 setmiterlimit
478   newpath
479      255 65 moveto 319 65 lineto 319 97 lineto 255 97 lineto
480   closepath stroke
481   1 setmiterlimit
482grestore
483
484% POLY/OPEN-SPLINE
485gsave
486   newpath
487      287 65 moveto
488      287 97 lineto
489   stroke
490grestore
491
492% POLY/OPEN-SPLINE
493gsave
494   newpath
495      303 81 moveto
496      0 93 atan dup cos 8 mul 396 exch sub
497      exch sin 8 mul 81 exch sub lineto
498   stroke
499grestore
500gsave
501   newpath
502      396 81 8 3 93 0 tgifarrowtip
503   closepath fill
504grestore
505
506% TEXT
5070 setgray
508/Courier findfont [17 0 0 -17 0 0] makefont setfont
509   gsave
510      335 135 moveto (violet) show
511   grestore
512
513% POLY/OPEN-SPLINE
514gsave
515   newpath
516      271 81 moveto
517      271 130 lineto
518      0 48 atan dup cos 8 mul 319 exch sub
519      exch sin 8 mul 130 exch sub lineto
520   stroke
521grestore
522gsave
523   newpath
524      319 130 8 3 48 0 tgifarrowtip
525   closepath fill
526grestore
527
528% BOX
529gsave
530   1.415 setmiterlimit
531   newpath
532      398 63 moveto 462 63 lineto 462 95 lineto 398 95 lineto
533   closepath stroke
534   1 setmiterlimit
535grestore
536
537% POLY/OPEN-SPLINE
538gsave
539   newpath
540      429 63 moveto
541      429 95 lineto
542   stroke
543grestore
544
545% POLY/OPEN-SPLINE
546gsave
547   newpath
548      445 80 moveto
549      0 48 atan dup cos 8 mul 493 exch sub
550      exch sin 8 mul 80 exch sub lineto
551   stroke
552grestore
553gsave
554   newpath
555      493 80 8 3 48 0 tgifarrowtip
556   closepath fill
557grestore
558
559% TEXT
5600 setgray
561/Courier findfont [17 0 0 -17 0 0] makefont setfont
562   gsave
563      477 134 moveto (buttercup) show
564   grestore
565
566% POLY/OPEN-SPLINE
567gsave
568   newpath
569      413 80 moveto
570      413 129 lineto
571      0 48 atan dup cos 8 mul 461 exch sub
572      exch sin 8 mul 129 exch sub lineto
573   stroke
574grestore
575gsave
576   newpath
577      461 129 8 3 48 0 tgifarrowtip
578   closepath fill
579grestore
580
581% TEXT
5820 setgray
583/Courier findfont [17 0 0 -17 0 0] makefont setfont
584   gsave
585      505 86 moveto (nil) show
586   grestore
587
588% POLY/OPEN-SPLINE
589gsave
590   newpath
591      66 53 moveto
592      66 81 lineto
593      0 46 atan dup cos 8 mul 112 exch sub
594      exch sin 8 mul 81 exch sub lineto
595   stroke
596grestore
597gsave
598   newpath
599      112 81 8 3 46 0 tgifarrowtip
600   closepath fill
601grestore
602
603grestore
604tgifsavedpage restore
605end
606%MatchingCreationDate: Wed Mar  8 14:26:39 1995
607