branch: externals/emacs-lisp-intro-nl
commit 704f1a8bffc4abea92206bf7baed9f9a83a22115
Author: Matto Fransen <[email protected]>
Commit: Matto Fransen <[email protected]>
Associated images
---
cons-1.eps | 578 ++++++++++++++++++++++++++++++++++++++++++++++++++
cons-1.pdf | 71 +++++++
cons-2.eps | 600 ++++++++++++++++++++++++++++++++++++++++++++++++++++
cons-2.pdf | Bin 0 -> 1399 bytes
cons-2a.eps | 594 +++++++++++++++++++++++++++++++++++++++++++++++++++
cons-2a.pdf | Bin 0 -> 1504 bytes
cons-3.eps | 624 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
cons-3.pdf | Bin 0 -> 1475 bytes
cons-4.eps | 677 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cons-4.pdf | Bin 0 -> 1587 bytes
cons-5.eps | 622 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
cons-5.pdf | Bin 0 -> 1511 bytes
drawers.eps | 510 ++++++++++++++++++++++++++++++++++++++++++++
drawers.pdf | Bin 0 -> 3906 bytes
lambda-1.eps | 465 ++++++++++++++++++++++++++++++++++++++++
lambda-1.pdf | 69 ++++++
lambda-2.eps | 465 ++++++++++++++++++++++++++++++++++++++++
lambda-2.pdf | Bin 0 -> 1225 bytes
lambda-3.eps | 465 ++++++++++++++++++++++++++++++++++++++++
lambda-3.pdf | 69 ++++++
20 files changed, 5809 insertions(+)
diff --git a/cons-1.eps b/cons-1.eps
new file mode 100644
index 0000000000..b97af28e2d
--- /dev/null
+++ b/cons-1.eps
@@ -0,0 +1,578 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 35 711 289 757
+%%Title: cons-cell-diagram1
+%%CreationDate: Wed Mar 8 14:26:58 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: 35 711 289 757
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 66 66 moveto 130 66 lineto 130 98 lineto 66 98 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 98 66 moveto
+ 98 98 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 114 82 moveto
+ 0 80 atan dup cos 8 mul 194 exch sub
+ exch sin 8 mul 82 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 194 82 8 3 80 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 146 136 moveto (rose) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 82 82 moveto
+ 82 131 lineto
+ 0 48 atan dup cos 8 mul 130 exch sub
+ exch sin 8 mul 131 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 130 131 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 199 66 moveto 263 66 lineto 263 98 lineto 199 98 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 231 66 moveto
+ 231 98 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 247 82 moveto
+ 0 93 atan dup cos 8 mul 340 exch sub
+ exch sin 8 mul 82 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 340 82 8 3 93 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 279 136 moveto (violet) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 215 82 moveto
+ 215 131 lineto
+ 0 48 atan dup cos 8 mul 263 exch sub
+ exch sin 8 mul 131 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 263 131 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 342 64 moveto 406 64 lineto 406 96 lineto 342 96 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 373 64 moveto
+ 373 96 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 389 81 moveto
+ 0 48 atan dup cos 8 mul 437 exch sub
+ exch sin 8 mul 81 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 437 81 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 421 135 moveto (buttercup) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 357 81 moveto
+ 357 130 lineto
+ 0 48 atan dup cos 8 mul 405 exch sub
+ exch sin 8 mul 130 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 405 130 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 449 87 moveto (nil) show
+ grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar 8 14:26:58 1995
diff --git a/cons-1.pdf b/cons-1.pdf
new file mode 100644
index 0000000000..2ee86b1231
--- /dev/null
+++ b/cons-1.pdf
@@ -0,0 +1,71 @@
+%PDF-1.3
+%�쏢
+5 0 obj
+<</Length 6 0 R/Filter /FlateDecode>>
+stream
+x����N�0E��������-b�Ei��*EE �/�}l�vݖn�H���:�s2�"g�<^�������43B�/S�q�k��
+�XЅv�j��#9���1�Ӳ�iy,u��%|R���MSG����$播f�9�
+�@�̏��]hǡg:��L]*�(�dA�a�����'�t0��sme�2���^�t�c,��u��)fj�g��F�մ^Y��I\�5Y5YvF�B�L_;*�"�I��@����Yo��Pa:=�����#�T��I$|#��S���)�#���'��*��s��H'S-�J����*ix��7\2BN�%v�����]3�V��������Ӏ}��(6vrN�u�ϋ�1V��c���8D&d��_�f��Պ�endstream
+endobj
+6 0 obj
+390
+endobj
+4 0 obj
+<</Type/Page/MediaBox [0 0 254 46]
+/Parent 3 0 R
+/Resources<</ProcSet[/PDF /Text]
+/ExtGState 9 0 R
+/Font 10 0 R
+>>
+/Contents 5 0 R
+>>
+endobj
+3 0 obj
+<< /Type /Pages /Kids [
+4 0 R
+] /Count 1
+>>
+endobj
+1 0 obj
+<</Type /Catalog /Pages 3 0 R
+>>
+endobj
+7 0 obj
+<</Type/ExtGState
+/OPM 1>>endobj
+9 0 obj
+<</R7
+7 0 R>>
+endobj
+10 0 obj
+<</R8
+8 0 R>>
+endobj
+8 0 obj
+<</BaseFont/Courier/Type/Font
+/Subtype/Type1>>
+endobj
+2 0 obj
+<</Producer(ESP Ghostscript 815.02)
+/CreationDate(D:20091026183416)
+/ModDate(D:20091026183416)>>endobj
+xref
+0 11
+0000000000 65535 f
+0000000702 00000 n
+0000000912 00000 n
+0000000643 00000 n
+0000000494 00000 n
+0000000015 00000 n
+0000000475 00000 n
+0000000750 00000 n
+0000000850 00000 n
+0000000791 00000 n
+0000000820 00000 n
+trailer
+<< /Size 11 /Root 1 0 R /Info 2 0 R
+/ID [(�@}`&���'S���)(�@}`&���'S���)]
+>>
+startxref
+1023
+%%EOF
diff --git a/cons-2.eps b/cons-2.eps
new file mode 100644
index 0000000000..025dbb72b0
--- /dev/null
+++ b/cons-2.eps
@@ -0,0 +1,600 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 15 712 321 775
+%%Title: cons-cell-diagram2
+%%CreationDate: Wed Mar 8 14:26:39 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: 15 712 321 775
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 32 47 moveto (bouquet) show
+ grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 122 65 moveto 186 65 lineto 186 97 lineto 122 97 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 154 65 moveto
+ 154 97 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 170 81 moveto
+ 0 80 atan dup cos 8 mul 250 exch sub
+ exch sin 8 mul 81 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 250 81 8 3 80 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 202 135 moveto (rose) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 138 81 moveto
+ 138 130 lineto
+ 0 48 atan dup cos 8 mul 186 exch sub
+ exch sin 8 mul 130 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 186 130 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 255 65 moveto 319 65 lineto 319 97 lineto 255 97 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 287 65 moveto
+ 287 97 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 303 81 moveto
+ 0 93 atan dup cos 8 mul 396 exch sub
+ exch sin 8 mul 81 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 396 81 8 3 93 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 335 135 moveto (violet) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 271 81 moveto
+ 271 130 lineto
+ 0 48 atan dup cos 8 mul 319 exch sub
+ exch sin 8 mul 130 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 319 130 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 398 63 moveto 462 63 lineto 462 95 lineto 398 95 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 429 63 moveto
+ 429 95 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 445 80 moveto
+ 0 48 atan dup cos 8 mul 493 exch sub
+ exch sin 8 mul 80 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 493 80 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 477 134 moveto (buttercup) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 413 80 moveto
+ 413 129 lineto
+ 0 48 atan dup cos 8 mul 461 exch sub
+ exch sin 8 mul 129 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 461 129 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 505 86 moveto (nil) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 66 53 moveto
+ 66 81 lineto
+ 0 46 atan dup cos 8 mul 112 exch sub
+ exch sin 8 mul 81 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 112 81 8 3 46 0 tgifarrowtip
+ closepath fill
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar 8 14:26:39 1995
diff --git a/cons-2.pdf b/cons-2.pdf
new file mode 100644
index 0000000000..c26906f6f8
Binary files /dev/null and b/cons-2.pdf differ
diff --git a/cons-2a.eps b/cons-2a.eps
new file mode 100644
index 0000000000..8e584d0228
--- /dev/null
+++ b/cons-2a.eps
@@ -0,0 +1,594 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 15 702 300 767
+%%Title: cons-cell-diagram2a
+%%CreationDate: Tue Mar 14 15:09:30 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: 15 702 300 767
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 32 62 moveto (bouquet) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 64 80 moveto
+ 64 120 lineto
+ 0 49 atan dup cos 8 mul 113 exch sub
+ exch sin 8 mul 120 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 113 120 8 3 49 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 128 110 moveto (car) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 128 142 moveto (rose) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 192 110 moveto (cdr) show
+ grestore
+
+% OVAL
+gsave
+ newpath 207 124 4 4 tgifellipse stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 217 123 moveto
+ 0 38 atan dup cos 8 mul 255 exch sub
+ exch sin 8 mul 123 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 255 123 8 3 38 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 268 111 moveto (car) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 264 143 moveto (violet) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 332 111 moveto (cdr) show
+ grestore
+
+% OVAL
+gsave
+ newpath 347 125 4 4 tgifellipse stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 357 124 moveto
+ 0 38 atan dup cos 8 mul 395 exch sub
+ exch sin 8 mul 124 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 395 124 8 3 38 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 408 112 moveto (car) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 408 136 moveto (butter-) show
+ 408 153 moveto (cup) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 496 113 moveto (cdr) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 495 137 moveto (nil) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 178 86 moveto
+ 178 157 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 485 84 moveto
+ 485 157 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 327 85 moveto
+ 327 157 lineto
+ stroke
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 120 86 moveto 234 86 lineto 234 157 lineto 120 157 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 257 85 moveto 371 85 lineto 371 157 lineto 257 157 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 397 84 moveto 531 84 lineto 531 157 lineto 397 157 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Tue Mar 14 15:09:30 1995
diff --git a/cons-2a.pdf b/cons-2a.pdf
new file mode 100644
index 0000000000..c159e8b9d8
Binary files /dev/null and b/cons-2a.pdf differ
diff --git a/cons-3.eps b/cons-3.eps
new file mode 100644
index 0000000000..a0645aae66
--- /dev/null
+++ b/cons-3.eps
@@ -0,0 +1,624 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 691 324 757
+%%Title: cons-cell-diagram3
+%%CreationDate: Wed Mar 8 14:25:41 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: -1 691 324 757
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 128 102 moveto 192 102 lineto 192 134 lineto 128 134 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 160 102 moveto
+ 160 134 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 176 124 moveto
+ 0 80 atan dup cos 8 mul 256 exch sub
+ exch sin 8 mul 124 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 256 124 8 3 80 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 208 172 moveto (rose) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 144 118 moveto
+ 144 167 lineto
+ 0 48 atan dup cos 8 mul 192 exch sub
+ exch sin 8 mul 167 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 192 167 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 261 102 moveto 325 102 lineto 325 134 lineto 261 134 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 293 102 moveto
+ 293 134 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 309 118 moveto
+ 0 93 atan dup cos 8 mul 402 exch sub
+ exch sin 8 mul 118 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 402 118 8 3 93 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 341 172 moveto (violet) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 277 118 moveto
+ 277 167 lineto
+ 0 48 atan dup cos 8 mul 325 exch sub
+ exch sin 8 mul 167 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 325 167 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 404 100 moveto 468 100 lineto 468 132 lineto 404 132 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 435 100 moveto
+ 435 132 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 451 117 moveto
+ 0 48 atan dup cos 8 mul 499 exch sub
+ exch sin 8 mul 117 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 499 117 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 483 171 moveto (buttercup) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 419 117 moveto
+ 419 166 lineto
+ 0 48 atan dup cos 8 mul 467 exch sub
+ exch sin 8 mul 166 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 467 166 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 511 123 moveto (nil) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 131 80 moveto (flowers) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 210 75 moveto
+ 237 75 lineto
+ 237 113 lineto
+ 0 18 atan dup cos 8 mul 255 exch sub
+ exch sin 8 mul 113 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 255 113 8 3 18 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 2 80 moveto (bouquet) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 81 77 moveto
+ 108 77 lineto
+ 108 115 lineto
+ 0 18 atan dup cos 8 mul 126 exch sub
+ exch sin 8 mul 115 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 126 115 8 3 18 0 tgifarrowtip
+ closepath fill
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar 8 14:25:41 1995
diff --git a/cons-3.pdf b/cons-3.pdf
new file mode 100644
index 0000000000..91046d06e9
Binary files /dev/null and b/cons-3.pdf differ
diff --git a/cons-4.eps b/cons-4.eps
new file mode 100644
index 0000000000..9aaf39039b
--- /dev/null
+++ b/cons-4.eps
@@ -0,0 +1,677 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 6 681 355 758
+%%Title: cons-cell-diagram4
+%%CreationDate: Wed Mar 8 14:25:06 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: 6 681 355 758
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 274 102 moveto
+ 274 134 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 289 122 moveto
+ 0 56 atan dup cos 8 mul 345 exch sub
+ exch sin 8 mul 122 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 345 122 8 3 56 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 350 100 moveto 414 100 lineto 414 132 lineto 350 132 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 382 100 moveto
+ 382 132 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 397 114 moveto
+ 0 59 atan dup cos 8 mul 456 exch sub
+ exch sin 8 mul 114 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 456 114 8 3 59 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 430 170 moveto (violet) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 366 116 moveto
+ 366 165 lineto
+ 0 48 atan dup cos 8 mul 414 exch sub
+ exch sin 8 mul 165 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 414 165 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 219 78 moveto (flowers) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 298 73 moveto
+ 325 73 lineto
+ 325 111 lineto
+ 0 18 atan dup cos 8 mul 343 exch sub
+ exch sin 8 mul 111 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 343 111 8 3 18 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 459 95 moveto 523 95 lineto 523 127 lineto 459 127 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 490 95 moveto
+ 490 127 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 506 112 moveto
+ 0 48 atan dup cos 8 mul 554 exch sub
+ exch sin 8 mul 112 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 554 112 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 566 118 moveto (nil) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 538 151 moveto (buttercup) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 474 109 moveto
+ 474 146 lineto
+ 0 48 atan dup cos 8 mul 522 exch sub
+ exch sin 8 mul 146 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 522 146 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 244 102 moveto 308 102 lineto 308 134 lineto 244 134 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 324 189 moveto (rose) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 260 117 moveto
+ 260 184 lineto
+ 0 48 atan dup cos 8 mul 308 exch sub
+ exch sin 8 mul 184 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 308 184 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 146 101 moveto 210 101 lineto 210 133 lineto 146 133 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 177 101 moveto
+ 177 133 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 193 118 moveto
+ 0 48 atan dup cos 8 mul 241 exch sub
+ exch sin 8 mul 118 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 241 118 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 187 178 moveto (lily) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 163 118 moveto
+ 163 171 lineto
+ 0 18 atan dup cos 8 mul 181 exch sub
+ exch sin 8 mul 171 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 181 171 8 3 18 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 16 78 moveto (bouquet) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 95 73 moveto
+ 122 73 lineto
+ 122 111 lineto
+ 0 18 atan dup cos 8 mul 140 exch sub
+ exch sin 8 mul 111 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 140 111 8 3 18 0 tgifarrowtip
+ closepath fill
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar 8 14:25:06 1995
diff --git a/cons-4.pdf b/cons-4.pdf
new file mode 100644
index 0000000000..1165ef03de
Binary files /dev/null and b/cons-4.pdf differ
diff --git a/cons-5.eps b/cons-5.eps
new file mode 100644
index 0000000000..d771f470ac
--- /dev/null
+++ b/cons-5.eps
@@ -0,0 +1,622 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 15 680 305 764
+%%Title: cons-cell-diagram5
+%%CreationDate: Wed Mar 8 14:27:28 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: 15 680 305 764
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 156 105 moveto
+ 156 137 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 171 125 moveto
+ 0 56 atan dup cos 8 mul 227 exch sub
+ exch sin 8 mul 125 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 227 125 8 3 56 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 232 103 moveto 296 103 lineto 296 135 lineto 232 135 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 264 103 moveto
+ 264 135 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 279 117 moveto
+ 0 59 atan dup cos 8 mul 338 exch sub
+ exch sin 8 mul 117 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 338 117 8 3 59 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 289 172 moveto (a different piece of text) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 248 119 moveto
+ 248 168 lineto
+ 0 29 atan dup cos 8 mul 277 exch sub
+ exch sin 8 mul 168 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 277 168 8 3 29 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 147 66 moveto (kill-ring-yank-pointer) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 207 76 moveto
+ 207 114 lineto
+ 0 18 atan dup cos 8 mul 225 exch sub
+ exch sin 8 mul 114 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 225 114 8 3 18 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 341 98 moveto 405 98 lineto 405 130 lineto 341 130 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 372 98 moveto
+ 372 130 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 388 115 moveto
+ 0 48 atan dup cos 8 mul 436 exch sub
+ exch sin 8 mul 115 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 436 115 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 448 121 moveto (nil) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 397 154 moveto (yet more text) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 356 112 moveto
+ 356 149 lineto
+ 0 35 atan dup cos 8 mul 391 exch sub
+ exch sin 8 mul 149 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 391 149 8 3 35 0 tgifarrowtip
+ closepath fill
+grestore
+
+% BOX
+gsave
+ 1.415 setmiterlimit
+ newpath
+ 126 105 moveto 190 105 lineto 190 137 lineto 126 137 lineto
+ closepath stroke
+ 1 setmiterlimit
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 206 192 moveto (some text) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 142 120 moveto
+ 142 187 lineto
+ 0 48 atan dup cos 8 mul 190 exch sub
+ exch sin 8 mul 187 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 190 187 8 3 48 0 tgifarrowtip
+ closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 32 66 moveto (kill-ring) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 65 81 moveto
+ 65 121 lineto
+ 0 51 atan dup cos 8 mul 116 exch sub
+ exch sin 8 mul 121 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 116 121 8 3 51 0 tgifarrowtip
+ closepath fill
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar 8 14:27:28 1995
diff --git a/cons-5.pdf b/cons-5.pdf
new file mode 100644
index 0000000000..b9e713f2da
Binary files /dev/null and b/cons-5.pdf differ
diff --git a/drawers.eps b/drawers.eps
new file mode 100644
index 0000000000..a4dc0246f5
--- /dev/null
+++ b/drawers.eps
@@ -0,0 +1,510 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 34 577 324 778
+%%Title: chest-of-drawers-diagram-new
+%%CreationDate: Fri Sep 14 17:40:57 2001
+%%Creator: Tgif-4.1.35 by William Chia-Wei Cheng ([email protected])
+%%ProducedBy: (unknown)
+%%Pages: 1
+%%DocumentFonts: (atend)
+%%EndComments
+%%BeginProlog
+
+% Copyright (C) 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 53 dict def
+tgifdict begin
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/TGEL % tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/TGMAX
+ { exch dup 3 1 roll exch dup 3 1 roll gt { pop } { exch pop } ifelse
+ } def
+/TGMIN
+ { exch dup 3 1 roll exch dup 3 1 roll lt { pop } { exch pop } ifelse
+ } def
+/TGSW { stringwidth pop } def
+
+/bd { bind def } bind def
+
+/GS { gsave } bd
+/GR { grestore } bd
+/NP { newpath } bd
+/CP { closepath } bd
+/CHP { charpath } bd
+/CT { curveto } bd
+/L { lineto } bd
+/RL { rlineto } bd
+/M { moveto } bd
+/RM { rmoveto } bd
+/S { stroke } bd
+/F { fill } bd
+/TR { translate } bd
+/RO { rotate } bd
+/SC { scale } bd
+/MU { mul } bd
+/DI { div } bd
+/DU { dup } bd
+/NE { neg } bd
+/AD { add } bd
+/SU { sub } bd
+/PO { pop } bd
+/EX { exch } bd
+/CO { concat } bd
+/CL { clip } bd
+/EC { eoclip } bd
+/EF { eofill } bd
+/IM { image } bd
+/IMM { imagemask } bd
+/ARY { array } bd
+/SG { setgray } bd
+/RG { setrgbcolor } bd
+/SD { setdash } bd
+/W { setlinewidth } bd
+/SM { setmiterlimit } bd
+/SLC { setlinecap } bd
+/SLJ { setlinejoin } bd
+/SH { show } bd
+/FF { findfont } bd
+/MS { makefont setfont } bd
+/AR { arcto 4 {pop} repeat } bd
+/CURP { currentpoint } bd
+/FLAT { flattenpath strokepath clip newpath } bd
+/TGSM { tgiforigctm setmatrix } def
+/TGRM { savematrix setmatrix } def
+
+end
+
+%%EndProlog
+%%Page: 1 1
+
+%%PageBoundingBox: 34 577 324 778
+tgifdict begin
+/tgifsavedpage save def
+
+1 SM
+1 W
+
+0 SG
+
+72 0 MU 72 11 MU TR
+72 128 DI 100.000 MU 100 DI DU NE SC
+
+GS
+
+/tgiforigctm matrix currentmatrix def
+
+% BOX
+0 SG
+GS
+ 10 SM
+ GS
+ NP 64 104 M 255 104 L 255 360 L 64 360 L CP
+ S
+ GR
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+ NP
+ 65 296 M
+ 254 296 L
+ TGSM
+ 1 W
+ S
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+ NP
+ 63 233 M
+ 255 233 L
+ TGSM
+ 1 W
+ S
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+ NP
+ 63 169 M
+ 255 169 L
+ TGSM
+ 1 W
+ S
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+ NP
+ 251 362 M
+ 251 361 L
+ 251 379 L
+ 244 379 L
+ 229 361 L
+ TGSM
+ 1 W
+ S
+GR
+
+% OVAL
+0 SG
+GS
+ GS
+ NP 160 72 10 6 TGEL
+ S
+ GR
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+ NP
+ 63 104 M
+ 128 64 L
+ 138 69 L
+ TGSM
+ 1 W
+ S
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+ NP
+ 255 103 M
+ 190 63 L
+ 180 68 L
+ TGSM
+ 1 W
+ S
+GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 160 152 M
+ GS
+ GS
+ 0
+ /Courier FF [17 0 0 -17 0 0] MS
+ (symbol name) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ (symbol name) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 160 41 M
+ GS
+ GS
+ 0
+ /Courier FF [17 0 0 -17 0 0] MS
+ (Chest of Drawers) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ (Chest of Drawers) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 344 41 M
+ GS
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ (Contents of Drawers) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 344 160 M
+ GS
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ (bouquet) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 344 220 M
+ GS
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ ([none]) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 344 279 M
+ GS
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ (\(rose violet buttercup\)) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 344 337 M
+ GS
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ ([not described here]) SH
+ GR
+ GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+ NP
+ 68 362 M
+ 68 361 L
+ 68 379 L
+ 75 379 L
+ 90 361 L
+ TGSM
+ 1 W
+ S
+GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 158 132 M
+ GS
+ GS
+ 0
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (directions to) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (directions to) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 345 139 M
+ GS
+ 0 SG
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (map to) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 350 259 M
+ GS
+ 0 SG
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (map to) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 159 213 M
+ GS
+ GS
+ 0
+ /Courier FF [17 0 0 -17 0 0] MS
+ (symbol definition) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ (symbol definition) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 159 195 M
+ GS
+ GS
+ 0
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (directions to) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (directions to) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 160 276 M
+ GS
+ GS
+ 0
+ /Courier FF [17 0 0 -17 0 0] MS
+ (variable name) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ (variable name) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 158 260 M
+ GS
+ GS
+ 0
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (directions to) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (directions to) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 160 339 M
+ GS
+ GS
+ 0
+ /Courier FF [17 0 0 -17 0 0] MS
+ (property list) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /Courier FF [17 0 0 -17 0 0] MS
+ (property list) SH
+ GR
+ GR
+
+% TEXT
+NP
+0 SG
+ GS
+ 1 W
+ 158 323 M
+ GS
+ GS
+ 0
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (directions to) TGSW
+ AD
+ GR
+ 2 DI NE 0 RM
+ 0 SG
+ /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+ (directions to) SH
+ GR
+ GR
+
+GR
+tgifsavedpage restore
+end
+showpage
+
+%%Trailer
+%MatchingCreationDate: Fri Sep 14 17:40:57 2001
+%%DocumentFonts: NewCenturySchlbk-Roman
+%%+ Courier
+%%EOF
diff --git a/drawers.pdf b/drawers.pdf
new file mode 100644
index 0000000000..ca7e0ff162
Binary files /dev/null and b/drawers.pdf differ
diff --git a/lambda-1.eps b/lambda-1.eps
new file mode 100644
index 0000000000..3d2af88bbb
--- /dev/null
+++ b/lambda-1.eps
@@ -0,0 +1,465 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 33 710 173 759
+%%Title: lambda-diagram1
+%%CreationDate: Wed Mar 8 14:31:53 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: 33 710 173 759
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 63 75 moveto (\(multiply-by-seven 3\)) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 80 80 moveto
+ 96 96 lineto
+ 224 96 lineto
+ 240 80 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 264 119 moveto
+ -22 0 atan dup cos 8 mul 264 exch sub
+ exch sin 8 mul 97 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 264 97 8 3 0 -22 tgifarrowtip
+ closepath fill
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 160 103 moveto
+ 160 119 lineto
+ stroke
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 112 139 moveto (function) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 224 139 moveto (argument) show
+ grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar 8 14:31:53 1995
diff --git a/lambda-1.pdf b/lambda-1.pdf
new file mode 100644
index 0000000000..158d6fd227
--- /dev/null
+++ b/lambda-1.pdf
@@ -0,0 +1,69 @@
+%PDF-1.3
+%�쏢
+5 0 obj
+<</Length 6 0 R/Filter /FlateDecode>>
+stream
+x��PMk�0
��W��Yr<;��v��ۺ���g횴����G�u!K��I�#JA(�[r����`s�/!8M\R�����B�G��j�g
Y��hT���.�c7���}_�Su�zT�4u{xv�-��%H��h�X�2=pX�Vb�Z$��w �I�I��%s!�
7�M>5"nHX{G!RV�uj�A��U3V�(�3�����GR�}9�?}���Vp�|�6���!�t�ٌ-�xuVendstream
+endobj
+6 0 obj
+236
+endobj
+4 0 obj
+<</Type/Page/MediaBox [0 0 140 49]
+/Parent 3 0 R
+/Resources<</ProcSet[/PDF /Text]
+/ExtGState 9 0 R
+/Font 10 0 R
+>>
+/Contents 5 0 R
+>>
+endobj
+3 0 obj
+<< /Type /Pages /Kids [
+4 0 R
+] /Count 1
+>>
+endobj
+1 0 obj
+<</Type /Catalog /Pages 3 0 R
+>>
+endobj
+7 0 obj
+<</Type/ExtGState
+/OPM 1>>endobj
+9 0 obj
+<</R7
+7 0 R>>
+endobj
+10 0 obj
+<</R8
+8 0 R>>
+endobj
+8 0 obj
+<</BaseFont/Courier/Type/Font
+/Subtype/Type1>>
+endobj
+2 0 obj
+<</Producer(ESP Ghostscript 815.02)
+/CreationDate(D:20091026183417)
+/ModDate(D:20091026183417)>>endobj
+xref
+0 11
+0000000000 65535 f
+0000000548 00000 n
+0000000758 00000 n
+0000000489 00000 n
+0000000340 00000 n
+0000000015 00000 n
+0000000321 00000 n
+0000000596 00000 n
+0000000696 00000 n
+0000000637 00000 n
+0000000666 00000 n
+trailer
+<< /Size 11 /Root 1 0 R /Info 2 0 R
+/ID [(4��@7�m��bW9����)(4��@7�m��bW9����)]
+>>
+startxref
+869
+%%EOF
diff --git a/lambda-2.eps b/lambda-2.eps
new file mode 100644
index 0000000000..2d222361d3
--- /dev/null
+++ b/lambda-2.eps
@@ -0,0 +1,465 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 33 730 240 777
+%%Title: lambda-diagram2
+%%CreationDate: Wed Mar 8 14:33:09 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: 33 730 240 777
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 63 43 moveto (\(\(lambda \(number\) \(* 7 number\)\) 3\)) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 80 48 moveto
+ 96 64 lineto
+ 336 64 lineto
+ 353 49 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 395 85 moveto
+ -21 0 atan dup cos 8 mul 395 exch sub
+ exch sin 8 mul 64 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 395 64 8 3 0 -21 tgifarrowtip
+ closepath fill
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 208 69 moveto
+ 208 85 lineto
+ stroke
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 112 102 moveto (anonymous function) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 344 102 moveto (argument) show
+ grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar 8 14:33:09 1995
diff --git a/lambda-2.pdf b/lambda-2.pdf
new file mode 100644
index 0000000000..33f3e0d25a
Binary files /dev/null and b/lambda-2.pdf differ
diff --git a/lambda-3.eps b/lambda-3.eps
new file mode 100644
index 0000000000..31c5f50aea
--- /dev/null
+++ b/lambda-3.eps
@@ -0,0 +1,465 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 33 728 211 777
+%%Title: lambda-diagram3
+%%CreationDate: Wed Mar 8 14:33:49 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+% Using a zero value radius for an ellipse or an arc would result
+% in a non-invertible CTM matrix which causes problem when this
+% when this PostScript is wrapped inside other routines, such as
+% the multi.ps package from
+% ftp.ucc.su.oz.au:/pub/ps_printing/multi. You can overcome such
+% error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+% dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+ /dy exch def
+ /dx exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ dy dx atan rotate
+ 0 0 moveto
+ w neg h lineto
+ w neg h neg lineto
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arc
+ savematrix setmatrix
+ end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+ /endangle exch def
+ /startangle exch def
+ /yrad exch def
+ /xrad exch def
+ /y exch def
+ /x exch def
+ /savematrix mtrx currentmatrix def
+ x y translate
+ xrad yrad scale
+ 0 0 1 startangle endangle arcn
+ savematrix setmatrix
+ end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+ /tempctm matrix def
+ /temprot matrix def
+ /tempscale matrix def
+
+ /concatprocs
+ { /proc2 exch cvlit def
+ /proc1 exch cvlit def
+ /newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval
+ newproc proc1 length proc2 putinterval
+ newproc cvx
+ } def
+ /resmatrix matrix def
+ /findresolution
+ { 72 0 resmatrix defaultmatrix dtransform
+ /yres exch def /xres exch def
+ xres dup mul yres dup mul add sqrt
+ } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+ /spotfunction exch def
+ /screenangle exch def
+ /cellsize exch def
+
+ /m tempctm currentmatrix def
+ /rm screenangle temprot rotate def
+ /sm cellsize dup tempscale scale def
+
+ sm rm m m concatmatrix m concatmatrix pop
+
+ 1 0 m dtransform /y1 exch def /x1 exch def
+
+ /veclength x1 dup mul y1 dup mul add sqrt def
+ /frequency findresolution veclength div def
+
+ /newscreenangle y1 x1 atan def
+
+ m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+ {{neg} /spotfunction load concatprocs
+ /spotfunction exch def
+ } if
+
+ frequency newscreenangle /spotfunction load setscreen
+ end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+ /bitison
+ { /ybit exch def /xbit exch def
+ /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+ /mask 1 7 xbit 8 mod sub bitshift def
+ bytevalue mask and 0 ne
+ } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+ /y exch def /x exch def
+
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+
+ xindex yindex bitison
+ { /onbits onbits 1 add def 1 }
+ { /offbits offbits 1 add def 0 }
+ ifelse
+ end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+ /cellsz exch def
+ /angle exch def
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+
+ /onbits 0 def /offbits 0 def
+ cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+ {} settransfer
+ offbits offbits onbits add div setgray
+ end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+ /index exch def
+ tgifbwpicstr 0
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+ cvi put
+ tgifbwpicstr
+ end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop
+ 255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+ 255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+ tgifcolorpicstr
+ end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+ /index exch def
+ pixels index 3 mul 3 getinterval aload pop setrgbcolor
+ end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+ { tgifcolordict begin
+ pop pop pop pop pop
+ /ih exch def
+ /iw exch def
+ /x 0 def
+ /y 0 def
+ 1 1 ih
+ { pop 1 1 iw
+ { pop currentfile
+ tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+ x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+ closepath fill
+ /x x 1 add def
+ } for
+ /y y 1 add def
+ /x 0 def
+ } for
+ end
+ } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+ pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+ /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+ /h exch def
+ /w exch def
+ /lty exch def
+ /ltx exch def
+ /cellsz exch def
+ /pat exch def
+
+ /widthlim w cellsz div cvi 1 sub def
+ /retstr widthlim 1 add string def
+ /i 0 def
+
+ ltx lty translate
+ w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+ ltx neg lty neg translate
+ end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+ /newcodesandnames exch def
+ /newfontname exch def
+ /basefontname exch def
+
+ /basefontdict basefontname findfont def
+ /newfont basefontdict maxlength dict def
+
+ basefontdict
+ { exch dup /FID ne
+ { dup /Encoding eq
+ { exch dup length array copy newfont 3 1 roll put }
+ { exch newfont 3 1 roll put }
+ ifelse
+ }
+ { pop pop }
+ ifelse
+ }
+ forall
+
+ newfont /FontName newfontname put
+ newcodesandnames aload pop
+
+ newcodesandnames length 2 idiv
+ { newfont /Encoding get 3 1 roll put}
+ repeat
+
+ newfontname newfont definefont pop
+ end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+ /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ 1.415 setmiterlimit
+ w 1 eq { w setlinewidth } if
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ w 1 eq { 1 setlinewidth } if
+ 1 setmiterlimit
+ end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+ /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+ pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+ newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+ pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+ pat pat1 ne pat pat2 ne and { grestore } if
+ end
+ } def
+
+end
+
+%%PageBoundingBox: 33 728 211 777
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 63 43 moveto (\(\(lambda \(arg\) \(/ arg 50\)\) 100\)) show
+ grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 80 48 moveto
+ 96 64 lineto
+ 284 64 lineto
+ 299 48 lineto
+ stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 354 86 moveto
+ -25 0 atan dup cos 8 mul 354 exch sub
+ exch sin 8 mul 61 exch sub lineto
+ stroke
+grestore
+gsave
+ newpath
+ 354 61 8 3 0 -25 tgifarrowtip
+ closepath fill
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+ newpath
+ 199 70 moveto
+ 199 86 lineto
+ stroke
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 101 106 moveto (anonymous function) show
+ grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+ gsave
+ 293 106 moveto (argument) show
+ grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar 8 14:33:49 1995
diff --git a/lambda-3.pdf b/lambda-3.pdf
new file mode 100644
index 0000000000..6b54c9440a
--- /dev/null
+++ b/lambda-3.pdf
@@ -0,0 +1,69 @@
+%PDF-1.3
+%�쏢
+5 0 obj
+<</Length 6 0 R/Filter /FlateDecode>>
+stream
+x��PMO�0�ϯ��rp��/��Ę�xX�&����u���S`
W�L^���u�N��Q��ba��cw��R��g��D�-E�
�ò��.�&kr�����$®������jWuU&�G١SU&-+������(y~���X+4��Z�Aa/���]�B�E=<{�$�|��G褓�"]��K�<덊��di!�j��_�������̒��M$��]=��O�3���\�����sH�M�c�d����~B�a�endstream
+endobj
+6 0 obj
+258
+endobj
+4 0 obj
+<</Type/Page/MediaBox [0 0 178 49]
+/Parent 3 0 R
+/Resources<</ProcSet[/PDF /Text]
+/ExtGState 9 0 R
+/Font 10 0 R
+>>
+/Contents 5 0 R
+>>
+endobj
+3 0 obj
+<< /Type /Pages /Kids [
+4 0 R
+] /Count 1
+>>
+endobj
+1 0 obj
+<</Type /Catalog /Pages 3 0 R
+>>
+endobj
+7 0 obj
+<</Type/ExtGState
+/OPM 1>>endobj
+9 0 obj
+<</R7
+7 0 R>>
+endobj
+10 0 obj
+<</R8
+8 0 R>>
+endobj
+8 0 obj
+<</BaseFont/Courier/Type/Font
+/Subtype/Type1>>
+endobj
+2 0 obj
+<</Producer(ESP Ghostscript 815.02)
+/CreationDate(D:20091026183418)
+/ModDate(D:20091026183418)>>endobj
+xref
+0 11
+0000000000 65535 f
+0000000570 00000 n
+0000000780 00000 n
+0000000511 00000 n
+0000000362 00000 n
+0000000015 00000 n
+0000000343 00000 n
+0000000618 00000 n
+0000000718 00000 n
+0000000659 00000 n
+0000000688 00000 n
+trailer
+<< /Size 11 /Root 1 0 R /Info 2 0 R
+/ID [(� vF� �y��l%t��)(� vF� �y��l%t��)]
+>>
+startxref
+891
+%%EOF