BSD 4 development
authorBill Joy <wnj@ucbvax.Berkeley.EDU>
Wed, 15 Oct 1980 20:01:49 +0000 (12:01 -0800)
committerBill Joy <wnj@ucbvax.Berkeley.EDU>
Wed, 15 Oct 1980 20:01:49 +0000 (12:01 -0800)
Work on file usr/doc/fsck/fsck.toc.mac
Work on file usr/doc/fsck/fsck.stoc
Work on file usr/doc/fsck/fsck.toc
Work on file usr/doc/lisp/Makefile
Work on file usr/doc/lisp/ch0.n
Work on file usr/doc/lisp/ch1.n
Work on file usr/doc/lisp/ch11.n
Work on file usr/doc/lisp/ch10.n
Work on file usr/doc/lisp/ch12.n
Work on file usr/doc/lisp/ch12.t
Work on file usr/doc/lisp/ch2.n
Work on file usr/doc/lisp/ch3.n
Work on file usr/doc/lisp/ch4.n
Work on file usr/doc/lisp/ch5.n
Work on file usr/doc/lisp/ch7.n
Work on file usr/doc/lisp/ch6.n
Work on file usr/doc/lisp/ch61.n
Work on file usr/doc/lisp/ch8.n
Work on file usr/doc/lisp/ch8aux.sh
Work on file usr/doc/lisp/ch8aux.shout
Work on file usr/doc/lisp/ch8auxc.c
Work on file usr/doc/lisp/ch8auxf.f
Work on file usr/doc/lisp/ch8errs
Work on file usr/doc/lisp/ch8auxf.sh
Work on file usr/doc/lisp/ch8auxp.p
Work on file usr/doc/lisp/foo.sh
Work on file usr/doc/lisp/chb.n
Work on file usr/doc/lisp/ch9.n
Work on file usr/doc/lisp/chc.n
Work on file usr/doc/lisp/mantags
Work on file usr/doc/lisp/indexsed
Work on file usr/doc/lisp/lmacs
Work on file usr/doc/lisp/franzf
Work on file usr/doc/lisp/nfranzf
Work on file usr/doc/lisp/xx.f
Work on file usr/doc/lisp/testpk.l
Work on file usr/doc/lisp/specatms.l
Work on file usr/doc/lisp/oblistd.l
Work on file usr/doc/lisp/xxx.l
Work on file usr/doc/mail/mail0.nr
Work on file usr/doc/mail/addenda.nr
Work on file usr/doc/mail/mail3.nr
Work on file usr/doc/mail/mail2.nr
Work on file usr/doc/mail/mail1.nr
Work on file usr/doc/mail/mail6.nr
Work on file usr/doc/mail/mail5.nr
Work on file usr/doc/mail/mail7.nr
Work on file usr/doc/mail/mail8.nr
Work on file usr/doc/mail/mail4.nr
Work on file usr/doc/mail/makefile
Work on file usr/doc/memacros/intro.nr
Work on file usr/doc/memacros/ref.nr
Work on file usr/doc/msmacros/ms
Work on file usr/doc/msmacros/refcard

Synthesized-from: CSRG//cd1/4.0

54 files changed:
usr/doc/fsck/fsck.stoc [new file with mode: 0644]
usr/doc/fsck/fsck.toc [new file with mode: 0644]
usr/doc/fsck/fsck.toc.mac [new file with mode: 0644]
usr/doc/lisp/Makefile [new file with mode: 0644]
usr/doc/lisp/ch0.n [new file with mode: 0644]
usr/doc/lisp/ch1.n [new file with mode: 0644]
usr/doc/lisp/ch10.n [new file with mode: 0644]
usr/doc/lisp/ch11.n [new file with mode: 0644]
usr/doc/lisp/ch12.n [new file with mode: 0644]
usr/doc/lisp/ch12.t [new file with mode: 0644]
usr/doc/lisp/ch2.n [new file with mode: 0644]
usr/doc/lisp/ch3.n [new file with mode: 0644]
usr/doc/lisp/ch4.n [new file with mode: 0644]
usr/doc/lisp/ch5.n [new file with mode: 0644]
usr/doc/lisp/ch6.n [new file with mode: 0644]
usr/doc/lisp/ch61.n [new file with mode: 0644]
usr/doc/lisp/ch7.n [new file with mode: 0644]
usr/doc/lisp/ch8.n [new file with mode: 0644]
usr/doc/lisp/ch8aux.sh [new file with mode: 0644]
usr/doc/lisp/ch8aux.shout [new file with mode: 0644]
usr/doc/lisp/ch8auxc.c [new file with mode: 0644]
usr/doc/lisp/ch8auxf.f [new file with mode: 0644]
usr/doc/lisp/ch8auxf.sh [new file with mode: 0644]
usr/doc/lisp/ch8auxp.p [new file with mode: 0644]
usr/doc/lisp/ch8errs [new file with mode: 0644]
usr/doc/lisp/ch9.n [new file with mode: 0644]
usr/doc/lisp/chb.n [new file with mode: 0644]
usr/doc/lisp/chc.n [new file with mode: 0644]
usr/doc/lisp/foo.sh [new file with mode: 0644]
usr/doc/lisp/franzf [new file with mode: 0644]
usr/doc/lisp/indexsed [new file with mode: 0644]
usr/doc/lisp/lmacs [new file with mode: 0644]
usr/doc/lisp/mantags [new file with mode: 0644]
usr/doc/lisp/nfranzf [new file with mode: 0644]
usr/doc/lisp/oblistd.l [new file with mode: 0644]
usr/doc/lisp/specatms.l [new file with mode: 0644]
usr/doc/lisp/testpk.l [new file with mode: 0644]
usr/doc/lisp/xx.f [new file with mode: 0644]
usr/doc/lisp/xxx.l [new file with mode: 0644]
usr/doc/mail/addenda.nr [new file with mode: 0644]
usr/doc/mail/mail0.nr [new file with mode: 0644]
usr/doc/mail/mail1.nr [new file with mode: 0644]
usr/doc/mail/mail2.nr [new file with mode: 0644]
usr/doc/mail/mail3.nr [new file with mode: 0644]
usr/doc/mail/mail4.nr [new file with mode: 0644]
usr/doc/mail/mail5.nr [new file with mode: 0644]
usr/doc/mail/mail6.nr [new file with mode: 0644]
usr/doc/mail/mail7.nr [new file with mode: 0644]
usr/doc/mail/mail8.nr [new file with mode: 0644]
usr/doc/mail/makefile [new file with mode: 0644]
usr/doc/memacros/intro.nr [new file with mode: 0644]
usr/doc/memacros/ref.nr [new file with mode: 0644]
usr/doc/msmacros/ms [new file with mode: 0644]
usr/doc/msmacros/refcard [new file with mode: 0644]

diff --git a/usr/doc/fsck/fsck.stoc b/usr/doc/fsck/fsck.stoc
new file mode 100644 (file)
index 0000000..72237ac
--- /dev/null
@@ -0,0 +1,79 @@
+.x "INITIALIZATION"
+Bad \(emt option \fI\ 1\fP \07
+\fBC\fP option? \fI\ 1\fP \07
+CAN NOT READ: BLK \fBB\fP (CONTINUE) \fI\ 1\fP \08
+CAN NOT SEEK: BLK \fBB\fP (CONTINUE) \fI\ 1\fP \08
+CAN NOT WRITE: BLK \fBB\fP (CONTINUE) \fI\ 1\fP \09
+Can't create \fBF\fP \fI\ 1\fP \08
+Can't get memory \fI\ 1\fP \07
+Can't open checklist file: \fBF\fP \fI\ 1\fP \07
+Can't open \fBF\fP \fI\ 1\fP \08
+Can't stat \fBF\fP \fI\ 1\fP \08
+Can't stat root \fI\ 1\fP \07
+\fBF\fP is not a block or character device \fI\ 1\fP \08
+Incompatible options: \(emn and \(ems \fI\ 1\fP \07
+Invalid \(ems argument, defaults assumed \fI\ 1\fP \07
+Size check: fsize \fBX\fP isize \fBY\fP \fI\ 1\fP \08
+.y
+.x "PHASE 1: CHECK BLOCKS AND SIZES"
+\fBB\fP BAD I=\fBI\fP \fI\ 1\fP \09
+\fBB\fP DUP I=\fBI\fP \fI\ 1\fP 10
+DIRECTORY MISALIGNED I=\fBI\fP \fI\ 1\fP 10
+DUP TABLE OVERFLOW (CONTINUE) \fI\ 1\fP 10
+EXCESSIVE BAD BLKS I=\fBI\fP (CONTINUE) \fI\ 1\fP 10
+EXCESSIVE DUP BLKS I=\fBI\fP (CONTINUE) \fI\ 1\fP 10
+LINK COUNT TABLE OVERFLOW (CONTINUE) \fI\ 1\fP \09
+PARTIALLY ALLOCATED INODE I=\fBI\fP (CLEAR) \fI\ 1\fP 10
+POSSIBLE FILE SIZE ERROR I=\fBI\fP \fI\ 1\fP 10
+UNKNOWN FILE TYPE I=\fBI\fP (CLEAR) \fI\ 1\fP \09
+.y
+.x "PHASE 1B: RESCAN FOR MORE DUPS"
+\fBB\fP DUP I=\fBI\fP \fI\ 1\fP 11
+.y
+.x "PHASE 2: CHECK PATH-NAMES"
+DUP/BAD I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP DIR=\fBF\fP (REMOVE) \fI\ 1\fP 12
+DUP/BAD I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP FILE=\fBF\fP (REMOVE) \fI\ 1\fP 12
+DUPS/BAD IN ROOT INODE (CONTINUE) \fI\ 1\fP 11
+I OUT OF RANGE I=\fBI\fP NAME=\fBF\fP (REMOVE) \fI\ 1\fP 11
+ROOT INODE NOT DIRECTORY (FIX) \fI\ 1\fP 11
+ROOT INODE UNALLOCATED. TERMINATING. \fI\ 1\fP 11
+UNALLOCATED I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP NAME=\fBF\fP (REMOVE) \fI\ 1\fP 12
+.y
+.x "PHASE 3: CHECK CONNECTIVITY"
+DIR I=\fBI1\fP CONNECTED. PARENT WAS I=\fBI2\fP \fI\ 1\fP 13
+SORRY. NO SPACE IN lost+found DIRECTORY \fI\ 1\fP 13
+SORRY. NO lost+found DIRECTORY \fI\ 1\fP 12
+UNREF DIR I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (RECONNECT) \fI\ 1\fP 12
+.y
+.x "PHASE 4: CHECK REFERENCE COUNTS"
+BAD/DUP DIR I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (CLEAR) \fI\ 1\fP 15
+BAD/DUP FILE I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (CLEAR) \fI\ 1\fP 15
+(CLEAR) \fI\ 1\fP 13
+FREE INODE COUNT WRONG IN SUPERBLK (FIX) \fI\ 1\fP 15
+LINK COUNT DIR I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP COUNT=\fBX\fP SHOULD BE \fBY\fP (ADJUST) \fI\ 1\fP 14
+LINK COUNT FILE I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP COUNT=\fBX\fP SHOULD BE \fBY\fP (ADJUST) \fI\ 1\fP 14
+LINK COUNT \fBF\fP I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP COUNT=\fBX\fP SHOULD BE \fBY\fP (ADJUST) \fI\ 1\fP 14
+SORRY. NO SPACE IN lost+found DIRECTORY \fI\ 1\fP 13
+SORRY. NO lost+found DIRECTORY \fI\ 1\fP 13
+UNREF DIR I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (CLEAR) \fI\ 1\fP 14
+UNREF FILE I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (CLEAR) \fI\ 1\fP 14
+UNREF FILE I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (RECONNECT) \fI\ 1\fP 13
+.y
+.x "PHASE 5: CHECK FREE LIST"
+BAD FREE LIST (SALVAGE) \fI\ 1\fP 16
+BAD FREEBLK COUNT \fI\ 1\fP 16
+EXCESSIVE BAD BLKS IN FREE LIST (CONTINUE) \fI\ 1\fP 15
+EXCESSIVE DUP BLKS IN FREE LIST (CONTINUE) \fI\ 1\fP 16
+FREE BLK COUNT WRONG IN SUPERBLOCK (FIX) \fI\ 1\fP 16
+\fBX\fP BAD BLKS IN FREE LIST \fI\ 1\fP 16
+\fBX\fP BLK(S) MISSING \fI\ 1\fP 16
+\fBX\fP DUP BLKS IN FREE LIST \fI\ 1\fP 16
+.y
+.x "PHASE 6: SALVAGE FREE LIST"
+Default free-block list spacing assumed \fI\ 1\fP 17
+.y
+.x "CLEANUP"
+***** BOOT UNIX (NO SYNC!) ***** \fI\ 1\fP 17
+***** FILE SYSTEM WAS MODIFIED ***** \fI\ 1\fP 17
+\fBX\fP files \fBY\fP blocks \fBZ\fP free \fI\ 1\fP 17
+.y
diff --git a/usr/doc/fsck/fsck.toc b/usr/doc/fsck/fsck.toc
new file mode 100644 (file)
index 0000000..46da2d4
--- /dev/null
@@ -0,0 +1,79 @@
+.x "INITIALIZATION"
+\fBC\fP option? \fI\ 1\fP 7
+Bad \(emt option \fI\ 1\fP 7
+Invalid \(ems argument, defaults assumed \fI\ 1\fP 7
+Incompatible options: \(emn and \(ems \fI\ 1\fP 7
+Can't get memory \fI\ 1\fP 7
+Can't open checklist file: \fBF\fP \fI\ 1\fP 7
+Can't stat root \fI\ 1\fP 7
+Can't stat \fBF\fP \fI\ 1\fP 8
+\fBF\fP is not a block or character device \fI\ 1\fP 8
+Can't open \fBF\fP \fI\ 1\fP 8
+Size check: fsize \fBX\fP isize \fBY\fP \fI\ 1\fP 8
+Can't create \fBF\fP \fI\ 1\fP 8
+CAN NOT SEEK: BLK \fBB\fP (CONTINUE) \fI\ 1\fP 8
+CAN NOT READ: BLK \fBB\fP (CONTINUE) \fI\ 1\fP 8
+CAN NOT WRITE: BLK \fBB\fP (CONTINUE) \fI\ 1\fP 9
+.y
+.x "PHASE 1: CHECK BLOCKS AND SIZES"
+UNKNOWN FILE TYPE I=\fBI\fP (CLEAR) \fI\ 1\fP 9
+LINK COUNT TABLE OVERFLOW (CONTINUE) \fI\ 1\fP 9
+\fBB\fP BAD I=\fBI\fP \fI\ 1\fP 9
+EXCESSIVE BAD BLKS I=\fBI\fP (CONTINUE) \fI\ 1\fP 10
+\fBB\fP DUP I=\fBI\fP \fI\ 1\fP 10
+EXCESSIVE DUP BLKS I=\fBI\fP (CONTINUE) \fI\ 1\fP 10
+DUP TABLE OVERFLOW (CONTINUE) \fI\ 1\fP 10
+POSSIBLE FILE SIZE ERROR I=\fBI\fP \fI\ 1\fP 10
+DIRECTORY MISALIGNED I=\fBI\fP \fI\ 1\fP 10
+PARTIALLY ALLOCATED INODE I=\fBI\fP (CLEAR) \fI\ 1\fP 10
+.y
+.x "PHASE 1B: RESCAN FOR MORE DUPS"
+\fBB\fP DUP I=\fBI\fP \fI\ 1\fP 11
+.y
+.x "PHASE 2: CHECK PATH-NAMES"
+ROOT INODE UNALLOCATED. TERMINATING. \fI\ 1\fP 11
+ROOT INODE NOT DIRECTORY (FIX) \fI\ 1\fP 11
+DUPS/BAD IN ROOT INODE (CONTINUE) \fI\ 1\fP 11
+I OUT OF RANGE I=\fBI\fP NAME=\fBF\fP (REMOVE) \fI\ 1\fP 11
+UNALLOCATED I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP NAME=\fBF\fP (REMOVE) \fI\ 1\fP 12
+DUP/BAD I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP DIR=\fBF\fP (REMOVE) \fI\ 1\fP 12
+DUP/BAD I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP FILE=\fBF\fP (REMOVE) \fI\ 1\fP 12
+.y
+.x "PHASE 3: CHECK CONNECTIVITY"
+UNREF DIR I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (RECONNECT) \fI\ 1\fP 12
+SORRY. NO lost+found DIRECTORY \fI\ 1\fP 12
+SORRY. NO SPACE IN lost+found DIRECTORY \fI\ 1\fP 13
+DIR I=\fBI1\fP CONNECTED. PARENT WAS I=\fBI2\fP \fI\ 1\fP 13
+.y
+.x "PHASE 4: CHECK REFERENCE COUNTS"
+UNREF FILE I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (RECONNECT) \fI\ 1\fP 13
+SORRY. NO lost+found DIRECTORY \fI\ 1\fP 13
+SORRY. NO SPACE IN lost+found DIRECTORY \fI\ 1\fP 13
+(CLEAR) \fI\ 1\fP 13
+LINK COUNT FILE I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP COUNT=\fBX\fP SHOULD BE \fBY\fP (ADJUST) \fI\ 1\fP 14
+LINK COUNT DIR I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP COUNT=\fBX\fP SHOULD BE \fBY\fP (ADJUST) \fI\ 1\fP 14
+LINK COUNT \fBF\fP I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP COUNT=\fBX\fP SHOULD BE \fBY\fP (ADJUST) \fI\ 1\fP 14
+UNREF FILE I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (CLEAR) \fI\ 1\fP 14
+UNREF DIR I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (CLEAR) \fI\ 1\fP 14
+BAD/DUP FILE I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (CLEAR) \fI\ 1\fP 15
+BAD/DUP DIR I=\fBI\fP OWNER=\fBO\fP MODE=\fBM\fP SIZE=\fBS\fP MTIME=\fBT\fP (CLEAR) \fI\ 1\fP 15
+FREE INODE COUNT WRONG IN SUPERBLK (FIX) \fI\ 1\fP 15
+.y
+.x "PHASE 5: CHECK FREE LIST"
+EXCESSIVE BAD BLKS IN FREE LIST (CONTINUE) \fI\ 1\fP 15
+EXCESSIVE DUP BLKS IN FREE LIST (CONTINUE) \fI\ 1\fP 16
+BAD FREEBLK COUNT \fI\ 1\fP 16
+\fBX\fP BAD BLKS IN FREE LIST \fI\ 1\fP 16
+\fBX\fP DUP BLKS IN FREE LIST \fI\ 1\fP 16
+\fBX\fP BLK(S) MISSING \fI\ 1\fP 16
+FREE BLK COUNT WRONG IN SUPERBLOCK (FIX) \fI\ 1\fP 16
+BAD FREE LIST (SALVAGE) \fI\ 1\fP 16
+.y
+.x "PHASE 6: SALVAGE FREE LIST"
+Default free-block list spacing assumed \fI\ 1\fP 17
+.y
+.x "CLEANUP"
+\fBX\fP files \fBY\fP blocks \fBZ\fP free \fI\ 1\fP 17
+***** BOOT UNIX (NO SYNC!) ***** \fI\ 1\fP 17
+***** FILE SYSTEM WAS MODIFIED ***** \fI\ 1\fP 17
+.y
diff --git a/usr/doc/fsck/fsck.toc.mac b/usr/doc/fsck/fsck.toc.mac
new file mode 100644 (file)
index 0000000..3cac5fd
--- /dev/null
@@ -0,0 +1,49 @@
+.if t .nr W 6i+\w'\s-2\ \0\0\s+2'u
+.ev 0
+.if t .ll 6i+\w'\s-2\ \0\0\s+2'u
+.if t .lt 6i+\w'\s-2\ \0\0\s+2'u
+.if t .ta 6i
+.if n .ta 81n
+.ev
+.ev 1
+.if t .ll 6i+\w'\s-2\ \0\0\s+2'u
+.if t .lt 6i+\w'\s-2\ \0\0\s+2'u
+.if t .ta 6i
+.if n .ta 81n
+.ev
+.ev 2
+.if t .ll 6i+\w'\s-2\ \0\0\s+2'u
+.if t .lt 6i+\w'\s-2\ \0\0\s+2'u
+.if t .ta 6i
+.if n .ta 81n
+.ev
+.ds :? FSCK
+.PH ""
+.OH "'\s9\f2\*(:?\fP''\\\\nP\s0'"
+.EH "'\s9\\\\nP''\f2\*(:?\^\fP\s0'"
+.nr P 17
+.de x
+.DS
+.B "\&\s-1\\$1\s+1"
+.if n .SP 1
+.if t .SP .5
+.S -2
+.nf
+.cs 2 36
+\!.cs 2 36
+..
+.de y
+.fi
+.cs 2
+\!.cs 2
+.S
+.DE
+..
+.br
+.bp
+.rs
+.SP 3
+.ce 2
+INDEX OF MESSAGES
+(Alphabetically within each section)
+.SP 1
diff --git a/usr/doc/lisp/Makefile b/usr/doc/lisp/Makefile
new file mode 100644 (file)
index 0000000..9aeeefb
--- /dev/null
@@ -0,0 +1,76 @@
+#      makefile for the franz lisp manual
+#
+# sources: lmacs: macros for the franz documents
+#         ch1.n  intro and description of types
+#         ch2.n  data structure access
+#         ch3.n  on arithmetic functions.
+#         ch4.n  special functions.
+#         ch5.n  i/o
+#         ch6.n  system functions
+#         ch7.n  reader
+#         ch8.n  functions and macros 
+#         ch9.n  arrays 
+#         ch10.n exception handling 
+#         ch11.n trace package 
+#         ch12.n liszt 
+#         ...
+
+TROFF= csh /usr/ucb/vtroff
+
+.SUFFIXES: .n .t .x .o
+
+INDX= ch2.x ch3.x ch4.x ch5.x ch6.x ch7.x
+
+TGS= ch2.n ch3.n ch4.n ch5.n ch6.n ch61.n ch7.n
+
+all: ch0.o ch1.o ch2.o ch3.o ch4.o ch5.o ch6.o ch7.o ch8.o ch9.o\
+        ch10.o ch11.o ch12.o chb.o chc.o index.o
+
+tall: ch0.t ch1.t ch2.t ch3.t ch4.t ch5.t ch6.t ch7.t ch8.t ch9.t \
+      ch10.t ch11.t ch12.t chb.t chc.t index.t
+
+
+
+.t.o:
+       vpr -t $*.t
+
+#.n.o:
+#      tbl lmacs $*.n | ${TROFF} -me -t 1> $*.t 2> $*.x
+#      vpr -t $*.t
+       
+.n.t:  
+       tbl lmacs $*.n | ${TROFF} -me -x -t 1> $*.t 2> $*.x
+
+.n.p:
+       tbl lmacs $*.n | csh /usr/ucb/nettroff -me 2> $*.x
+
+.n.x:
+       tbl lmacs $*.n | ${TROFF} -me -z 2> $*.x
+
+
+
+findex: ${INDX}
+       echo ".Ib" > index
+       sort +3 -o index index ${INDX}
+       sed -f indexsed index > indexx 
+       ${TROFF} -me lmacs indexx
+
+index.t: ${INDX}
+       echo ".Ib" > index
+       sort +3 -o index index ${INDX}
+       sed -f indexsed index > indexx
+       ${TROFF} -me -x -t lmacs indexx > index.t
+
+pindex:
+       echo ".Ib" > index
+       sort +3 -o index index ${INDX}
+       sed -f indexsed index > indexx
+       csh /usr/ucb/nettroff -me -o5- lmacs indexx
+
+tags:  /dev/tty
+       awk -f mantags ${TGS} | sort > tags
+
+
+
+clean:
+       rm index *.x
diff --git a/usr/doc/lisp/ch0.n b/usr/doc/lisp/ch0.n
new file mode 100644 (file)
index 0000000..df77016
--- /dev/null
@@ -0,0 +1,141 @@
+
+.pp
+\ \ 
+.sp 2i
+.tl ''\s14The\ \s16F\s14RANZ\ \s16L\s14ISP\ \s14Manual''
+.ps 10
+.sp 1v
+.tl ''by''
+.sp 1v
+.tl ''\fIJohn\ K.\ Foderaro\fP''
+.sp 4i
+.tl '''A document in'
+.tl '''four movements'
+.bp
+.sp 1i
+.ft I
+.ll 5.5i
+.in .5i
+.tl ''Overture''
+.sp 2v
+A chorus of students, 
+under the direction of
+Richard Fateman, have contributed to
+building 
+.Fr
+from a mere melody into a full
+symphony .
+The major contributors to the initial system were
+Mike Curry,  John Breedlove and Jeff Levinsky.
+Bill Rowan added the garbage collector and array package.
+Tom London worked on an early compiler and helped in 
+overall system design.
+Keith Sklower has contributed much to 
+.Fr ,
+adding the 
+bignum package and rewriting most of code to increase
+its efficiency and clarity.
+Kipp Hickman and Charles Koester added hunks.
+Mitch Marcus added *rset, evalhook and evalframe.
+Don Cohen and others at Carnegie-Mellon 
+made some improvements to evalframe and 
+maintain the software to use it.
+John Foderaro wrote the compiler, added a few functions,
+and wrote this modest manual.
+.sp 3i
+.ft R
+.ll 6.5i
+.in 0
+\(co 1980 by the Regents of the University of California.
+.br
+All rights reserved.
+.br
+.sp 2v
+Work reported herein was supported in part by 
+the U. S. Department
+of Energy, Contract DE-AT03-76SF00034, Project Agreement
+DE-AS03-79ER10358, and the National Science
+Foundation under Grant No.  MCS 7807291
+.sp 2v
+UNIX is a trademark of Bell Laboratories.
+.bp
+.ps 16
+.sp 1i
+.tl ''Score''
+.sp .5i
+.ps 12
+.in 1i.
+.ti 2i
+\fBFirst Movement \fI(allegro non troppo)\fR
+.ps 10
+.sp 1v
+.de CH
+.ti -.5i
+\fR\\$1 \\$2\fP
+.br
+..
+.ft I
+.CH 1. F\s-2RANZ\s0\ L\s-2ISZT\s0 
+Introduction to 
+.Fr ,
+details of data types,
+and description of notation
+.CH 2. Data\ Structure\ Access
+Functions for the creation, destruction  
+and  manipulation of lisp data objects.
+.CH 3. Arithmetic\ Functions
+Functions to perform arithmetic operations.
+.CH 4. Special\ Functions
+Functions for altering flow of control.
+Functions for mapping other functions over lists.
+.CH 5. I/O\ Functions
+Functions for reading and writing from ports.
+Functions for the modification of the reader's syntax.
+.CH 6. System\ Functions 
+Functions for storage management, debugging, and for the reading 
+and setting of global Lisp status variables.
+Functions for doing UNIX specific tasks such as process control.
+.ft R
+.sp 2v
+.ps 12
+.ti 2i
+\fBSecond Movement \fI(Largo)\fR
+.ps 10
+.sp 1v
+.ft I
+.CH 7. The\ Reader
+A description of the syntax codes used by the reader.
+An explanation of character macros.
+.CH 8. Functions\ and\ Macros 
+A description of the various types of functions and macros.
+An example of the use of foreign functions.
+.CH 9. Arrays  
+A detailed description of the parts of an array and of 
+Maclisp compatible arrays.
+.CH 10. Exception\ Handling 
+A description of the error handling sequence and of autoloading.
+.ft R
+.sp 2v
+.ps 12
+.ti 2i
+\fBThird Movement \fI(Scherzo)\fR
+.ps 10
+.sp 1v
+.ft I
+.CH 11. The\ Joseph\ Lister\ Trace\ Package 
+A description of a very useful debugging aid.
+.CH 12. Liszt,\ the\ lisp\ compiler 
+A description of the operation of the
+compiler and hints for making functions compilable.
+.ft R
+.sp 2v
+.ps 12
+.ti 2i
+\fBFinal Movement \fI(allegro)\fR
+.ps 10
+.sp 1v
+.ft I
+.CH Appendix\ A -\ Function\ Index 
+.CH Appendix\ B -\ List\ of\ Special\ Symbols
+.CH Appendix\ C -\ Short\ Subjects
+Garbage collector, Debugging, Top Level
diff --git a/usr/doc/lisp/ch1.n b/usr/doc/lisp/ch1.n
new file mode 100644 (file)
index 0000000..0bcaa64
--- /dev/null
@@ -0,0 +1,423 @@
+.Lc \s+2F\s-2RANZ\s0\ L\s-2ISP\s0\s-2 1
+.sh 2
+.Fr \*[\(dg\*]
+was created as a tool to further research in Symbolic
+Algebraic Manipulation,
+Artificial Intelligence,
+and programming languages at the University of California
+at Berkeley.
+.(f
+\*[\(dg\*]It is rumored that this name has something to do with Franz
+Liszt [F\fIr\fPa\*:nts List] (1811-1886) a Hungarian composer
+and keyboard virtuoso. 
+These allegations have never been proven.
+.)f
+Its roots are in the PDP-11 Lisp system which originally came
+from Harvard.
+As it grew it adopted features of Maclisp and Lisp Machine Lisp
+which enables our work to be shared with colleagues at
+the Laboratory for Computer Science at M.I.T.
+It is written almost entirely in the programming language C.
+A small part is written in the assembler language for the current
+host machine, a VAX 11/780, and part is written in Lisp.
+Because 
+.Fr
+is written in C, it is portable and easy to comprehend.
+.pp
+.Fr
+is capable of running large lisp programs in a timesharing environment,
+has facilities for arrays and user defined structures,
+has a user controlled reader with character and word macro  capabilities,
+and can interact directly with compiled Lisp, C, Fortran, and Pascal code.
+.sh 
+This document is a reference manual for the 
+.Fr
+system.
+It is not a Lisp primer or introduction to the language.
+Some parts will be of interest only to those maintaining 
+.Fr
+at their computer site.
+This document is divided into four Movements.
+In the first one we will attempt to describe the language of
+.Fr
+precisely and completely as it now stands (Opus 33b, October 1980).
+In the second Movement we will look at the reader, function types,
+arrays and exception handling.
+In the third Movement we will look at several large support packages 
+written to help the 
+.Fr
+user, namely the trace package and compiler.
+Finally the fourth movement contains  an index into the other movements.
+In the rest of this chapter we shall examine the data types of 
+.Fr .
+The conventions used in the description of the 
+.Fr
+functions will be given in section 1.4 -- it is very important that 
+these conventions are  understood.
+.sh 2 Data\ Types
+.Fr
+has eleven data types.
+In this section we shall look in detail at each type and if a type is
+divisible we shall look inside it.
+There is a Lisp function
+.i type
+which will return the type name of a lisp object.
+This is the official 
+.Fr
+name for that type and we will use this name and this name only in 
+the manual to avoid confusing the reader.
+The types are listed in terms of importance rather than alphabetically.
+.sh 3 lispval - - 0
+This is the name we use to describe any lisp object.
+The function
+.i type
+will never return `lispval'.
+.sh 3 symbol
+This object corresponds to a variable in most other programming languages.
+It may have a value or may be `unbound'.
+A symbol may be 
+.i lambda 
+.i bound 
+meaning that its current value is stored
+away somewhere and the symbol  is given a new value for the duration of a 
+certain context.
+When the Lisp processor  leaves that context, the 
+symbol's current value is thrown
+away and its old value is restored.
+.sp .5v
+A symbol may also have a 
+.i function 
+.i binding .
+This function binding is static; it cannot be lambda bound.
+Whenever the symbol is used in the functional position of a Lisp expression
+the function binding of the symbol is examined (see \(sc4 for more
+details on  evaluation).
+.sp .5v
+A symbol may also have a 
+.i property 
+.i list ,
+another static data structure.
+The property list consists of a list of an even number of elements,
+considered to be grouped as pairs. 
+The first element of the pair is the 
+.i indicator 
+the second the 
+.i value 
+of that indicator.
+.sp .5v
+Each symbol has a print name 
+.i (pname) 
+which is how this symbol is accessed from input and referred to
+on  (printed) output.
+This is also used when one tests for equality of symbols using the
+function
+.i equal .
+.sp .5v
+A symbol also has a hashlink used to link symbols together in the
+oblist -- this field is inaccessible to the lisp user.
+.sp .5v
+Symbols are created by the reader and by the functions
+.i concat ,
+.i maknam
+and their derivatives.
+Most symbols live on 
+.Fr 's
+sole 
+.i oblist ,
+and therefore two symbols with the same print name are
+usually the  exact same object (they are
+.i eq ).
+Symbols which are not on the oblist are said to be 
+.i uninterned.
+The function
+.i maknam
+creates uninterned symbols while 
+.i concat
+creates 
+.i interned 
+ones.
+.sp 1v
+.TS
+box center ; 
+c | c | c |  c .
+Subpart name   Get value       Set value       Type
+
+=
+value  eval    set     lispval
+               setq
+_
+property       plist   setplist        list or nil
+list   get     putprop 
+_
+function       getd    putd    array, binary, list
+binding                def     or nil
+_
+print name     get_pname               string
+_
+hash link
+.TE
+.sh 3 list
+A list cell has two parts, called the car and cdr.
+List cells are created by the function 
+.i cons .
+.sp 1v
+.TS
+box center ;
+c | c | c | c .
+Subpart name   Get value       Set value       Type
+
+=
+car    car     rplaca  lispval
+_
+cdr    cdr     rplacd  lispval
+.TE
+.sh 3 binary
+This type acts as a function header for machine coded functions.
+It has two parts, a pointer to the start of the function and a
+symbol whose print name describes the 
+argument
+.i discipline .
+The discipline (if 
+.i lambda ,
+.i macro 
+or 
+.i nlambda )
+determines whether the arguments to this function will be evaluated
+by the caller
+before this function is called.
+If the discipline is a string (either 
+"\fIsubroutine\fP",
+"\fIfunction\fP",
+"\fIinteger-function\fP",
+or
+"\fIreal-function\fP")
+then this function is
+a foreign subroutine or function (see \(sc8.4 for more details on this).
+Although the type of the 
+.i entry 
+field of a binary type object is either string or fixnum,
+the object pointed to
+is actually a sequence of machine instructions.
+.br
+Objects of type binary are created by 
+.i mfunction .
+.sp 1v
+.TS
+box center ;
+c | c | c | c .
+Subpart name   Get value       Set value       Type
+
+=
+entry  getentry                string or fixnum
+_
+discipline     getdisc putdisc symbol or fixnum
+.TE
+.sh 3 fixnum
+A fixnum is an integer constant in the range \(mi2\*[31\*] to
+2\*[31\*]\(mi1.
+Small fixnums (-1024 to 1023) are stored in a special table so they needn't be
+allocated each time one is needed.
+.sh 3 flonum
+A flonum is a double precision real number in the range 
+\(+-2.9\(mu10\*[-37\*] to \(+-1.7\(mu10\*[38\*].
+There are approximately sixteen decimal digits of precision.
+.sh 3 bignum
+A bignum is an integer of potentially unbounded size.
+When integer arithmetic exceeds the limits mentioned above the calculation
+is automatically  done with bignums.
+Should calculation with bignums give a result which can be represented
+as a fixnum, then the fixnum representation will be used\*[\(dg\*].
+.(f
+\*[\(dg\*]The current algorithms for integer arithmetic operations will return
+(in certain cases) a result 
+between \(+-2\*[30\*] and 2\*[31\*] as a bignum although this
+could be represented as a fixnum.
+.)f
+This contraction is known as
+.i integer
+.i normalization .
+Many Lisp functions assume that integers are normalized.
+If the user chooses to rewrite the bignum package
+he should take
+this into account.
+.sp 3v
+The functions used for the extraction and modification of
+parts of bignums may change from what is shown in the table sometime in
+the future.
+.sp 1v
+.TS
+box center ;
+c | c | c | c .
+Subpart name   Get value       Set value       Type
+
+=
+i      car     rplaca  unboxed integer
+_
+CDR    cdr     rplacd  bignum or
+                       the symbol nil
+.TE
+.sh 3 string
+A string is a null terminated sequence of characters.
+Most functions of symbols which operate on the symbol's print name will
+also work on strings.
+The default reader syntax is set so that a string object
+is surrounded by double quotes.
+.sh 3  port
+A port is a structure which the system I/O routines can reference to
+transfer data between the Lisp system and external media.
+Unlike other Lisp objects there are a very limited number of ports (20).
+Ports are allocated by 
+.i infile 
+and 
+.i outfile 
+and deallocated by 
+.i close 
+and 
+.i resetio .
+.sh 3 array
+Arrays are rather complicated types and are fully described in
+\(sc9.
+An array consists of a block of contiguous data, a function
+to reference that data and auxiliary fields for use by the referencing
+function.
+Since an array's referencing function is created by the user, an array can
+have any form the user chooses (e.g. n-dimensional, triangular, or hash
+table).
+.br
+Arrays are created by the function
+.i marray .
+.sp 1v
+.TS
+box center ;
+c | c | c | c .
+Subpart name   Get value       Set value       Type
+
+=
+access function        getaccess       putaccess       binary, list
+                       or symbol
+_
+auxiliary      getaux  putaux  lispval
+_
+data   arrayref        replace block of contiguous
+               set     lispval
+_
+length getlength       putlength       fixnum
+_
+delta  getdelta        putdelta        fixnum
+.TE
+.sh 3 value
+A value cell contains a pointer to a lispval.
+This type is used mainly by arrays of general lisp objects.
+Value cells are created with the 
+.i ptr
+function.
+.sh 3 hunk
+A hunk is a vector of from 1 to 128 lispvals.
+Once a hunk is created (by 
+.i hunk 
+or 
+.i makhunk ) 
+it cannot grow or shrink.
+The access time for an element of a hunk is slower than a list cell element
+but faster than an array.
+Hunks are really only allocated in sizes which are powers of two, but 
+can appear to the user to be any size in the 1 to 128 range.
+Users of hunks must realize that \fI(not\ (atom\ 'lispval))\fP
+will return true if 
+.i lispval
+is a hunk.
+Most lisp systems do not have a direct test for a list cell and instead use
+the above test and assume that 
+a true result means 
+.i lispval 
+is a list cell.
+In
+.Fr
+you can use
+.i dtpr
+to check for a list cell.
+Although hunks are not list cells, you can still access the first two
+hunk elements with 
+.i cdr
+and
+.i car
+and you can access any hunk element with
+.i cxr \*[\(dg\*].
+.(f
+\*[\(dg\*]In a hunk, the function 
+.i cdr
+references the first element 
+and 
+.i car
+the second.
+.)f
+You can set the value of the first two elements of a hunk with 
+.i rplacd
+and 
+.i rplaca
+and you can set the value of any element of the hunk with 
+.i rplacx .
+A hunk is printed by printing its contents surrounded by { and }.
+However a hunk cannot be read in in this way in the standard lisp system.
+It is easy to write a reader macro to do this if desired.
+.sh 2 Documentation Conventions.
+The conventions used in the following chapters were designed to
+give a great deal of information in a brief
+space.
+The first line of a function description contains the function
+name in \fBbold\ face\fP and then lists the arguments, if any.
+The arguments all have names which begin with a letter and an underscore.
+The letter gives the allowable type(s) for that argument according to
+this table.
+.sp 1v
+.TS
+box center ;
+c  | c 
+l | l .
+Letter Allowable type(s)
+
+=
+g      any type
+_
+s      symbol (although nil may not be allowed)
+_
+t      string
+_
+l      list (although nil may be allowed)
+_
+n      number (fixnum, flonum, bignum)
+_
+i      integer (fixnum, bignum)
+_
+x      fixnum
+_
+b      bignum
+_
+f      flonum
+_
+u      function type (either binary or lambda body)
+_
+y      binary
+_
+a      array
+_
+v      value
+_
+p      port (or nil)
+_
+h      hunk
+.TE
+
+In the first line of a function description 
+those arguments preceded by a quote mark are evaluated (usually 
+before the function is called).
+The quoting convention is used so that we can give a name to the result of
+evaluating the argument and we can describe the allowable types.
+If an argument is not quoted it does not mean that that argument will
+not be evaluated, but rather that 
+if it is evaluated the time at which it is evaluated
+will be specifically mentioned in the function description.
+Optional arguments are surrounded by square brackets.
+An ellipsis means zero or more occurrences of an argument of the 
+directly preceding
+type.
diff --git a/usr/doc/lisp/ch10.n b/usr/doc/lisp/ch10.n
new file mode 100644 (file)
index 0000000..459cede
--- /dev/null
@@ -0,0 +1,258 @@
+.Lc Exception\ Handling 10
+.sh 2 Errset\ and\ Error\ Handler\ Functions 10
+.pp
+.Fr
+allows the user to handle in a number of ways the errors
+which arise during computation.
+One way is through the use of the
+.i errset
+function.
+If an error occurs during the evaluation of the 
+.i errset 's
+first argument, then
+the locus of control will return to the errset which will
+return nil (except in special cases, such as
+.i err ).
+The other method of error handling is through an error handler 
+function.
+When an error occurs, the interrupt handler is called and 
+is given as an argument a description  of the
+error which just occured.
+The error handler may take one of the following actions:
+.nr $p 0
+.np
+it could take some drastic action like a 
+.i reset 
+or a 
+.i throw .
+.np
+it could, assuming that the error is continuable,
+cause a  value to be returned from the error handler
+to the function which noticed the error.
+The error handler indicates that it wants to return a value from
+the error by returning a list whose 
+.i car
+is the value it wants to return.
+.np
+it could decide not to handle the error and return a non-list to
+indicate this fact.
+.sh 2 "The Anatomy of an error"
+.pp
+Each error is described by a list of these items:
+.nr $p 0
+.np
+error type - This is a symbol which indicates the 
+general classification of the error.
+This classification may determine which function handles this
+error.
+.np
+unique id - This is a fixnum unique to this error.
+.np
+continuable - If this is non-nil then this error is continuable.
+There are some who feel that every error should be continuable
+and the reason that some (in fact most) errors in 
+.Fr
+are not continuable is due to the laziness of the programmers.
+.np
+message string - This is a symbol whose print name is  a 
+message describing the error.
+.np
+data - There may be from zero to three lisp values which help
+describe this particular  error.
+For example, the unbound variable error contains one datum value,
+the symbol whose value is unbound.
+The list describing that error might look like:
+.br
+.ce
+(ER%misc 0 t |Unbound Variable:| foobar)
+.sh 2 "Error handling algorithm"
+.pp
+This is the sequence of operations which is done when an
+error occurs:
+.nr $p 0
+.np
+If the symbol 
+.b ER%all 
+has a non nil value
+then this value is the name of an error handler function.
+That function is called with a description of the error.
+If that function returns (and of course it may choose not to)
+and the value is a list and this error is continuable, then
+we return the
+.i car
+of the list to the function which called the error.
+Presumably the function  will use this value to retry the operation.
+On the other hand, if the error handler returns a non list, then
+it has chosen not to handle this error, so  we go on to step (2).
+Something special happens before we call the 
+.b ER%all 
+error
+handler which does not happen in any of the
+other cases we will describe below.
+To help insure that we don't get infinitely recursive 
+errors  if 
+.b ER%all 
+is set to a bad value,
+the value of 
+.b ER%all 
+is set to nil before the 
+handler is called.
+Thus it is the responsibility of the 
+.b ER%all 
+handler to `reenable'
+itself by storing its name in 
+.b ER%all.
+.np
+Next the specific error handler for the type of error 
+which just occured is called  (if one exists) to see if 
+it wants to handle the error.
+The names of the handlers for the specific types of errors are stored
+as the values of the symbols whose names are the types.
+For example the handler for miscellaneous errors is stored as the
+value of 
+.b ER%misc.  
+Of course, if 
+.b ER%misc 
+has a value of nil, then there is not error
+handler for this type of error.
+Appendix B contains list of all error types.
+The process of classifying the errors is not complete and thus most
+errors are lumped into the \fBER%misc\fP category.
+Just as in step (1),
+the error handler function may choose not to handle the error
+by returning a non-list, and then we go to step (3).
+.np
+Next a check is made to see if there is an 
+.i errset
+surrounding this error.
+If so the second argument to the 
+.i errset
+call 
+is examined. 
+If the second argument was not given or is non nil
+then the error message associated with this error is printed
+Finally  the stack is popped 
+to the context of the 
+.i errset
+and then the
+.i errset 
+returns nil.
+If there was no
+.i errset
+we go to step (4).
+.np
+If the symbol 
+.b ER%tpl 
+has a value then it is the
+name of and error handler which is called in a manner similar
+to the that discussed above.
+If it chooses not to handle the error, we go to step (5).
+.np
+At this point it has been determined that the user doesn't 
+want to handle this error.
+Thus the error message is printed out and
+a 
+.i reset
+is done to send the flow of control to the top-level.
+.pp
+To summarize the error handling system:
+When an error occurs, you have two chances to handle it before
+the search for an
+.i errset
+is done.
+Then, if there is no
+.i errset ,
+you have one more chance to handle the error before control
+jumps to the top level.
+Every  error handler works in the same way:
+It is given a description of the error (as described in the
+previous section).
+It may or may not return.
+If it returns, then it returns
+either a list or a non-list.
+If it returns a list and the error is continuable, then 
+the 
+.i car
+of the list is returned to the function which noticed the error.
+Otherwise the error handler has decided not to handle the error
+and we go on to something else.
+.sh 2 "Default aids"
+.pp
+There are two standard error handlers  which will probably 
+handle the needs of most users.
+One of these is the lisp coded function
+.i break-err-handler
+which is the default value of 
+.b ER%tpl.
+Thus when all other handlers have ignored an error, 
+.i break-err-handler
+will take over.
+It will print out the error message and 
+go into a read-eval-print loop.
+For a further discussion of 
+.i break-err-handler ,
+see section xx.
+The other standard error handler is 
+.i debug-err-handler .
+This handler is designed to be connected to
+.b ER%all .
+It is useful if your program uses
+.i errset
+and you want to 
+look at the error 
+it is thrown up to the
+.i errset .
+.sh +0 Autoloading
+.pp
+When 
+.i eval ,
+.i apply 
+or 
+.i funcall
+are told to call an undefined function, an \fBER%undef\fP
+error is signaled.
+The default handler for this error is 
+.i undef-func-handler .
+This function checks the property list of the undefined function for
+the indicator autoload.
+If present, the value of that indicator should be the name of the file
+which contains the definition of the undefined function.
+.i Undef-func-handler
+will load the file and check if it has defined the function which caused
+the error.
+If it has, the error handler will return and the computation will continue
+as if the error did not occur.
+This provides a way for the user to tell the lisp system about the location
+of commonly used functions.
+The trace package sets up an autoload property to point to /usr/lib/lisp/trace.
+.sh +0 Interrupt\ processing
+.pp
+The  UNIX operating system provides one user interrupt character which
+defaults to ^C.\*[\(dg\*].
+.(f
+\*[\(dg\*]Actually there are two but the lisp system does not allow you
+to catch the QUIT interrupt.
+.)f
+The user may select a lisp function to run when an interrupt occurs.
+Since this interrupt could occur at any time, and in particular could
+occur at a time when the internal stack pointers were in an inconsistent
+state, the processing of the interrupt may be delayed until a safe
+time.
+When the first ^C is typed, the lisp system sets a flag that an interrupt
+has been requested.
+This flag is  checked at safe places within the interpreter
+and in the
+.i qlinker
+function.
+If the lisp system doesn't respond to the first ^C, another ^C should
+be typed.
+This will cause all of the transfer tables to be cleared forcing
+all calls from compiled code to go through the 
+.i qlinker 
+function where the interrupt flag will be checked.
+If the lisp system still doesn't respond, a third ^C will cause 
+an immediate interrupt.
+This interrupt will not necessarily be in a safe place so the
+user should
+.i reset
+the lisp system as soon as possible.
diff --git a/usr/doc/lisp/ch11.n b/usr/doc/lisp/ch11.n
new file mode 100644 (file)
index 0000000..0681409
--- /dev/null
@@ -0,0 +1,219 @@
+.Lc The\ Joseph\ Lister\ Trace\ Package 11
+.de Tf
+.sp 2v
+.ti -.5i
+\fB\\$1\fP - 
+..
+.pp
+The Joseph Lister\*[\(dg\*] Trace package is an 
+important tool for the interactive debugging of a Lisp
+program.
+.(f
+\*[\(dg\*]\fILister, Joseph\fP\ \ \ \ 
+1st Baron Lister of Lyme Regis,
+1827-1912; English surgeon: introduced antiseptic surgery.
+.)f
+It allows you to examine selected  calls to a function or functions, and
+optionally to stop execution of the Lisp program to examine the values
+of variables.
+.pp
+The trace package is a set of Lisp programs located in the Lisp program 
+library (usually in the file /usr/lib/lisp/trace.l).
+There are two user callable functions  in the trace package: 
+.i trace  
+and 
+.i untrace .
+The trace package will be loaded automatically when you first use the
+.i trace 
+function. 
+Both 
+.i trace and 
+.i untrace 
+are nlambdas (their arguments are not evaluated).
+The form of a call to 
+.i trace
+is 
+.br
+.tl ''\fB(trace \fIarg1 arg2 ...\fB)\fR''
+where the 
+.i argi
+have one of the following forms:
+.in .75i
+.Tf "foo"
+when foo is entered and exited, the trace information will be printed.
+.Tf "(foo break)"
+when foo is entered and exited the trace information will be printed.
+Also, just after the trace information for foo is printed upon entry,
+you will be put in  a special break loop.
+The prompt is `T>' and you may type any Lisp expression, and see its
+value printed.
+The 
+.i i th 
+argument to the function just called can be accessed as (arg \fIi\fP).
+To leave the trace loop, just type ^D or (tracereturn)
+and execution will continue.
+Note that ^D will work only on UNIX systems.
+.Tf "(foo if expression)"
+when foo is entered and the expression evaluates to non-nil, then the
+trace information will be printed for both exit and entry.
+If expression evaluates to nil, then no trace information will be
+printed.
+.Tf "(foo ifnot expression)"
+when foo is entered and the expression evaluates to nil, then the
+trace information will be printed for both entry and exit.
+If both \fBif\fP and 
+.b ifnot 
+are specified, then the 
+.b if 
+expression must evaluate
+to non nil AND the 
+.b ifnot 
+expression must evaluate to nil for the trace
+information to be printed out.
+.Tf "(foo evalin expression)"
+when foo is entered and after the entry trace information is printed,
+expression will be evaluated. 
+Exit trace information will be printed when foo exits.
+.Tf "(foo evalout expression)"
+when foo is entered, entry trace information will be printed.
+When foo exits, and before the exit trace information is printed,
+expression will be evaluated.
+.Tf "(foo evalinout expression)"
+this has the same effect as (trace (foo evalin expression evalout expression)).
+.Tf "(foo lprint)"
+this tells 
+.i trace 
+to use the level printer when printing the arguments to
+and the result of  a call to foo.
+The level printer prints only the top levels of list structure. 
+Any structure
+below three levels is printed as a &.
+This allows you to trace functions with massive arguments or results.
+.sp 2v
+.pp
+The following trace options permit one to have greater control over each
+action which takes place when a function is traced.
+These options are only meant to be used by people who need special hooks
+into the trace package.
+Most people should skip reading this section.
+.in .75i
+.Tf "(foo traceenter tefunc)"
+this tells 
+.i trace 
+that the function to be called when foo is entered is 
+tefunc.
+tefunc should be a lambda of two arguments, the first argument will be 
+bound to the name of the function being traced, foo in this case.
+The second argument will be bound to the list of arguments to which 
+foo should be applied.
+The function tefunc should print some sort of "entering foo" message.
+It should not apply foo to the arguments, however. 
+That is done later on.
+.Tf "(foo traceexit txfunc)"
+this tells 
+.i trace 
+that the function to be called when foo is exited is
+txfunc.
+txfunc should be a lambda of two arguments, the first argument will be
+bound to the name of the function being traced, foo in this case.
+The second argument will be bound to the result of the call to foo.
+The function txfunc should print some sort of "exiting foo" message.
+.Tf "(foo evfcn evfunc)"
+this tells 
+.i trace 
+that the form evfunc should be evaluated to get the value
+of foo applied to its arguments.  
+This option is a bit different from the other special options since evfunc
+will usually be an expression, not just the name of a function, and that
+expression will be specific to the evaluation of function foo.
+The argument list to be applied will be available as T-arglist.
+.Tf "(foo printargs prfunc)"
+this tells 
+.i trace 
+to used prfunc to print the arguments  to be
+applied to the function foo.
+prfunc should be a lambda of one argument.
+You might want to use this option if you wanted a print function which could
+handle circular lists.
+This option will work only if you do not specify your own 
+.b traceenter 
+function.
+Specifying the option 
+.b lprint 
+is just a simple way of changing the printargs
+function to the level printer.
+.Tf "(foo printres prfunc)"
+this tells 
+.i trace 
+to use prfunc to print the result of evaluating foo.
+prfunc should be a lambda of one argument.
+This option will work only if you do not specify your own 
+.b traceexit 
+function.
+Specifying the option 
+.b lprint 
+changes printres to the level printer.
+.sp 2v
+.pp
+You may specify more than one option for each function traced.  
+For example:
+.sp 1v
+.ti .5i
+\fI(trace (foo if\ (eq 3 (arg 1)) break lprint) (bar evalin (print xyzzy)))\fP
+.sp 1v
+This tells 
+.i trace 
+to trace two more functions, foo and bar.
+Should foo be called with the first argument 
+.i eq
+to 3, then the entering foo message will be printed with the level printer.
+Next it will enter a trace break loop, allowing you to evaluate any 
+lisp expressions.
+When you exit the trace break loop, foo will be applied to its arguments
+and the resulting value will be printed, again using the level printer.
+Bar is also traced, and each time bar is entered, an entering bar message
+will be printed and then the value of xyzzy will be printed.
+Next bar will be applied to its arguments and the result will be printed.
+If you tell 
+.i trace 
+to trace a function which is already traced, it will first
+.i untrace 
+it.  Thus if you want to specify more than one trace option for
+a function, you must do it all at once.
+The following is 
+.i not 
+equivalent to the preceding call to 
+.i trace 
+for foo:
+.sp 1v
+\fI(trace (foo if (eq 3 (arg 1))) (foo break) (foo lprint))\fP
+.sp 1v.
+In this example, only the last option, lprint, will be in effect.
+.pp
+The function 
+.i trace 
+returns a list of functions is was able to trace.
+The function 
+.i untrace 
+untraces those functions its is argument list.
+If the argument list is empty then all functions being traced are untraced.
+.i Untrace 
+returns a list of functions untraced.
+.pp
+Generally the trace package has its own internal names for the the lisp
+functions it uses, so that you can feel free to trace system functions like
+.i cond 
+and not worry about adverse interaction with the actions of the trace
+package.
+You can trace any type of function: lambda, nlambda, lexpr or macro whether
+compiled or interpreted and you can even trace array references (however
+you should not attempt to store in an array which has been traced).
+.pp
+When tracing compiled code keep in mind that many function calls are translated 
+directly to machine language  or other equivalent  function calls.
+A full list of open coded functions is listed at the beginning of the 
+liszt compiler source.
+.i Trace 
+will do a \fI(sstatus\ translink\ nil)\fP to insure that the 
+new traced definitions it defines are called instead of the old untraced ones.
+You may notice that compiled code will run slower after this is done.
diff --git a/usr/doc/lisp/ch12.n b/usr/doc/lisp/ch12.n
new file mode 100644 (file)
index 0000000..395d3cc
--- /dev/null
@@ -0,0 +1,490 @@
+.Lc Liszt\ -\ the\ lisp\ compiler 12
+.sh 2 "General strategy of the compiler" \n(ch 1
+.pp
+The purpose of the lisp compiler, Liszt, is to create an object module which
+when brought into the lisp system using
+.i fasl
+will have the same effect as bringing in the corresponding lisp coded source
+module with
+.i load  
+with one important exception,
+functions will be defined as sequences of machine language instructions, instead
+of lisp S-expressions.
+Liszt is not a function compiler, it is a 
+.i file
+compiler.
+Such a file   can contain more than function definitions; it can
+contain other lisp S-expressions which are evaluated
+at load time.
+These other S-expressions will also be stored in the object
+module produced by Liszt and will be evaluated at fasl time.
+.pp
+As is almost universally true of Lisp compilers, the main pass of Liszt
+is written in Lisp.
+A subsequent pass is the assembler, for which we use the 
+standard UNIX assembler.
+.sh 2 "Running the compiler"
+.pp
+The compiler is normally run in this manner:
+.br
+% \fBliszt foo\fP
+.br
+will compile the file foo.l or foo (the preferred way to indicate a lisp 
+source file is to end the file name with `.l').
+The result of the compilation will be placed in the file foo.o  if no
+fatal errors were detected.
+All messages which Liszt generates go to the standard output.
+Normally each function name is printed before it is compiled (the \-q
+option suppresses this).
+.sh 2 "Special forms"
+.pp
+Liszt makes one pass over the source file. 
+It processes each form in this way:
+.sh 3  macroexpansion
+If the form is a macro invocation (i.e it is a list whose car is a symbol
+whose function binding is a macro), then that macro invocation is expanded.
+This is repeated until the top level form is not a macro invocation.
+When Liszt begins, there are already some macros defined, in fact some
+functions (such as defun) are actually macros.
+The user may define his own macros as well.
+For a macro to be used it must be defined in the Lisp system
+in which Liszt runs.
+.sh +0 classification
+After all macro expansion is done, the form is classified according to its
+.i car 
+(if the form is not a list, then it is classified as an
+.i other ).
+.sh +1 "eval-when"
+The form of eval-when is 
+\fI(eval-when\ (time1\ time2\ ...)\ form1\ form2\ ...)\fP
+where the time\fIi\fP are one of 
+.i eval ,
+.i compile ,
+or
+.i load .
+The compiler examines the form\fIi\fP in sequence and the action taken
+depends on what is in the time list.
+If 
+.i compile
+is in the list then the compiler will invoke 
+.i eval
+on each form\fIi\fP as it examines it.
+If 
+.i load
+is in the list then the compile will recursively call itself to compile
+each form\fIi\fP as it examines it.
+Note that if 
+.i compile
+and
+.i load
+are in the time list, then the compiler will both evaluate and compile
+each form.
+This is useful if you need a function to be defined in the compiler
+at both compile time (perhaps to aid macro expansion) and at run time
+(after the file is 
+.i fasl ed 
+in).
+.sh +0 "declare"
+Declare is used to provide information about functions and variables to
+the compiler.  
+It is (almost) equivalent to \fI(eval-when\ (compile)\ ...)\fP.
+You may declare functions to be one of three types: lambda (*expr),
+nlambda (*fexpr), lexpr (*lexpr).
+The names in parenthesis are the Maclisp names and are accepted by the
+compiler as well (and not just when the compiler is in Maclisp mode).
+Functions are assumed to be lambdas until they are declared otherwise
+or are defined differently.  
+The compiler treats calls to lambdas and lexprs equivalently, so you needn't 
+worry about declaring lexprs either.  
+It is important to declare nlambdas or define them before calling them.
+Another attribute you can declare for a function is localf which
+makes the function `local'.
+A local function's name is 
+known only to the functions defined
+within the file itself.  The
+advantage of a local function is that is can be entered 
+and exited very quickly and it can have the same name as a function in 
+another file and there will be no name conflict.
+.pp
+Variables may be declared special or unspecial.
+When a special variable is lambda bound (either in a lambda,
+prog or do expression), its old value is stored away on a stack for the
+duration of the lambda, prog or do expression.
+This takes time and is often not necessary.
+Therefore the default classification for variables is unspecial.
+Space for unspecial variables is dynamically allocated on a stack.
+An unspecial variable can only be accessed from within the function
+where it is created by its presence in a lambda, prog or do 
+expression variable list.
+It is possible to declare that all variables are special as will be
+shown below.
+.pp
+You may declare any number of things in each declare statement.
+A sample declaration is 
+.ft I
+.nf
+(declare
+\ \ \ \ \ (lambda func1 func2)
+\ \ \ \ \ (*fexpr func3)
+\ \ \ \ \ (*lexpr func4)
+\ \ \ \ \ (localf func5)
+\ \ \ \ \ (special var1 var2 var3)
+\ \ \ \ \ (unspecial var4))
+.fi
+.ft R
+.pp
+You may also declare all variables to be special with
+\fI(declare\ (specials\ t))\fP.
+You may declare that macro definitions should be compiled as well as
+evaluated at compile time by \fI(declare\ (macros\ t))\fP.
+In fact, as was mentioned above, declare is much like 
+\fI(eval-when\ (compile)\ ...)\fP.
+Thus if the compiler sees \fI(declare\ (foo\ bar))\fP
+and foo is defined, then it will evaluate \fI(foo\ bar)\fP.
+If foo is not defined then an undefined declare attribute warning will
+be issued.  
+.sh +0 "(progn 'compile \fRform1 form2 ... formn\fB)\fP"
+.pp
+When the compiler sees this it simply compiles form1 through formn as if
+they too were seen at top level.
+One use for this is to allow a macro at top-level to 
+expand into more than one function definition for the compiler to compile.
+.sh +0 "include/includef"
+.pp
+.i Include 
+and 
+.i includef 
+cause another file to be read and compiled by
+the compiler.  The result is the same as if the included file were
+textually inserted into the original file.  The only difference
+between 
+.i include 
+and 
+.i includef 
+is that include doesn't evaluate its
+argument and includef does.  Nested includes are allowed.
+.sh +0 "def"
+.pp
+A def form is used to define a function.  The macros
+.i defun 
+and 
+.i defmacro 
+expand to a def form.
+If the function being defined is a lambda, nlambda or lexpr then
+the compiler converts the lisp definition to a sequence of machine
+language instructions.
+If the function being defined is a macro, then the compiler will evaluate
+the definition, thus defining the macro withing the running Lisp compiler.
+Furthermore, if the variable 
+.i macros 
+is set to a non nil value, then the macro definition will also be translated
+to machine language and thus will be defined when the object file is
+fasled in.
+The variable
+.i macros
+is set to t by
+\fI(declare\ (macros\ t))\fP.
+.pp
+When a function or macro definition is compiled, macro expansion is
+done whenever possible.
+If the compiler can determine that a form would be evaluated if this
+function were interpreted then it will macro expand it.
+It will not macro expand arguments to a nlambda unless the characteristics
+of the nlambda is known (as is the case with
+.i cond).
+The map functions (
+.i map ,
+.i mapc ,
+.i mapcar ,
+and so on)
+are expanded to a 
+.i do 
+statement.
+This allows the first argument to the map function to be a lambda
+expression which references local variables of the function being
+defined.
+.sh +0 "other forms"
+.pp
+All other forms are simply stored in the object file and are evaluated
+when the file is 
+.i fasl ed
+in.
+.sh 2 "Using the compiler"
+.pp
+The previous section describes exactly what the compiler does with its 
+input.
+Generally you won't have to worry about all that detail as files which
+work interpreted will work compiled.
+Following is a list of steps you should follow to insure that a file
+will compile correctly.
+.ip [1]
+Make sure all macro definitions precede their use in functions or other
+macro definitions.
+If you want the macros to be around when you 
+.i fasl
+in the object file you should include this statement at the beginning
+of the file: \fI(declare\ (macros\ t))\fP
+.ip [2]
+Make sure all nlambdas are defined or declared before they are used.
+If the compiler comes across a call to a
+function which has not been defined in the current file, 
+which does not currently have a function binding, 
+and whose type  has not been declared then it will assume that the function
+needs  its arguments evaluated 
+(i.e. it is a lambda or lexpr) and will generate code
+accordingly.
+This means that you do not have to declare nlambda functions like
+.i status
+since they have an nlambda function binding.
+.ip [3]
+Locate all variables which are used for communicating values between
+functions.
+These variables must be declared special at the beginning of a file.
+In most cases there won't be many special declarations but if you 
+fail to declare a variable special that should be, the compiled code
+could fail in mysterious ways.
+Let's look at a common problem, assume that a file contains just
+these three lines:
+.sp 2v
+.ft I
+(def aaa (lambda (glob loc) (bbb loc)))
+.br
+(def bbb (lambda (myloc) (add glob myloc)))
+.br
+(def ccc (lambda (glob loc) (bbb loc)))
+.sp 2v
+.ft R
+We can see that if we load in these two definitions then (aaa 3 4) is
+the same as (add 3 4) and will give us 7.
+Suppose we compile the file containing these definitions.
+When Liszt compiles aaa, it will assume that both glob and loc are local
+variables and will allocate space on the temporary stack for their values
+when aaa is called.
+Thus the values of the local variables glob and loc 
+will not affect the values of the symbols glob and loc in the Lisp system.
+Now Liszt moves on to function bbb.
+Myloc is assumed to be local.
+When it sees the add statement, it find a reference to a variable called
+glob.
+This variable is not a local variable to this function and therefore
+glob must refer to the value of the symbol glob.
+Liszt will automatically declare glob to be special and it will print
+a warning to that effect.
+Thus subsequent uses of glob will always refer to the symbol glob.
+Next Liszt compiles ccc and treats glob as a special and loc
+as a local.
+When the object file is
+.i fasl 'ed
+in, and (ccc 3 4) is evaluated, 
+the symbol glob will be lambda bound to 3
+bbb will be called and will return 7.
+However (aaa 3 4) will fail since when bbb is called, glob will be unbound.
+What should be done here is to put
+\fI(declare\ (special\ glob)\fP
+at the beginning of the file.
+.ip [4]
+Make sure that all calls to 
+.i arg
+are within the lexpr whose arguments they reference.
+If \fIfoo\fP is a compiled lexpr and it calls \fIbar\fP then \fIbar\fP cannot
+use \fIarg\fP to get at \fIfoo\fP's arguments.
+If both
+.i foo
+and 
+.i bar
+are interpreted this will work however.
+The macro
+.i listify
+can be used to put all of some of a lexprs arguments in a list which 
+then can be passed to other functions.
+.sh 2 "Compiler options"
+.pp
+The compiler recognizes a number of options which are described below.
+The options are typed anywhere on the command line preceded by a minus sign.
+The entire command line is scanned and all options recorded before any action
+is taken.  Thus
+.br
+% liszt -mx foo
+.br
+% liszt -m -x foo
+.br
+% liszt foo -mx
+.br
+are all equivalent.  
+The meaning of the options are:
+.ip \fBC\fP
+The assembler language output of the compiler is commented.
+This is useful when debugging the compiler and is not normally done since
+it slows down compilation.
+.ip \fBi\fP
+Compile this program in interlisp compatibility mode.  
+This is not implemented yet.
+.ip \fBm\fP
+Compile this program in Maclisp mode.
+The reader syntax will be changed to the Maclisp syntax and a file of 
+macro definitions will be loaded in (usually named /usr/lib/lisp/machacks).
+This switch brings us sufficiently close to Maclisp to allow us to compile
+Macsyma, a large Maclisp program.
+However Maclisp is a moving target and we can't guarantee that this switch
+will allow you to compile any given program.
+.ip \fBo\fP
+Select a different object file name.
+This is the only switch with an argument, which must follow the switch.
+For example
+.br
+% liszt foo -o xxx.o
+.br
+will compile foo and into xxx.o instead of the default foo.o.
+.ip \fBq\fP
+Run in quiet mode. 
+The names of functions being compiled and various 
+"Note"'s are not printed.
+.ip \fBS\fP
+Create an assembler language file only.
+.br
+% liszt -S foo
+.br
+will create the file assembler language file foo.s and will not attempt
+to assemble it.
+If this option is not specified, the assembler language file will be put
+in the temporary disk area under a automatically generated name based on
+the lisp compiler's process id.
+Then if there are no compilation errors, the assembler will be invoked to
+assemble the file.
+.ip \fBT\fP
+Print the assembler language output on the standard output file.
+This is useful when debugging the compiler.
+.ip \fBu\fP
+Run in UCI-Lisp mode.
+The character syntax is changed to that of UCI-Lisp and a UCI-Lisp compatibility
+package of macros is read in.
+.ip \fBw\fP
+Suppress warning messages.
+.ip \fBx\fP
+Create an cross reference file.
+.br
+% liszt -x foo 
+.br
+not only compiles foo into foo.o but also generates the file foo.x\ .
+The file foo.x  is lisp readable and lists for each function all functions
+which that function could call.
+The program lxref reads one or more of these ".x" files and produces a 
+human readable cross reference listing.
+.sh 2 "transfer tables"
+A transfer table is setup by 
+.i fasl 
+when the object file is loaded in.
+There is one entry in the transfer table for each function which is
+called in that object file.
+The entry for a call to the function 
+.i foo
+has two parts whose contents are:
+.ip [1] 
+function address \- 
+This will initially point to the internal  function 
+.i qlinker .
+It may some time in the future point to the function
+.i foo
+if certain conditions are satisfied (more on this  below).
+.ip [2]
+function name \-
+This is a pointer to the symbol
+.i foo .
+This will be used by 
+.i qlinker. 
+.sp 2v
+.lp
+When a call is made to the function 
+.i foo
+the call will actually be made to the address in the
+transfer table entry and will end up in the 
+.i qlinker
+function.
+.i Qlinker
+will determine that 
+.i foo 
+was the function being called by locating the function name
+entry in the transfer table\*[\(dg\*].
+.(f
+\*[\(dg\*]\fIQlinker\fP does this by tracing back the call stack until it
+finds the \fIcalls\fP machine instruction which called it.  The address
+field of the \fIcalls\fP contains the address of the transfer table entry.
+.)f
+If the function being called is not compiled then 
+.i qlinker
+just calls 
+.i funcall
+to perform the function call.
+If 
+.i foo 
+is compiled and if \fI(status\ translink)\fP is non nil, then 
+.i qlinker 
+will modify the function address part of the transfer table to point directly
+to the function 
+.i foo .
+Finally 
+.i qlinker
+will call 
+.i foo
+directly .
+The next time a call is made to 
+.i foo 
+the call will go directly to 
+.i foo 
+and not through
+.i qlinker .
+This will result in a substantial speedup in compiled code to compiled code
+transfers.
+A disadvantage is that no debugging information is left on the stack,
+so 
+.i showstack
+and
+.i baktrace
+are useless.
+Another disadvantage is that if you redefine a compiled function either
+through loading in a new version or interactively defining it, then
+the old version may still be called from compiled code if the fast linking
+described above has already been done.
+The solution to these problems is to use \fI(sstatus\ translink\ value)\fP.
+If value is 
+.ip \fInil\fP
+All transfer tables will be cleared, i.e. all function
+addresses will be set to point to 
+.i qlinker .
+This means that the next time a function is called 
+.i qlinker
+will be called and will look at the current definition.
+Also, no fast links will be set up since \fI(status\ translink)\fP
+will be nil.
+The end result is that 
+.i showstack
+and 
+.i baktrace 
+will work and the function definition at the time of call will always be used.
+.ip \fIon\fP
+This causes the lisp system to go through all transfer tables and set up
+fast links wherever possible.
+This is normally used after you have 
+.i fasl ed
+in all of your files. 
+Furthermore since \fI(status\ translink)\fP is not nil, 
+.i qlinker
+will make new fast links if the situation arises (which isn't likely unless
+you
+.i fasl
+in another file).
+.ip \fIt\fP
+This or any other value not previously mentioned will just make 
+\fI(status\ translink)\fP be non nil, and as a result fast links will
+be made  by 
+.i qlinker
+if the called function is compiled.
+.sh +0 "Fixnum functions"
+.pp
+The compiler will generate inline arithmetic code for fixnum only functions.
+Such functions include \(pl, \(mi, *,  /, 1\(pl and 1\-.
+The code generated will be much faster than using \fIadd\fP, \fIdifference\fP,
+etc.
+However it will only work if the arguments to and results of the functions
+are fixnums.
+No type checking is done.
diff --git a/usr/doc/lisp/ch12.t b/usr/doc/lisp/ch12.t
new file mode 100644 (file)
index 0000000..d4d7096
--- /dev/null
@@ -0,0 +1,419 @@
+@BCgï1AN\17o\80¶H3GÕH\ 6GëH\bGãH\aFLN\ 5`}       N\ 4`~    N\ 6{     EJN\10zGãH\ 2FLN\ 5`}GûH
+N\ 4`~G
+N\ 6{H
+EJN
+`zGßH$LN\ 4`~G$N\ 6{H$JN\10zGùH FLN\ 5`}GñH\vN\ 4`~G
+N\ 6{H   JN\f`dGùH        DELN\ 4r\bh\11h\ 3h\ 2h!h+N\ 2`q
+h3`h\ 4h\19h\ 2h\19h\ 2h\17h
+CJN\ fpGèH\ 2LN\ 5`}GüH$DN\ 1`gþG\ eN\ 1zHú\ 1CN\ 1`zGù$DN\ 3`lHù\15`p\ 6hGø\eCN\ 1rHþ$FJN\f`dGùH
+DELN\ 4`z\ ehGü\eN\ 3`lHýG\ 5N\ 1`zHüG\1f`p\vN\ 1züH\1dJN\ 6dGõ\ 6LN\ 3dHü\ 6N\ 2mü\eCJN\ e`}G÷H\ 1DLN\v`fGú\19N\ 1`cHý\ 6JN\ 5iGøH\19LN\ 3`lGýH\b`hû\eN\ 2uGüH\eCJN\f{G÷H$DLN\ 4rûG\11høH\ 2N\ 1zøG\ 5N\ 4`vü\15hýH\ 3hýG\11`pHüG\1dCJN\ 5`q÷H\ 5DLN\ 5iGýH\ 3CJN\ e`}GóH\19DLN\b`júG\ 5N\ 3{ü\1dhýH\11N\ 2`uGþ\1dJN\r`~øH\ 4Lh   h
+h.hG\bCFhHù\vEN\ 2iGýH>DN\ 2qGþH$hGý\fCN\ 1zHþ\ 6`hýG4DN\ 3{H       hGú\ 5N\ 1`kHý\ eC`hü5DJN\b`qGù\11LN\ 6`lü\1dJN\ 2m÷$LN\ 2`uýH\bhGþ\19JN\f{ö)LN\ 5mHûG\15FhHý\14CE`pþ\bDN\ 3{GùH$N\ 1rùG\ eJN\v`qðH\19LhG\19CN\ 1zHø$DN\ 5`uG\17N\ 4nüH\ eN\ 1zþG\19CJN\ euóH\ 5DLN\ 2b\ 1CN\ 3{ù\11DN\ 1`gG\1dN\a`gH%CFJN\f{GóH       DELN\ 4`cGü\ 2CN\ 1zHü\a`hüG\ eDN\ 3`lHþ\ 4N\ 1zGû\bCN\ 1rHü\19DJN\ e`qGõ\15LN\ 1cý\ 4N\ 4`zý\19N\ 1zHü\ 5hþG\eN\ 4`v\15CJN\rcøH\ 6DLN\ 1`oGüH\fhG%N\ 2`bHüG3N\ 4`~H.FN\ 3{G\ 3E`ûH\ 5N\ 1zùG\bN\ 1zùH\ 1hûG.CJN
+zøH\19DLN\ 2qGýH1hG\15hýH\19N\ 6{ý!hGý\11CN\ 1rH\ 3JN\10zGöH\bDLN\ 1gGþ\17N\ 1zHù\ 6C`pGüH$N\ 6û\ 2`hGû\ 3DN\ 3{üH\19hG\ 2JN\v`qûH\ eLN\ 5`uGý\bN\ 1cHþG\ 4FN\ 3dHþ\ 3EN\ 1`cýG\bJN\f{õ\ 6LhHþ\bCN\ 3{GüH\17DN\ 2`yGý\ 5N\ 5`qHý\eJN\b`mGú\ 6LN\ 4`~\ 1N\ 3`dþ\19N\ 1cý\ehHû\ 2hGþ\ 1CJN\ f`x÷H\11DLN\ 1gG\1d`pý\ 3`pHýG
+N\ 4`zû\bN\ 5qHûG\bN\ 1`z\ 6hûH\ 6CN\ 1`zû\19DJN\ eiGóH\ 3LN\ 3lüG\bN\ 2`qH\eCN\ 1cþ\f`hþG\ 3JN\ 4`~øH\ 6DLN\ 2`bGüH\ 3N\ 5iGüH\1dhüG\ehûH\ 5JN\rvGý\eLN\ 6ù\19`pHýG\19N\ 1c\19N\ 3`{Hû\11hG N\ 1cú\ 3`pHþG\19C`þH\1dDJN\r``~Gö\bL`pHûG\eChHý\ 4DN\ 1`gGü\aC`H\15DN\ 3lüG\11ChHþ\eDJN\ 6`pGóH\ 6LN\ 5m\1dCN\ 2mGý\ 6DN\ 3`lHþ\19`pú\ 5CJN\ e`}GðH\17DFLN\ 1`où\eEN\ 6`pGúH\15N\ 3`lü\bhþG\ 6N\ 1`zý\ 3N\ 1zHû\ 6C`hGøH\15DJN\r`vGùH\bLN\ 4`cG\b`pHýG\1dCN\ 1züH\eDN\ 3`dú\1dJN
+``~Gø'L`pû\ 5N\ 2qHûG\ 2C`ûH\ 5DN\ 2qþ\ 4N\ 1zýG\ 6CN\ 1rþ\ 3DN\ 2`yþ\bN\ 2mHýG hH\ 3JN\r`gGò\ 2LN\buþ\17N\ 2`qHü\ eCJN\fpGùH\eLN\ 3tGûH\15DN\ 4`cûG\1dhH\ 4hG\ 5N\ 4nHý\eN\ 1zGø\bhHþ
+N\ 1zýG\11C`üH\ 5DJN\ 2`uGø\15N\f{û\eLN\acþ\19CN\ 1rû%DN\ 4`gHúG\ 6hýH\ 2JN\r`~G÷H\15LN\ 1zGþ!N\ 2qHúG\ 4C`ûH\fDN\ 1`gýG\ 2`pHþG\eN\ 1cþ\eN\ 2`qúH
+N\ 1`zû\ 2CJN\r`kGúH\ 4DLN\ 2bGøH\1dC`pþ\17DN       düG\15`Hý N\ 1zþG$høH\19hûG\ 3`pþ\ eJN\r`~ú\ 2LN\ 5mú\ 1hHù\15N\ 5`qGý\ 2húH\ 1N\ 1cø\eC`hGøH\bJN
+`zGüH\eDLN\ 2`bGúH\19JN\ 6`pGþH\1dLhGú\ 1hþH\19N\ 5`uûG\1dN\ 1cþ\ 4N\ 3{û\ 5JN\vq÷
+CLN\ 1`kHù\1dDN\ 4`zGüH\ 5N\ 1zGü\ 2N\ 3dHø\b`hGýH\ eN\ 1`kGû%`pþ\1dJN\r`g÷H\19LN\ 1zøG\ 1N\ 2qú\15CN\ 4``~HûG\ 2N\ 6{ýH\ 2JN\10zGõH\11LN\ 5`}ú\1dDN\ 1`gGþ\ 6hûH\ 5hûG\bN\ 4`~HþG\ 4N\ 1rýH\15JN\viGõH\11CL`pý\eDN\ 5`uGþ\ 1CN\ 1rû\ 1DN\ 2qHù\19N\ 1`cGü3N\ 1cý\11JN\r`~ý\19LN\ 5mý\bhûH)N\ 5iþ\17hüG\ 5N\ 1zH  CN\ 1`zþ\1dDJN\ e`qGø\19LN\ 1cü\eN\ 2qHýG\ fC`H\ 4DN\ 2`bGûH!N\ 5iGþH\ 3N\ 1cü\ 2CJN\ fpGôH\ 6DLN      `|ùG\11N\ 2`qøH"N\ 1rûG\eJN\viô\1dLhHý\19C`pû\19DFN\ 4rGü\eE`pû!`pHþG\19N\ 6dþH\ 1hþG\eC`Hû\15JN\ 6{Gõ\19DLN\ 2`yþ\e`Hú\19N\ 1zGû\ 6hHþ\19hüG\ 5CJN\ e`fõH\ 5DLN\ 1`oGüH\15N\ 1zþG\bN\ 2qHýG\19JN\ 2`bô\19CLN\ 1zHþ\vDN\ 4rGý$N\ 2uHùG\ 6N\ 2`qøH\ eN\ 1rüG\15`pþ\b`pHûG\ 6CJN\ e`fòH\19DLN\ 1gûG\ eN\ 1zH\15CN\ 3{Gû\bDN\ 2`bHù\ 6N\ 4`vGùH   N\ 2`}Gþ\bC`Hú\ 2DJN\rnGô\19LN\ 4`cýH\19N\ 1`kùG\ 5N\ 3{ú\bFN\ 1`cHú\14EhGþ\bhH\19JN\r`~GøH\17LN\ 3lþG\bN\ 3{ý\19hHþ\ 2N\ 5`qGú\aJN\v`q÷H\ 2CL`pGþH\11DFN\ 5`uúG\14E`p\19C`ý\17DN\ 3dHûG        hþH\fCN\ 2mþ\19JN\10zGõH\1dDLN\ 1gGü\bN\azH\ 1N\ 3`lü\19hGú\ 2N\ 2mHûG\11`pHüG\19JN\r`góH\ 2LN\ 6GþH\15N\ 6{GýH\ e`pü\ 3JN\f{GùH\19LN\ 5`uýG\1dCN\ 1`cø\eDN\ 4vHúG\ 2CN\ 1`cýH%DJN\ e`qGõ\19LN\ 3`tHþG\eN\ 3`l\ 5`pHúG\1dN\ 3`{üH
+JN\viGúH\ eLhG\15`pü\fChHü\15DN\ 4`cGø\19N\ 4vHø\ 3JN\ 4`~GöH\17LN\ 1zGú\19N\ 5`qþH\19`pú\ 5JN\f`lGùH CLN\a`zGú\ 4DN\ 2`yHûG\ eN\ 1rþH\ 3N\ 1`kGú\eC`Hú)DJN\ e`qGõ    L`p\1d`pHüG\ eN\ 2qú\ 3N\b|Hý)hGþ\ 2`p\ 6`pý\17hHû\ 6JN\r`~G÷H\15CLN\ 1cü\ 3DN\ 4`zGûH\ 1`pû\18N\ 1zGü\ 6N\ 2`qH\ 2N\ 1`cGô\bhHþ `pþ\bJN\rvGø\19LN\ 6hþH$N\ 1zG\bN\ 3{\ 3`hHüG\ 6hûH\17JN\f{GõH\ 5LN\ 1züG\ 3N\ 5mHýG      N\ 6`l\e`pHýG\fCJN\fdòH\bDLN\ 1`gûG\19N\ 3dûH\ 5hüG\fN\ 4`v\ 4N\ 1`küH\11C`hGþH\eJN\ 6{Gû\11DLN\ 2qúH\11`hþ3JN\v`qGü\ 6LhHþ\ 5`pGýH\ eN\ 6GûH\1aN\ 4vGþ\ 6N\ 1rHø\ 2JN
+``~Gð\17LN\ 5mHûG\19`pHüG\eN\ 5iù\ 3`pHüG JN\r`~ø\ 2LhHþ)CN\ 1c\ 6DN\ 6hG\ 3N\ 4nüH\ 6N\ 1`kGü\ 2C`Hü\fDJN\biGùH\fFL`p\eCEN\ 1`zGþ\ 6DN\ 2qûH\15høG\1fN\ 1`cüH\15JN\fdGô\15LhHþ\ 3C`p\eDN\ 1`gýG\11N\b|üH\ 6hGþ\19hHý\eJN
+``~Gú\ 2LN\ 5mHþG\ 2`p\eCN\ 1rù\ 5DN\ 4`gHüG\19`pHþG\ 1JN\a`gúH\ eL`pGúH$N\ 1zþG\eN\ 3`{üH\bN\ 1zùG\ehùH\b`p\bJN\r`gGü\ 4LN\ 1cû\ 6N\ 5mHþG\19N\ 4vHý\bhýG\19CN\ 3`úH\ 2DJN\r``~Gû\ 5CLN\ 1zþH\ 3DN\ 1`gG\15CN\ 4``~\19DN\ 3dý$hþH\ 3JN\f{GöH\ 4L`pø\ 2hGø\eN\ 6HúG$N\ 6{      `pû\19JN\r`~ú\1dLN\ 5`uH\ 3N\ 1`kGý\1dN\ 2`qHþ\bhGü\1d`Hø\aN\ 1zGý\ 2N\ 1zHý)C`hGûH\ 1DJN\r`vG÷H\ 6LN\ 2`yGü\bN\ 3{HûG\17`p\ 5CN\ 1rû\1dDJN\b`uï\ eL`pHúG\19hüH\ 5N\azþG\ 4N\ 3{ý\b`Hý\ 2N\ 1cGþH\b`pGþH\bJN\fdGý\ 3LN\ 4`cùH\17hG\ 2hHû.JN\ 3dGù\bLN     wú\15CN\ 1`cHû\19DJN\ eiGôH\15LN\azýG\eN\ 3düH\ 6hGý\15N\ 1`cHþ\19hGþ\bhH\ 2hüG\ 5JN\r`~û\15LN\ 6ý\19N\ 5iû.hHú     CTGN\ 5bùH3DRGJN\11`fü\bLN\ 6hHþ\ 2N\ 4`~GúH\b`hý\15N\ 2`}Gþ\ 6JN\rvõH\ 2LN\ 6ú\ 1N\ 6`lGþH\19JN\r`~GúH\17LhGû  N\ 1zþH6N\ 1`gG\eN\ 2`qH\ 6N\ 1zýG\1d`pHýG\15N\ 3{ý\ 5N\ 1`cþH"hûG\e`pù\bJN\ eqú\ 2LN\ 1c
+N\ 5mHüG N\ 5`qýH\19CN\ 2mþ\17DJN\r`vGõH\ 1LN\ 5mGüH\eN\ 4`gýG\ 5`Hû\ 3hGù\ 1`pHùG\fJN\fdôH\1dLN\ 1c\fN\ 5mGýH\19N\ 1zG\ 5N\ 5`qHû\ 4hGù\11JN\r`~ù)LN\ 2`bþ\1fN\arþH\ 2hýG)N\ 1`zþ\ ehHý\ ehüG\ eCN\ 1rüH\eTGN\ 3tHüG\ 6DRJN\10cô\ 6LN\ 5mHüG$N\ 1cú\ 5FN\ 4nHù\14EJN\fdGô
+LhHþ\e`pGûH\19N\ 5mGþH\ 3N\ 1zøG\fN\ 4nüH  JN
+nGõ\ 3LN\ 6`pý)N\ 2`qHû\ 1N\ 1rýG\19CTN\ 5`j\bDRJN\10zòH\ 2LN\ 1`gGþ\19N\ 3`lHþG\eN\ 5`qþH\19hüG\1dCN\ 1rHý\ 4DJN\ 2mGöH\ 3LhýG\ 3JN\f`lô\19LhHþ\bN\ 6`p\1dN\ 4``~Gû\bN\ 2u\17JN\fdüH\ 1LN {GûH\19húG\ 2N\ 2mý\17CTN\ 4g\aDRJN\10cú     LN\ 2qú\1dFN\ 3{HüG\ 3E`pú\eN\ 5`qHý\ 3JN\f`lGøH$LhûG\bN\ 6hýH\19N\ 4vGü\1d`Hú!`pGùH\ 6hýG\17JN\v`qöH\ 2LN\azûG\1dN\ 3`dHþG\19N\ 1cù\19hHù\ ehGý\eC`úH\11DJN\f`dGùH\19LN\ 4`z\ 3N\ 6{GýH\ 2CTGN\ 5bHýG\ 2DRJN\11`fö    L`pHúG\e`p\ 6N     `lü\ eN\ 1`zü\ 2CTN\ 6eHý8DRGJN\12xûH\eLN\ 6þ\bN\ 1zG\ eN\ 4``~H\17JN\v`qGõ\ 3LN\ 2qHýG\ 2N\ 3{ý\ 5N\ 4výH\15`hþ\ 6`p\ 6N\ 1c\bhG\ 4FJN\ 6`lô\1aELN\ 5iHüG\ 6CN\ 1`cHü\ 6DJN\ e`qGð\19L`pHúG\ 4N\ 2`bý\ 1N\ 2`qHû\15hGü\ 5hHý\ eN\ 4vGù\19`Hü\ 5`p\e`pþ\19JN\f{GøH\11LN\azGþ\ 3N\ 4`vþ\eN\ 1zH\ 6C`h\ 5TGN\ 3tü DRJN\11`}ýH.LN\ 1zGû%hHú\fN        {\b`hGúH\ 5hûG\eN\ 1cHþG\ 4JN\avóH\ 4LN\ 1züG\ 2N\ 6dûH\ 3CTGN\ 5jHû0DRGFJN\13só\14ELN\ 1`kþH\eN\ 1`gGþ\19N\ 3dHü\ 5N\ 5iGþH\ 3`pû\bCN\ 1`zþ\19DJN\a``~G÷\ 4L`pú\ 1N\ 3dHû\bN\ 1`cGû\ 3N\ 1cHúG\11JN\r`~ð\19LN\ 6hHý\ 2N\ 4``~üG\ 2JN\v`qøH\ 1LN
+`gGý\e`Hþ
+CN\ 3GýH\1dDJN\f`dGôH\1dLN\ 6húG\ 6N\ 2`qH\19N\ 1rGû\ 1N\ 1cHþG\ehHú%CTGN\ 4~ü\ 2DRJN\11`fú\ 3LN\ 1züH\ 5hG\ 6N
+``~Hü\bN\ 1`kG\ 6JN\a`göH\19LN\ 1zþG\19`pü\ 3N\ 4``~ûH\eJN\f`lGúH\19L`p\19hG\bhýH\ 4N\ 1`gúG\bN\ 3{û\19N\ 4`~HþG\f`Hþ\19N\ 2`}ýG\ 5CTN\ 3`tû\ 1FN\ 1kHû\ 3DRGEJN\fx÷H\eLN\ 3`lþ\ 4N\ 1`zGþH\13hGù\17`pHþG   JN\r`~ú\19LN\f{HýG\19N\ 2uþ\19JN
+`z÷\eN\ 2`b÷\ 4LhH\1fN\ 5`uGþ\bN\ 6dHü\fJN\ 6{GõH\fLhGý\11N\ 4`vü\1d`pHúG\e`pú\ eBhHø\fAJN\r`gGö  LN\ 1cû\15N\ 6`pHüG\ 2N\ 3{HýG3`úH\19N\ 2`}úG\1dCTN\ 3`tþ\19DRJN\ eqõ\ eLN\ 2`qHþ\ 6hGý\bN\ 4vþH
+N\ 1`zþ\ 6BN\ 1cý\15ACTGN\ 5jHþ7DRGJN\12`iöH\ eL`pGþH\19N\azGü\ 1N\ 6{þ'JN\a`gûH\bLN\ 1zGþ\1dN\ 4``~þH\ 2hýG\ 4JN\f{ó\15LN\ 1zHø\ 6N\ 4`cGú\15N\ 4``~Hý\1fN\ 1c\ 4hþG\ 5JN   `hó\1dLN\ 3dHù\ 2N\ 3`lGùH\ 5hùG\ 6BN\ 2`uýH\bAJN\r`gGó\ 6LhHþ\b`pû\ 5`p\bN\ 5`uGý\19N\ 6{\19JN\f{ù\ 4LN\ 5`uüH\ 1N\ 1züG\ 6N\ 2`qùH\19hùG\b`h>CTN\ 5`jý\ 5N\ 1kH.DRGJN\13só\ 3L`pHûG\17N\ 2`bý\17N\ 3{HûG%N\ 4``~üH\15BN\ 2uü\ 5AhGý3JN\r`gôH\19LN\a`kûG\bJN\ 1`kòH\11LN\ 1zùG\fN\ 3`lþ\11N\ 1rHý\17hG\11CTN\ 5yü\ 6DRJN\11uô\1dLN\ 1zþH\15N\ 4`cG\19hH\19N\ 3`lý\1dN\ 1rüG N\ 1zHý\15JN\f{GôH\fLN\ 2`yüG\19N\ 3`lø\19N\ 4nHø\ 5JN\viGóH\1dLN\ 1zGý\15N
+``~Hü\15N\ 1zGþ!`pHþG\ 6CTN\ 3`t\bN\ 1kýH:DRGJN\12a÷\eLN\ 5`uýH\1dN\ 1`kG\ 4N\ 2`qHü'`hü\ ehþG\19`p\ 6hûH\17`pý!JN\r`gGó\ 2LN\ 1zHú\eN\ 5`uGû\bN\a`~HþG\bJN\ 6`lö\1dLN\ 4``~ýH\ 3hùG\ 5JN\viö\17LN\ 4`cûH\ 6N\ 4`gùG\17`hù\vN\ 1zþH\ 1CTGN\ 4`oHýG\11DRJN\11`fú\ 1L`pû\bN\ 1zHù\ 4FN\ 1`gGý\14EN\ 3dýH\17N\ 4`v\15N\ 1zýG\19`pú\ 6`pHýG\aJN\rvúH\1dLN\ 5mGúH\ 3N\ 1züG\1dN\ 6dþH\ 6CTGN\ 5jýH4DRGJN\12`iûH\ 4LN\ 1zGý\1dN    dHú\fhGü\eJN\ 4`~ø!LhúH\eN\ 1züG\15N\ 3`dü\11N\ 1cHøG\ 2hùH\ 5JN\r`gGø\19LN\ 1zHû\ 4N\ 2`yGû\ 5N\ 3`lHýG\19N\ 3düH\e`hù\ 2N\ 1zG\1dhýH\ 6N\ 1zþG\ 2JN\f`lô\eLN\f{\ 1hüH\ 5JN\f{GùH\15LN\ 1`gGþ\19N\ 2`qHû\ 2N\ 4`gGý\ 4`H\19N\ 1zGü'hHû\ 3N\ 1zGý'JN\ 6{ü\ 3LN\ 3`dø\1dhHù\17CTGN\ 5bû\17DRJN\11uù     LN\ 5`uüH\19hþG\ 1hHú\ 4hGþ     N\ 3dùH\1dJN
+`~GþH\15FLN\ 1zGú\eEJN\ 1cõ3LN\ 1`kHù\17N\ 1`gGü$N\b|Hý      hGû\19hHý\e`pGýH\19JN\ 4``~Gú\ 3CTLN     `pý\eDRJN\11`}øH)LhG\19N\ 5`uH N\ 6dýG\ 6N\ 1zH\ 1hþG\ 6JN\f`lø'LhûH\1dN\ 4`cûG\ 6N\ 4`~þ\11BN\ 2mþ\ 5AJN\fdòH\ 6LN\ 6ý\11N\ 3`lGþH!N\ 1rýG\bhþH\ 3hýG\ 2N\ 1cHþG\bCTFN\ 4``úH       DRGEJN\13s÷\ 6LN\ 3`tHùG6N\ 3{\17`pHþG!`pù\19BN\ 5iHúG\eAFJN\f`lö\14ELN\ 1zþH\eN     `dGûH\15N\ 2uý\15CTGN\ 4~HûG\ 4DRJN\10`køH\bLN\ 2`yGø\ 2N\a`zHùG\ 6`hû\bJN\f{ü\bLN\ 1cü\ 2N\ 5mþ\ 1hþH\ 6N\ 6{û\ 5BhGù\15AJN\ 5iú\1dLN\ 3{HýG\ 5N\ 1rHý\ 2hGù\ 6CTFN\ 6eHþ
+DRGEJN\12`iúH    LhGü\ 3`pý\ 1N\ 5`uHþ\ 5hüG\15N\ 3dHý\ 1`hGýH\ 2hGü\ 6N\ 1zHû\15`pþ\1fhGý\ 2JN\ eqù\11LN\ 6hHþ
+N\ 4`gGü\19N\ 1rþH\15hGü\bJN    w÷\11LN\ 3dH\15FN\ 1zûG"EN\ 3`dû\eBN\ 1c     A`p\eJN\fdýH\ 6LN\ 5`uGù)N\ 5`qHþ\ 3JN\f`lGúH\19L`pþ\ 3N       `lGýH\ 6N\ 3ý\19CTGN\ 4~HþG\11DRJN\11uø\19L`pý\19hH\ 3N\ 4`zþ\19hGý3N\ 4`~HýG\1d`ýH\f`pü\ 6JN\b`mGð\1dLN\ 3dHû\ 2N\ 3`lGýH\17JN
+`gG÷\bLN\f{HúG\ 3hþH\ 3hGù\15FJN\fdýH\14ELhGú     hHþ\eN\ 5mGýH\f`p\ 6N\ 4vøG\b`þH\15N\ 1c%JN\v`qGø\ 3LhúH\1fN\ 1`gGþ\eCTN\ eqHúG\ 6DRJN\11`fò)LN\ 6`pHüG\ 6`p\ 2N\ 3dHü\ 1N\ 2`uG!`p\17JN\a`gòH\eL`pú\eN\ 4vGþ'`ûH\bhýG\bN\ 1zûH\ eJN\f`lGúH\ 3LhGü'hHþ\ 2N\ 5`uýG\b`pü\eN\ 6dHú\ 2CTGN\ 4~HþG\ 5DRJN\10zòH\eLN\ 1`gGþ\17N
+`zHûG\1dJN\ eqö\bLN\v`qýH\ 5BFN\ 1zûG\14AEN\ 1zûH\ 1JN\a`~G÷H\1dLhþG\ahHû\ 3N\ 5iGýH\eN\ 1zG\ 6CTN\ 4gHýG\19DRJN\11`}ñH\19LN\ 1zúG\ 2N  `lþ\ 2N\ 1`cHþ\15N\ 1zG\19JN\ eqô\ 2LN\ 1`kýH\17N\ 1`gúG\19N\arþH!N\ 2`uGþ\ 2JN\f{õ\ 1LN\ 4`cHþ\19N\ 4`gGý\ 1`h!B`pHýG\ 5AJN\f{õ\ 6LhHû\15N\ 5`uýG\ 2`pú\ 6N\ 4nHü\ 2`pGþH\ 2`pGýH%`pú\19CTGN\ 4~ý\1dDRJN\11`fù\19BLN\f`lü\19A`pHûG\ 1`p\15JN\fdõH\15LN\ 1`gýG\bN\ 3`lø\ 3N\ 4nH\ 6JN
+``~Gþ\ 3LN\ 6hüH!N\ 3`lGüH\19N\ 1`zù\ 1JN\fdGð\ 4LN\ 1cHùG\15N    `lþ\19N\ 1`cýH\19N\ 1zG\ 2JN\r`göH\ 1LN\ 1cGþH\ 2N\ 1`gúG\bN\ 3{%N\ 4``~Hþ\ 4hGý\ 6JN
+``~êH\ 4LhýG\ 2N\ 4`cþH\ 6N\ 1zûG        N\ 4`vþ\ 5hH\19hGü\17N\ 1cHùG\19JN\fdõH\ 6LN\ 1`gG\19N\ 3{ú\19hHþ\ 6N\ 6dG\ehHú\bJN\a`~GñH\ 2LN\ 5`qüG\ 5JN\v`qûH\ 6LN\ 1cGüH\eN\ 5mGûH\ 5N\ 3`lü\ ehGý\ 4JN
+`~ö\fLN\ 6`pHûG\ 6N\ 4nýH\19`pû\1dhG\ehùH\ 6`pú\15JN\r`~GøH\bLN\ 3lþG\bN\ 3{ú\ 3N\ 6`lý\ 3JN\f{þ\ 4LN\ 5`uH\ 5hGû\17N\ 6`lý\15JN\ eqý\ 6L`pú\15hHþ\15`p\ 3N        {GüH\bN\ 2mø\ 3`pGùH\ 4JN\ 2uGúH$LN\ 1zþG\ 4JN\f`lø\ 3LN\ 6húH\ 6N\ 1zGþ\15N\ 4`vHøG\15JN\beò\19LN\ 3{HúG\19N\ 4`~ü\15N\ 1rûH\ 5N\ 1zúG\19`p\ 3JN\r`~ø\17LhHþ\17N\ 5mGøH\b`pø
+N\ 3`l\19N\ 2mGüH\bJN\f`lGøH\eLN\ 1zGü\15N
+`vHþG\ 5JN\ 5iõ\1dL`pHüG\ 2N\ 3`lû\ 6N\ 1rHø\ 6JN\v`qGó\ 2LhHþ\1dF`pGþH\1aEN\ 1`gþG\15N\beý\b`pý\11hHü\ 2`pþ\19JN\ 6`lGùH\19LhGù\19N\ 4``~Hù\bJN\fdGø!LhüH!N\ 1zýG\17N\ 5mû\15N\ 4`~HúG\ 3JN
+võH\eL`pGúH\ 6N\ 1`gG\17N\arHþ\ 2N\ 1rG\eN\ 1zHù\1dhGü\ 6`pý\eJN\ 1`kúH\11LhGú\ 6JN\viú\1dLN\ 4`cHý\17N\ 6`lGúH\ ehüG\ 4JN\v`qûH$LN\ 4`cGþ\ 2N\ 4vþH\ 1JN
+`gGö\ 1LhüH\ 3hýG\bN\ 2`bHýG\ 1N\ 3dûH\11N\ 5`qùG\ 5N\ 1cù
+JN\f`lú\eLhHý\19N\ 4`zGûH\ehG\19`pHýG\15N\ 6dH\19JN\ 2`uGù\11LN\ 1`z\19JN\f{ó\eLN
+vH\19N\ 2mü\17JN\rvGó\ 6LN\ 1zHü\ 6N\ 6GüH\ 5N\avGþ\rJN\a`gøH\ 4LhüG\bN\ 5iHþG
+hHþ>hGù\1d`pHùG\11FhH\16EJN\r`gGñ\17LN\ 1zHü\ 3N\ 6GüH\15N\ 4vùG\15N\ 1`cûH\ 2N\ 1zGþ\19JN\r`~÷\ 4LN\ 1zHý\ 6N\ 1`güG\fN\ 3`lü\ 5JN\ 6ø\ 6LN\viü$JN\fdýH\ 4LN\ 1cGúH\ 2N\ 1`gGý\eN\ 3`lHýG\ 6N\ 3`l\b`hHýG\19hHþ `pþ\ 6hG\eJN\r`~ö\ 1LN\ 1zúH\1fhüG\ 3N\ 5`uHþ\17N\ 3`l\bN\ 3ý\19hGü\17JN\a`~û%L`pù\bN\ 5`qHû\eJN\ 6`lGöH\11LN\ 4`gGü\bN\ 1rHù\19JN\ 5iGñH\19LN\ 3`lý\ 2N\ 2`uýG\1dhúH\17hG\ 2JN\r`~û\19L`pû\1fhHþ\ 6N\ 1`gùG\1dN\ 3{ù\e`pþ\11JN\azùH\15L`pú\eN\viGùH\v`pü\ 3JN\viGóH\bLN\ 1`gG\ 4N\ 2`qHû\ 6N\ 4`~ü\15N\ 1`cGþ>`p\ 2JN\r`~÷3LN\azüH   N\ 4``~G\bN\ 1`kHý\ 2JN\a`~GõH\ 5LN\ 4`gGþ\eN\ 2m\15JN\rvûH\17L`p\17hþG\eN     dûH\ 3N\ 1`zGüH\11`pþ\bN\ 1züG\ 4JN\a`gõH\19LN\ 5`qG\ 2`pHüG\ eJN\ 6{ö\ 2L`pþ\bJN\acú\ 6LhüH\1dhGþ\fhHþ\15`pGþH\15N        dGþ\fN\ 1`cþH'hùG\ 3JN\f{÷\17LN\ 5mù\eN\ 4vH N\ 1rùG\ehùH\1dJN\fdGü\bLN\ 6hþH `pGþH\ 6hGþ\eN\ 5i\17N\ 1zHú\15JN\r`~GôH\eLhG\ ehúH\ 2hGû\15N\ 2qHûG\ 6N\ 3dúH\ 3N\ 5iGþH\19N\ 1zýG\ 2`pHûG\eJN\ eqô\aLN\f{HþG\1dN\ 1`kýH\bJN\f`lG÷H\ 6L`pGýH\ 5N\ 1`gúG\ 3N\ 3`lú\ eN\ 3dHù\15hGý3N\ 1`zHýG\ 1høH\ 6JN\f`lGúH\bLhGý\ 3J`pö\ 2LN\ 1zHý\ehúG\ 2høH\ 6N\ 4`cüG\ 2N\ 5iHüG\19hüH\bN\ 1`küG     JN\ 3hôH\1dLN\ 2mû\ 3JN\v`qGó\ 6FLN\ 4`cýH\1aEN\avüG\19JN\v`qúH\bLN\ 4`cG\ 1høH\ 2hùG\1dN\ 3`lþ\ 6`hú   hHý\bJN\v`qGû\17LhúH\ 3hþG\eN  dHý     N\ 3GûH
+húG\ eJN\ eqò\1dLN\ 3`tHøG\ 2N\a`zü\bN\ 1`zHýG\15hýH\bJN\f`lGöH\15LN\ 1cü\ 2N\ 4`z\ 2`pGýH\ 1hüG\17N\ 4``~ùH\ 6N\ 1zúG\vJN\f`lô\ 2LN\ 2`b\ 1N\ 3{HþG\19JN\ 6`pô\ eLN\ 1c\ 3N\ 4`cHþ\ 1N\ 4`gþG\aN\ 1rüH\e`pü\ 2N\ 1zGþ\ 5JN\rvûH$LN\ 6hGý\19N\ 6dHü\1dJN\r`~G÷H\bLhG\ 6N\ 6hùH\19N\ 6dûG\17`pû\19JN\fdûH!LN\ 1`gGú\ 6FN\arHü\ 6N\ 1`cþG\14EhHü\19`pGøH\ 6JN\rvGý\eLN
+`~HþG\ 2`hü\ 6JN\f{ù\ 3LN\ 6hHþ\19hGú\bN\ 5`qHú\ 3N\ 1zGú\19JN     `hü\bLN\beû\ 3N\ 1zýH\15`pù\ 3FJN\ 6dGñ\14ELN\ 5i\ 5JN\f{û\ 3L`pHýG\ 6húH\ 1N\ 4`cGþ\ 2JN\ 6`pù\bLhHû!F`pGùH\ 4N\ 6ü\14EN\ 3`lGþH1hýG\ 6N\ 1rþH\bhGû\19`pHûG\11`pþ!JN\f`lú\bLN\v`qþH        `pGþH%JN
+rGõ!LN\ 3{HüG\15N\ 4`~þ\bJN\vqõ$L`p\bN\ 6`pHûG\ 5JN\ 5`uøH\eFLN\ 4`z\13E`pGùH\ 5N\ 6düG\ 2JN\rv÷H\19LN\ 6hGü\ 3`pHûG\19N\ 6dHþ\ 6hGù\ 1JN\av÷H\19LN\ 3`lü6N\ 1rýG\ 2N\ 1cú\ 6JN\f{ý\19LN
+``~ýH!N\ 1cþ\ 3JN\f`lG÷H\ 1L`pþ\bN\ 1`gþG\15N\a`zý!`hû\ 1N\ 1zþH\eJN\f`lGýH\ 5FLN
+`~GþH\ 2EN\ 2`uýG\eJN\f{ð\vLN\ 5mHùG    N\a`~þ\ 6JN\r`g÷H\ 5FLhG\1aEN\ 1zH\19N\ 1`gGý)N\ 2`qH"N\ 1zGþ\ 6N\ 6dH%JN\f`lG÷H\19LN\viGþH\ 1hüG\17N\ 1c\17JN\r`g÷H$LN\ 6`pGþH\fhGý\bN\ 3`lHþG\1d`hHûG\19N\ 1zHþ\fhGþ\ 3JN\f`ló\bLN\ 6HüG\15JN\ 5mù\11FLN\ 2qý"EN    wû\15N\ 1c\ 1JN\rvúH\ 3LN\ 6þ\eN\ 4vGý\ 6JN
+`~õ\ eLN\ 1zHý\17N\ 4`cGý\1dN\ 5`qHú\ 6N\ 1zGü'JN\ 2`uúH\15LhGû\ 2JN `lü\15LN\ 4`cùH\eN\ 1zýG\ 2N\ 4``~Hý\17hG\ 3hH\ 5`pGüH\ 6JN\f{GõH\15LN\ 4`cýG   hHý\eFJN\ 6`pGóH\ 1ELN
+`~ý\bhûG\ 2`hþ\eN\ 1zþH\ 6`pGüH\ 3JN\rvGü\17L`pü\ 3N\ 6HûG\eN\ 4``~úH\ 1JN\ 6{GõH\11LN\ 4`gýG\19N\ 1`cHþ\bhþG\f`pHýG!JN\rvòH3L`pü\1dN\ 5mGþH$N\ 3`lGýH\bJN
+vGù\ 1LN\viHþG
+CFJN\rcùH       DELN\ 1`oGûH\eN\ 1zGý        N\ 5`uHý\eN\ 5`qýG\17hýH\11hûG\ eJN\avñH\ 2LhúG\eN\ 4vúH\19hûG\ 3JN\ 3`lô\19LN\ 6`lHýG\ 1JN\rvõH\ 6L`p\ 6N
+nýG\r`pý\eCFJN\ euüH
+DELN\ 1`oGúH\1dN\ 6ü\ 6N\ 6{GûH\15N\ 1züG\ 3hHþ\ 2JN\f`lGóH\bLhøG\19høH\bN\ 4`cûG\ eN\ 4výH\ 4N\ 1rýG\19JN\ 5`qöH\eLN\ 1zG\ 3N\ 6düH\ 1hG\19JN\ 1c÷\ 3CN\ euýH DLN\ 2yGý\15`pü   N       `lHýG\ 6N\ 1rHþ\1d`pý>hGù\17JN\fdþH\aLN\ 5`uGù\ 2N\ 5iHúG\17JN\ 5`qóH\ 3L`pû\ 6hGù      N\ 3`lHýG\ 3N\ 3\ 3CFJN\ f`xü     DELN\ 1`oûH\15hGü\bN\ 1zHüG\15N
+`vHý\19N\ 1cG\19JN\f`lõH\ 2LhGü$N\ 5mHúG h\fN\ 3`l N\ 1rý\ 2`pHýG h h BCN\bg\80\80\80Ä1JN\18`qMhí1Hý1AN\ 1`~G\80¶H3GÕH\ 6GëH\bGãH\aGãH\ 2GÕH FN\ 1wGë ELN\ 1wèH\ 2FJN\ 1wGö
+ELN\ 1wòH\ 1JN\ 1wGì$LN\ 1wíH\19FJN\bcG÷H LN\ 5y    DEN\ 1`g\ 6CFhùG\vDEJhèH\ 3CFN\ 6`aGð
+LN\ 5y
+EN\ 2qHùG$N\ 1wñH\ 5FJN\ 1wGù
+DEhùH%CN\ 6`aGó$LN\ 5y$N\ 3iHû\ 6JN\ 1wGí$LN\ 1wýH\bFJN\bcGû\vLN\ 5y\vDEJN\11jùH\ 4Lh\17h?BFN\ 3\1aAEh     `h
+h\17h\ eh\ 6h\ 2h\15h\ 5`h\bh\ 5h\ 6h\fh\ 3h\bh     Fh\ 1Eh
+h\ 5h\ 4h\15N\ 2q\ 6h
+h\19h\15h\1dBh\19Ah\eBh\ 5h!JhGð\eALN\ 2`yHü\ 2JN\rsGúH\bLhGü\ 6`pHüG\15N\ 1rH\ehG\bhúH\eN\ 2uú\19N\ 2`b\bN\ 1cGùH\19CN\ 5vú\11DJN\14kGö\eBLN\ 3hHý   AN\ 1`zGýH\1dN\ 1cGþH!N\ 1rüG\15N\ 1`kH\eN\ 2uGüH
+ChýG$DN\ 2`yûH\15hýG\ 3B`pHþG\1fACN\ 1cHþG$DJN\roø\19L`h\ 5`pý\ 3`pý\ 4N\ 3HýG\ 5`pHýG\19húH\ ehúG)N\ 3`t\eN\ 1`kH\ 3N\ 2`bþ\eJN\12aGòH\eLN\ 6hG\ 4N\ 4zýH\vCFN\ 1zþG
+BDEN\ 4gHþG\15hHú\ 1ACFhGù
+DEJN\11jøH\ eBLN\ 3`pGýH\19AN\ 1rúG\19hH\19N\ 2`uGü\ 4hHü\17`pGúH\1dhüG\15N\ 2uþ\15N\ 4~H\17BhGþ\15ACN\ 3`tHýG\17DJN\13s÷\ 4LN\ 3`pü\17FN\ 6\14EN\ 1`kHý\ 5BN\ 2qGþH\fA`pû\17hGú  JN      `|ø\bLhHù\ e`pGøH\15N\ 1`cüG\ fN\ 5`jHýG\ 2CN\ 6qúH\17DJN\13`aGøH\ eLN\a`zþ\15N\ 2uû\ 3N\ 1cGúH\19ChG$BDN\ 4gHþG  hHú\19AChGù$N\ 2qþ\ 5BDJN\ f`iüH\17ALN\ 1`zý\15N\ 4zG\ 4N\ 1`kH\11hGþ)BN\ 2`yHþ\15AhGù\ 1hHþ\ 1`pú\ eBhGù\ 5AN\ 3lHþ\ 6JN\13sGüH\17LN\ 4zGý\ 5N\ 1`zú\11`pHúG\19N\ 3hüH)N\ 1zGý\ 2N\ 5bHý!BFJN\ e`rGøH\1aLh\1ah\1ah\1ah\1ahG\1aAEN\ 1`z\ 2N\ 1zHþ\ 3`p)hþG
+N\ 1`zü\ 3hH\15N\ 1züG\ 3CFN\ 2u
+BDEN\ 4`oþH\ 3ACFhþG       DEN\ 1`gûH\ 2ChüG\15N\ 1wHþ\eBDJN\10`aGöH\ 5ALhG\15N\ 1rþH\ 2N\ 2`uýG\19hHþ\ 5N\ 2uGüH\17N\ 1c\bN\ 4`oþG$JN\10`w÷H\ 1LhýG\11N
+cý\ 1hHü\1dBN\ 2`b\bAN\ 1cGüH\1dBJN\r``GõH\ eLhG\bhH\ 5FhG\12hH\12EhG\ 5hHü\15AN\ 1rýG\e`pø\19N\ 4zHû\eBN\ 5bGü\ 5AN\ 4~Hû\bJN\12aGòH\ 4LN\ 3hG\1dN\ 1rHø\19`pGùH\bN\ 1züG    N\ 2mý
+`p\19hýH\ 2N\ 1züG   C`pHýG$BDN\ 1`gúH\ 5AN\ 1`kùG\eCN\ 1cþ$N\ 2qþ\bN\ 1wHü\ 4BDJN\12fGóH\eLN\ 1zG\15AN\ 5mHûG\eN\ 5`jù\17B`pHþG\eAhHü\b`pý\ 1JN\ f`eGö\ 6L`pú?B`hHýG\11AN\ 2`}ýH?N\ 1`cúG\15hùH\e`pþ9`hù\fN\ 2`}Gù\19N\ 3lH\19`pù\fBFN\ 2uGøH\1aEJN\ feGùH\ 3LN\ 1zúG\ 5hH\f`pGýH\1dAhGû\15N\ 1rH       hþG\17hýH\11N\ 1`cüG\ 3N\ 1zHû\f`pGûH\ e`pþ\ 6F`pGüH\1aCEN\bfGþ\bDJN\13sü\ 5BLN\ 2mú\19AN\ 4cHüG\15N\ 1rýH\ eN\ 1zG  `pHüG   N\ 1cý\19hHü\ 2N\ 2`bGûH\e`pü\ 6hþG\ 3`pú.BN\ 2`yH\17JN\10`dGüH\17L`p\19hGý\ 4AN\ 1`zþ     N\ 1c\ 3N\ 2mHûG!húH\ eN\ 1cý\eN\ 4~üG\eB`pý\15AN\ 1zH\15JN\10oG÷H\ 5LhG\19BN\ 1`zHüG\19N\ 1`kH\19AN\buGùH\eN\ 2qý    N\ 1c\1fBN\ 1cû\ 2ACN\ 3`qGúH\11DJN\13`aGøH\15BL`hGþH\bAN\ 2`}üG\ 2N\ 1`zHýG\ 6høH\19`pø\ 3N\ 1rGø\15FN\ 3pHù\12CEN\bfGý\ 6DJN\13`{öH\ 6LN\ 1zþG\eBN\ 1rH\15hþG\vhüH\vAN\ 1cý\eN\ 3\15N\ 1`cGû\15N\ 2uHûG\17C`p     DN\ 2`yûH\1dN\ 1c\ 2B`pù\ 6N\ 2qþ\15JN\11nGô\17ALN\ 2uü\ 6`h\19`pHúG\15N\ 2`uH\ 3N\ 2uGûH\ 3N\ 4~üG\ 4B`pþ    AN\ 1cû\ 1CFN\ 2`b\14DEJN\13`{ùH\ fBLN\ 1`zþ\11AN\ 3`p
+N\ 1zûG  N\ 2mû\ 3hHü\ 3N\ 1`kGý\17hþH\ 5N\ 4gGþH\19BN\ 1cú\ 4ACN\ 3`qGùH\ 6DJN\13`aGýH)BLN\ 2`uGü
+A`pû\eN\ 1`cHý\17N\ 1zúG
+høH\1d`ûG\ 4N\ 3`xü\ 5N\ 3lH\ 4JN\r`oGù\ eBL`h\ 6hHþ\ 5hüG\11hüH\11AN\ 1cGþH\ eN\ 1rGþ\ 5N\ 3`pHýG\bhHþ\ 3hýG      N\ 1zúH\19CN\ 1zýG\19DN\ 3`tHýG\19BN\ 3lHþ\1dAJN\12`iGõ\ 2LN\ 4`zý\17N\ 3hH\17N\ 2`}Gý\e`pþ\15N\ 2`yHù\ 6CN\ 6`yGþH\ 5DJN\14`sGóH\19BLN\ 1`zù\19hGü\15hHþ\fAN\ 3GüH)N\ 1cû\15`pGúH\ 6N\ 1`zý\17N\ 1cû\bN\ 1cGûH\ 2N\ 3`tþ\ 5`pGþH\ 6hýG\19CN\ 2`bý\17DJN\13sõ\ 6BLN\ 2mHýG\1dhüH\1dhùG       AN\ 2`uHþ\ 6N\ 1zGþ\eCN\ 5uù\17DN\ 1`gHú\ 3hGú\11N\ 1c\15BN\ 1zH\19ACN\ 3`qþ\19DJN\10`xGý\ 3L`hø\ 5N\ 2`}H\15`h\ 2N\ 1cý\19hûG\ 6N\ 1zýH\vN\ 4~Gû\15hHü)`pGþH\bJN\ f`eGõ\ 4LhHü    B`hþ\17AN\ 4cý\15hGþ\ 6N\ 2`uúH\ 2N\ 1`kG\ 4`pHûG\1dhHü\ 1FN\akGýH\1aCEhGú\15BDJN\11`vû\ 5LN\ 1cû\15AN\ 4`zHøG\19`pþ\e`pú\eF`pHûG\16EN\ 4`oþH$BJN\f`|GúH\fALN\ 2uGúH\ 4`úG\15`pü\1f`p\b`pHþG\ eN\ 1rþH\ 6CN\ 3`aþG\ 5DFN\ 1`güH\eEhGý\ 6N\ 1cHûG\17BFN\ 1zHþ       ACEN\ 3`q\1dBDJN\13xGõH\ 6LN\ 1zGý\fAN\ 3hHþ\ 5`pý\b`p
+N\ 1`z\ 6`p\19N\ 1cGþH\11hýG\19N\ 3`tþ\1dN\ 1cû\17N\ 2`yHý\ 6JN\12aG÷H\19LhúG\ 4BN\ 1rýH\ e`pþ\fAN\ 2mþ\ 6N\ 3GûH\eN\ 2uý\15N\ 1cGþH\19ChGü\15N\akþ\ 2BDFJN\13`{ýH\1aELN\ 1`zGýH\15hGü\1fAN\ 2uþ\ 6`hHüG\1dN\ 1zýH$N\ 2`uûG\ 3hýH\ehGü\1dN\ 5yHøG\ 5N\ 1cù\ 1hþH\ 6CN\ 1zG\19DN\ 1`gHþ\fBJN\10`{Gý\ eLhüH\ eAN\ 2mý\ 2hGü\15N\ 1zH\ 2hGþ\ 3N\ 3HüG\19N\ 4~Hý$N\ 1zGý\19hHþ\17JN\ ftGô\19LN\azH\ 5`ýG\15N\ 1`kHþ  `pGúH\1dhýG\11hH\1dN\ 3lüG\19N\ 2uþ\eCN\ 2`bü\ 6BDJN\13`{úH\19AL`pGþH\17BN\ 1`zþ\ 3N\ 1zGþ\fA`pHüG\b`hü\19hýH\bN\ 1zG\eN\ 1`cH\ 3CN\ 3`aGþ\1dDN\ 4~Hù\ 3B`pGùH\ 2JN\ feGúH\ 5LhýG\15AN\ 2`}þH\15N\ 2mý\15`pGúH\19N\ 1rG\ 5hH\ 3N\ 2`}G\fN\ 3lHú.`pGûH\15CN\ 1`kþG\1fDJN\10oõ\15BLN\ 1`zHúG\ 3hüH\ 3hGý\ eAN\ 2mHúG\1dN\ 2mù\bN\ 2uHùG\1dhúH\19F`pý\eBEN\ 5`jGûH\ 6ACN\ 2`yùG\eBDJN\13`{óH\1fAL`pGþH\ 5N\ 6hùG        N\ 1`zù)N\ 1zHû\ 3N\ 1zGý\ 6N\ 1zýH\17ChGþ\19DN\ 4gHûG\ 4N\ 2`yHü\ 2BJN\10`dGõH\17ALN\ 2uGûH)N\ 1rGþ\ 6`pHþG\fhHý\17N\ 2`uûG   `pø\19N\ 1cHûG\ eBN\ 5büH\ 4AJN\10oGöH\15BL`hþ\1fhúG\1dAN\ 4zH>N\ 1cGýH\bN\ 3hGý\ 5hþH$N\ 3lýG\ 2`pý\ 6hHù\ 5hGú\fCN\ 1cHýG\15DN\ 1`gþH\ 1ChGü\ 3DJN\13sû
+L`pHýG)BN\ 1`zHþG\17hüH\17hGý\ 3AN\ 1`z\ 2hHý\11N    `|ü\ 1BJN\ e`jG÷H\15FLN\ 1`cGø  hHû\rAEN\ 3hüG\15`pû\ 2hüH\ fN\ 1`zþ\ 6N\ 1cþ\1aN\ 1zGþ\19N\ 1zHú\eN\ 3lGù\ 3hHù\ 5`pGüH\ 2JN\bjGø\15LN\ 1zûH\ 6hùG\19`pû\ 3N\ 1cþ\ 3N\ 2`bHùG\ 6N\ 1cü\eJN\ ft÷H\1dBL`hý\15FN\ 1zG\fhüH\vAEN\ 1`cüG\ 1N\ 1zþH\11N\ 2mGúH\bCN      |ûG\ 5DN\ 1`gûH\19JN\12`iGú)BLN\ 3þ\17AN\ 1`cHý\1dhGþ
+`pHûG\19F`pþ\1aEN\ 1`zú\ 2N\ 1zHú\ 2`pGüH\15N\ 4~üG\ 4hýH\ 6N\ 1cü\ 1hG\11BhúH\19JN\10``GüH\ 5FLN\ 2mGüH\eAEN\ 2uþ  N\ 4`zý\bFhGø\14EN\ 1cHüG\1dN\ 1zHý\ 4CN\ 5bGú BDJN\11j÷H AL`pú\19N\ 6`pþ\ 4N\agGüH\b`pü\ 6hGü\1dBJN\ ejúH\1dFLN\ 1zG\ehüH\ehGý      AEN\ 1`zHýG\15hHý\19`p\15hGû\ 3`pHýG\19N\ 1`zHýG\eN\ 1cHýG\ 2N\ 1zýH.hþG\17JN
+cø\15BL`hü\1fAN\ 3`pý\ 5N\ 1zþH\fN\ 1rüG\fN\ 2`}Hü\bN\ 5yGýH\ 2`pGþH\19hüG\ 6BFhH
+ACEhGù!BDJN\11jøH!FLN\ 1`zGýH\fAEN\ 2`fû\19N\ 3`hGüH\ 2N\ 1`kýG\ 5N\ 2u<N\ 3`tHþG\ 4JN
+oô\19LhH\17N\ 3hûG\ 3N\ 2uý\ 2N\ 2`bý\19`pHùG\ 2hùH\bN\ 1zúG\ 5N\ 2`yH\fBFJN\12`iGõ\1aAEL`pþ\ 5B`hý\15AN\ 3HùG\ 2hH\bN\ 1cGûH\ehýG\ 6`hHþG\ eN\ 1zHþ\ 5`p!hGú)hHû\bN\ 1cGùH\11JN\vuGùH\ 2LN\ 6`pGþH\15`hû\ 1N\ 2`}G\15hH\ 1N\ 3`tGüH\ 6hþG\ 1N\ 1cHýG\19N\ 2`yúH\eFhüG\ 3EJN\12aö\bBFL`ýH\eAEN\ 2`fù\17N\ 2`uGý\ 2N\ 1`cHý\eN\ 2`}þG\ 6N\ 4~øH\19BJN\ f`|GùH\ 1LhþG    N\ 3HýG\fAN\ 1`cHþ\19`p\19N\ 2`uGû\ 2`p\19N\ 1zHü\ eN\ 4gGûH\bBN\ 2uý$AChþG\ 1DJN\10`wùH\ 1BLN\ 1rGú\1dAN\ 4cHûG\ 3hüH\1dhGý\ 1`hHüG\ 3N\ 2uHþG$`pü\b`pHúG\ehùH\ 6hþG\19N\ 4~Hû\ 2JN\ ftGó\eBLN\ 2mHýG\ eAN\ 1zH\ 5`ûG\15N\ 2`}ýH)`hGüH\15N\ 1cý\eN\ 1cGýH\19N\ 4~Gý\19B`pHøG\ 6A`p\1dBhùH$FJN\ feGýH\eAELN\ 3`pGøH\ 3N\ 3hùG\ 1hþH\17FN\ 5bþG\1aEN\ 1zûH\ 5`pGþH\ 6N\ 2`bù\1dBJN\13sGòH\19LhüG\19FN\ 1`zý
+AEN\ 2`}þH\15N\ 6\ 4N\ 1cú\ 5N\a`sGû\fJN\12`i÷H\15LN\ 4rG\ 5`pHüG\17`pû\eN\ 1`zý\17N\ 3`xHúG\ 3`pý\17N\ 3lýH\f`pGþH\ 4B`pø$AChG\19DN\ 1`gøH\ 4BJN\ f`iGú\ 3ALN\ 2`uþH\fN\ 1züG\19N\ 1rHþ\ 2`pGûH\15`pþ\1dN\ 2uü\19N\ 2`yGü\11hüH\ eBJN\ ebGù\17ALN\ 4`z\ 5N\ 1`kHü\ 2N\ 1`cGý\19`pþ\ 2`pHúG.N\ 5`jü\15`pü\19BFhHû\eAEN\ 2`yG\ 2BJN\13`{ùH\ 3ALN\ 4cGþH\1d`hGþH\17hGý\15N\ 5uý!N\ 1cþ\ 5CN\ 5yHüG\ 3DJN\10`wûH\ 2LN\ 5mGüH\ehGü\ 2hH\ 1`pþ
+`üG\ 2N\ 1`kþH\1dN\ 1cþ\ 3hGü\bhýH\1dN\a`sþG\19BJN\13s÷\ 5LN\ 3HýG\17AN\ 3`pHûG\1dN\ 1`cþH\ 5hG\ 1N\ 5yü\19`pHþG\ 2`pû\bJN\ e`jþ  BL`h\1fAN\ 2`}H\19`hGúH\19N\ 2`uGþ\ 6hHü\ 6N\ 2uþ\19N\ 1`kýG\15N\ 2`yýH\b`pGþH\ 2N\ 1zGþ\vBJN\10oö\15ALN\ 4`zHüG\1f`pHýG\ 3N\ 3hýH\f`p)hýG\ 1N\ 1`kùH$N\ 3lGþ\ 6N\ 1zHü\19B`pGüH\fFJN\r`wGù
+AELN\ 2`uHþ\1dN\ 1cGýH\19`Gþ\ehHü\bN\ 2`fGþH\15N\ 4gGýH\eN\ 4~üG\1dBFJN\13`{÷H\1aAEL`pü\ 4BN\ 1rGý\15AN\ 4`kHý\19N\ 1`cGü\f`p\19N\ 1cHüG\19N\ 1cü\1dN\ 2qHýG\1dhþH\19JN\r`oGù\19LN\ 5mý\ 3`pû\ 6N\ 3hHø N\ 1zGü\ 2N\ 3`tHüG\ 4N\ 1cú\15BhHû\eAN\ 2qþ\ 6BJN\12`iGò\1dALN\ 4`zHýG\15N\ 5u\19BJN
+zõH\17FLN\ 3hG\eAEN\ 1zHþ\15N\ 4rýG\ ehúH!N\ 1`kG\ 5hHù\ 4hGù\e`pHûG\19N\ 2qHýG\ 1N\ 1cü\ 6N\ 3lHü\bJN\12xGñ\17BL`hHûG\1dAN\ 3hHü\ 6N\ 1`kG\ 3`h\ 3N\ 1cý\ 4N\ 2`}þH6N\ 2`bý\fBN\ 2uGùH\1dJN\10`wGû\19ALN\ 4`zû\1dN\ 1zHù\ ehGú\19N\ 1`cHü\17N\a`wGý\ 2hHý\ 5hýG\ 4N\ 2`bý\15BJN\13`{ôH\eAL`p\15N\ 4`zú\ 3N\ 1cGûH   N\ 3ý\15N\ 1züG\ 5N\ 4~øH\ e`p\17BFJN\r`wGý\vAELN\ 2`}Hþ\ 3N\ 1rG\eN\ 1`kþH      N\ 1rGû\ 3N\ 3pHû\ 2N\ 2`yGü\15`pþ\19N\ 1zHþ\ 6B`pGþH\ 4AJN\ f`eGú\ 5LN\ 3`hû\ 6N\ 3hH\15N
+`d\ 3hGþ\ 5JN\r`{úH\ 3LhG\17N\ 2`uHý\ 1`pGúH
+hýG\17hHü\ 2`pGûH\19N\ 5yþ\bBJN\10oGøH\ 4AL`pý\17hGþ\15N\ 3`hû\15N\ 1`kHþ\ eN\ 1rGþ\ 6N\ 3`xHýG
+`pHüG\ 6N\ 3lH\eBFJN\ ftG÷\1aLN\ 1`zHþG\eAEN\ 2`}ýH)N\ 1rýG\ 3N\ 1cý\15hHþ\19N\ 3GûH\eN\ 4~ùG\11hýH\ 5N\ 1zGü\19`pþ\ 6N\ 2`bHùG\ 5JN\rsð\19LN\ 1`cHú\ 3hýG\17FN\ 2u\1aEN\ 1cü\bN\ 4~üH\ 2JN\ f`|GøH\1dLhGý\1dN\ 4rHù\15`pGùH\bN\ 1`cøG\ 3N\ 1zúH\ 6N\ 1zúG\eN\ 1zûH\b`pü\ 6N\ 4`oGù\ 3BFhHü  AEN\ 2qü\eBJN\12`iGõ\ 4ALN\ 4`z
+N\ 4cHýG
+hHþ\eN\ 1`kGù\19N\ 4~Hü\ 4JN    `eGö\ 5LN\ 1zHü\1d`pþ\17N\ 1rGü\ 2hüH\17N\ 1`küG\15N\ 1zHþ\bN\ 2`yýG\b`pþ\ 5`pý\vhHþ$BJN\10oGöH\11AL`pGþH\ehGý\19N\ 5mHþG\bN\bbHý\ 6N\ 4`oýG\ 4JN\ fxñH\ 3LN\ 1rýG)hHú\11N\ 1zGø\ 5N\ 1`z\ 6N\ 1cHùG\ 4N\ 5yþ\ 6N\ 4~H\ 2JN\ enGõ\ 5LN\ 1`kHû\15`pGüH\ 5N\ 1`cþG\19hHþ\ eN\ 1zGù\ 3N\ 1cHýG\ eN\ 2`yHþ\fN\ 1`kýG\19BJN\10`wòH\ 6ALN\ 5mú\ 5N\ 1zGû\bN\ 1`zþ\15hHû
+`pý\ 1N\ 2uGüH\ 6N\ 4~þG\b`pþ\15BJN\ f`|ù\15ALN\ 4`zü\19N\ 2uHúG\15hûH\15N\ 1rûG\eN\ 1`kH
+N\ 4~Gù\ 2BN\ 2`}Hù\fJN\10``GñH\ 5ALN\ 5mü\15`pü\19`pGûH\ 2N\ 4cGþH\ 3húG\eFhøH\1aEN\ 3`tø\11N\ 1`kGù.JN\f`eûH\ eLN\ 1`cGú\15N\ 3HøG\fhûH\ 2N\ 5bG\ 2N\ 1cHûG\bBhýH\eAN\ 2q\15hGû\15BJN\13`{øH\19AL`pü       N\ 6hGý\ 4`hHþG\ 3hþH\19N\ 1`kGý\11`pHûG    N\ 1cHýG\bN\ 2qý\eN\ 1cHýG\ 4hH6BJN\ f`eGõ\17AL`pü\15N\ 3`hHýG\bhûH\ 4`pþ\17`pù\ 6`p\1dN\ 1rGþ\ 3`pú\eN\ 1zHú\19N\ 4gGþH)JN\ 3lGø\ 3LhþH\15N\ 3lýG'hH\ 6`pGùH\fJN\v`jGøH\ 4LN\ 1rúG
+`pü\1dhHý\e`pGùH\19N\ 1`zû\ 4N\ 3pýG\19BN\ 4`oHþ\1dAhGù\ 1N\ 2qHûG\17BFJN\13`{ùH\eELhGü\1dAhH\19N\arGü\eN\ 2u\ 6N\ 5bHú\ 5JN\ ebG÷\ 5LN\ 4`cH\ 6N\ 2`uGü\b`pü\1dN\ 1`kH\11`pþ\ 5N\ 2`bù\eN\ 1`kG\ 2BhùH\ 4AN\ 2qû\ 5JN\f`iG÷)LN\ 3hþH     hGû\ 5N\ 1cHüG\19`pü  N\ 3lHú\19hGü\ 6N\ 3`t\1dBJN\13sû\eAL`pþ\ 5N\ 3`hHýG\15`pþ\19hþH\15`p\ 3hþG
+hûH    `hú\19N\ 3`xGøH\ 4N\ 2`yøG\15N\ 2uû\ 1N\ 2`yHþ\ 6FJN\12aGùH\14ELN\ 4`zGüH
+N\ 2`uGü\ 2N\ 1cHþG\19N\ 1cHûG\ 3N\ 4g\ 2`pû\ 3BhHþ\17AN\ 1zûG\19BJN\11jóH$ALN
+zúG\19hH\ 5`pGøH\15N\ 3`tù\ eN\ 4gGüH\bhG\eBJN\13sô\bALN\ 4zHú
+`Gý\1dN\ 1zýH\ 5hùG$N\ 1`cùH\ 3`pù\15`pGûH\19N\ 4`oG\ 6`pý\ 1BJN\ ftöH$ALN\azúG       `hþ\ 1`pû N\ 1`kHù\15BN\ 5`jGúH\eAhGþ\19BFhHý
+AEJN\10oGøH\ 3LN\ 4`zGþH     N\ 4`kGþ\1d`pHþG\e`pþ\eN\ 2`bHþG        N\ 1zýH\19N\ 3`tý\ 2JN\12xGù\1fLN\ 3`h\19N\ 4zþH\ fN\ 2uþ\1dN\ 4`oýG\19BJN\ f`e÷H$ALN\ 4cGýH\19N\ 2m\eN\ 3þ\17`pGüH\ 4N\ 1cþ\ehüG\ 2JN\ 6`xô\15LhþH\1fN\ 1zýG\15hHþ\b`Gû\19hHú\ 2N\ 1zGú\17N\ 5`jHúG\19BN\ 1züH\ 4AN\ 2`bü'BFJN\13sGõH\eELhþG\ 2AhúH\ 6N\ 4`zþ\15N\ 3hùG\19N\ 2uù\ 2hHû\19hGú\f`pHýG\eN\ 2`yHþ\ 3`pGþH\15hGý\bN\ 3`tHýG\19JN\12aø\15LN\ 5mý.N\ 1`cHþ\19`p\19`p\ 5BFJN        hGù\eAELN\ 4zHý\1dN\ 2mGüH\fhGü'hHû\11N\ 4cGýH\bN\ 3lGý\ 3N\ 1cHûG\fBhHý$AJN\10``GôH$L`pû\ 2N\ 4rGú\b`pHúG\17hùH\15N\ 1`cýG\1dF`pý\14E`pHúG\15húH\15húG\ 2N\ 4gý\ 4JN  tøH'LN\ 5`fý\ 3N\ 3`tGøH\19`pù\17BN\ 1cGýH$AN\ 2qý\ 2hGý\vBFJN\13sö\eAELhH\ 6hûG\1dN\arüH\1d`p\bN\ 1zGý\1dhHü
+N\ 1cGûH\ 2BN\ 4gü\11AhýG\eJN\v`rò\11L`pHüG\17`pü\ 1N\ 1zHü\19N\ 1`cGý\ 5N\ 2uHûG\ 2BN\ 5bûH$AN\ 2q\ 1JN\12aG÷H\eLhGý\ 6N\ 3hHþ\eN\ 1`zû\1d`pGúH\ 2N\ 3ú\1dN\ 1zþG\rN\ 1cù\11N\ 3lHü\ 1hþG\ 6JN\ f`|õ$LN\ 6`pHýG\11F`hû\14EhHú\19hþG\ 3`pú\ 5`pHýG\19N\ 1zHþ\ 2hGý\ 1FhHü\eEN\ 2`bGüH\19BN\ 1cGýH\ 6F`p\eAEN\ 2`yüG\11JN\ enùH\11LhGû\19N\ 4`kHü    hüG\ eN\ 5yû\ 2`pHýG\1dJN\ f`|ù\15LN\ 3`hù\19N\ 1zHú\ 6`pGýH\ 1`pý\17N\ 1`cGù\ 6hHù\ 6N\ 1cGùH\ 1N\ 3løG\15BN\ 1`kùH\ 5AJN\10oG÷H.L`p\ 3N\ 3`pGþH\fN\ 1`cùG\19N\ 2`uýH\ 2N\ 3pGû\1dN\ 2`bHøG\ 2N\ 4~H\19JN\rsGõH\15LN\ 1zGþ\1dN\ 1rHü hGû\19N\ 1zHý\ 3hG\15N\ 4`oþH     N\ 1züG$BhúH\19AhûG\ 4N\ 2`bü\15JN\12a÷
+LN\ 4rHý\1dhGý\bN\ 1`kH\ 6`ýG\ 5N\ 1zúH\ 1høG\ 3N\ 1zûH\15hþG\b`pHüG\1dN\ 2`bû\17`p\ 1N\ 2u\fJN\fe÷\17LN\ 1cü\1dhHþ\19N\ 5`}G\eN\ 3lH\fN\ 3`t\ 3JN\rsG÷H
+LN\ 1zûG\ehüH\15`ýG\19N\ 2uü\ 2N\ 1zHû\19hGú\19hHù\19N\ 5y!JN\10``GòH\ 1LhüG6hHý\bN\ 4`z\ehGû\bN\ 3HüG N\ 1züH%N\ 1zþG\ 2N\ 3`tü\1dN\ 2`fHúG\eN\ 2qHýG\ 3JN\12aò\ 5LN\ 3hHý\ 2`Gû\ 6N\ 1cHþG\19N\ 3HüG%N\ 1zHü\bN\ 4`oGø\19hHü\eJN\aoGôH\15L`pú\19N\ 1zG\bN\ 1`kúH"hG\1fBN\ 4gHþG\ 6AJN\10oü\ 3L`pú\19N\ 3hþH\ 1N\ 1rþG\19hþH\ 5N\ 1zûG%hHý\ 5N\ 3`pþ\bhGú\19N\ 2`bþ\ehHü\15N\ 1cý\ 6JN\vjGø\15LhýH%N
+`wýG6N\ 1zûH\ 1hþG\1dN\ 2q\bJN\13`{ùH\ eL`pGùH\bN\ 5`uüG\fhHü\ 5N\ 1rGû\15N\a`wH\1d`pü\bN\ 2`bGüH\ 6JN\rsGüH\19LN\ 2mGüH\ 3N\ 2`}Gû!hHù\ 6`pGùH\ eN\ 4~þG\fJN\ e`jù\bLN\ 3`h\ 5`p    N\ 1zHý\15N\ 1`cGü!N\ 3`xHúG\ 6N\ 4gü\ 6`pHþG\ 4N\ 1`gûH\ 2hýG\ 6JN\ fxùH\ 6LN\ 1`cG\eN\ 1zûH\eN\ 1`zGþH\fhúG\ 2hûH\ 5hGþ\17hHú\ e`p\bN\ 4gGýH\ 4N\ 1cGüH\19JN\10``GúH\bL`pû\ 1N\ 5mGùH\bN\ 1`cúG\ 3N\ 3`xù\ 2`pHùG N\ 2`yúH\fhûG\17N\ 1cý\ 3N\ 2`bþ\eJN\13s÷\fLN\ 4zHý\ 3`hGþH\eN\ 1cGýH\ 4húG\eN\ 1rúH       N\ 1zG\ 1hþH\19N\ 4`oûG\19JN\ 5bõH\ eLN\ 2`fü\ 6N\ 4gGýH\ 6JN\vjGú\15LN\ 1cý\1dN\ 1zûH\1dN\ 2`uúG\15hüH\ 3hüG\ 1`pþ)N\ 3lþH\ ehGþ\eB`pý\ 5AN\ 1zHý\1dN\ 2qGþH\ 6JN\12`iGú\15LhH\eN\arGþ       `pHûG\ 6N\ 3püH\1fhþG\19N\ 4~üH\ 3N\ 3lGþ\ 3JN\12aø\ 2LN\ 3hþH%`hþ\1dN\ 1`küG\1dN\ 2`uüH\vN\ 1cü\15N\ 3lþG\vBN\ 1cú\eAN\ 3lþH\bJN\ enGù\bLN\ 1zH\ 6hüG\19N\ 2mHþG\ 2`p\19`pú\ 5BN\ 5bHú\ 6AN\ 1cGüH\19JN\10``GùH\ 6LhGú\17N\ 5mHùG\fN\ 3hHþ\ 3N\ 1`kGú\19`pHûG\11N\ 3lùH\ 3hþG\ 4N\ 1cHþG\bJN\ f`eøH\ eLhüG\eN\ 4`cúH\b`pü
+N\ 1`zGýH\19hG\ 1N\ 1cý\ 5hHø\ 2`pGùH\1d`pý\15JN\v`fGøH\fLN\ 4cGþH\bN\ 1rGü\1dN\ 3`p\ 4hHþ\11N\ 4`oûG\11BN\ 1cý\15AJN\bbùH\ eLN\ 3GýH\ 6N\ 5yGüH\15N\ 1zþG\19JN\10oû\ 2LN\ 4`cHý   N\ 1`kGþ  `h\ 2N\ 1zýH\17N\ 1züG\b`pü\ 3hýH\19hûG\19`p\ 6N\ 6`aüH\17JN\12aGôH\ 5LN\ 4rúG!`pû\eN\ 1zHý   N\ 1`zþ\vN\ 2uGýH\ 5N\ 1cú\ 5N\ 2`bGýH\17N\ 1cþ\ 2N\ 3lG\ 6JN\13sò'LN\ 6HúG\ 2N\ 1`zû\ 1`pHúG\ 6N\ 1zùH\1dN\ 2`}ûG\ 3N\ 2q\15BN\ 1cý     AN\ 1zHþ\ 2JN
+``GõH  LN\ 1c\ 3N\ 1`zGþH\ 2N\ 2`}Gþ\bhHù\19N\ 3lGý\11hH\b`pGýH\ 1hþG"N\ 2`yüH\ 5húG\bJN\13`{óH\ 2L`pù      N\ 3`pGüH\ 6`hý\eN\ 1zGû\ 1`pHüG\eN\ 1`zHþG\ 3N\ 6tûH\ 2N\ 2uGýH\ 1JN\ f`eGü
+LN\ 4`zú\ 4N\ 1zHý\15N\ 1`zþ\ 6N\ 1zG$hþH\bN\ 4`oGþ\ 3JN
+~ùH\ 3L`Gþ\ 6N\ 4zHü\ 6N\ 1zGü\ 2N\ 1`kýH\ 3hýG\fN\ 6`aHú\15JN\13sGõH\ 1LN\ 6GûH)N\ 1`cùG\19húH\ 2N\ 2uGþH\ 2`pû\ 2FhýG"EN\ 3lþH\ 6hGý\ 6N\ 1cþ\ eJN\10oø\15LN\ 4`zü\ 5N\ 2`}Hù\bN\ 1`zGüH\eN\ 1`kGý\ 2N\ 5bHú\19JN\ ftGô\19LN\ 5mHüG\19hþH'N\ 3hG\eN\ 1zúH\ 1N\ 1züG\eN\ 2`yHþ\ehGý\ 5hHþ\ 6hGý\ 6N\ 1zHü\19N\ 2qGýH\bhþG      JN\12`iôH
+LN\ 4rGþ\ 5hHþ\19N\ 2`uG\1dhHú\19N\ 2uGþH\ 1N\ 4~þG\bJN\ ebóH\19LhGý\bN\ 5`uHü\ 3N\ 1zþG\19hHý\11N\ 1rGú\ 2N\ 2uHúG\ 1`pû\ 5hHü\ 2N\ 3lGü\19hHþ\ 2hGý\b`pþ\19`pHüG\eJN\bj÷H\ 3LN
+sGþH\bJN\ e`nG÷H\19LN\ 3`G\19hýH        FN\ 1zúG\ 3EhHý\19N\ 1`kGù\15`pHýG\1dN\ 2qHýG\ 6hþH\ 3N\ 4`oGþ\eJN\12`iôH\19LN\ 4`zü\vN\ 1cý\11N\ 1`cG\ 1N\ 1`küH\19`pû\19N\ 5yGùH\ 5JN\vjGú
+LN\ 1züH\15hG      `pHùG\vhH\19N\ 3hGü\19N\ 3`tHþG\e`p\1dN\ 1cý\ 3`p\fN\ 1`gþH\ 6JN     aG÷H\ 6LhG\ 5N\ 2uHüG\ 4N\ 3lûH\19N\ 1cù\ 2JN\ f`eG÷\bLN\ 3hýH\15N\ 1rüG!N\ 5`fý\ 4hH\ 2N\ 4gý\ 6FN\ 2`bGøH\14EhýG\ 3JN\13sû!LN\ 4`cûH\11N\ 1cü\1d`pGúH\17N\ 1rýG\19N\ 1zýH\ 2hG\15hHû)N\ 5bþG\ 6N\ 1züH\ 6JN\10``GüH\17LN\ 4`cGú\19N\ 1zHý\ 4N\ 1zþG\11`hú!N\ 1zHþ\18hûG\ 3N\ 2`}ûH\eN\ 2`yýG\ 3N\ 1`kHü\bJN\ ftGö\11LN\ 3húH\17N\ 1`cøG\19N\ 1`cúH\1fN\ 2`f2N\ 3`t\ 2`p\vhýG\ 3`pHüG\17hùH\ 4JN\10oGûH\17LN\ 6þ\eN\ 3GýH\ 1N\ 5bGû!JN\ ftûH\eLN\ 5mGýH\1dhýG\ 6N\ 1`kHþ\ 6N\ 1`z\ 5N\ 1zGþ\ 4N\ 6tHþ\ 2N\ 2`b\19hýG\19JN\13só\15LN\ 6ý\f`pHûG\1dN\ 2mü\eN\ 1cHûG\17`pù
+`pHøG\15FN\ 2qø\eEhHù\eN\ 1`kGý\19JN\ f`eõH\eLhüG\19N\ 3hH\ 1N\ 1rGý\ 2N\ 1`kHþ\15`hGüH\19`pü\eN\ 6`|GüH\15JN
+`wGö\bLhHü\19N\ 1cý%N\ 1rG\ 6F`pý\14EN\ 1zýH\19N      `iG'JN\13`{ùH\ 4LN\ 6û\ 6hGû\15`pHüG\19N\ 3hH\15hGü\eN\ 1c\ 2N\ 6`aHû  JN\12`iG÷\bLN\ 5m\ 1N\ 1`køH\ 5`ûG\ 5N\ 1cü\ 2N\ 1`kþH\15BF`pû\1aAEN\ 3lþG\ 6N\ 1zúH\ 2`pû\19JN\10oGôH\ 4LhùG\17N\ 4`cþH\17N\ 2mGüH\1d`p\17N\ 2`}ûG        N\ 4~ýH\ 4hþG\ 2JN
+``ø\ 1LhýH\bN\ 1`kGú\b`hHüG\ 5`pü\ 5N\ 1zHü\1dhûG
+húH\1dN\ 1`kúG\ 6N\ 2qù\15`pHüG\ 5N\ 1cû\15JN
+oþ\ eLN\ 1zH$N\ 1`cGý\ 1N\ 1cü\ 4BN\ 1zHþ\19AN\ 2`bü
+N\ 1zGû\ 1hHý\ 1JN\ ftG÷\ 6LN\ 3hHþ        N\ 1rGþ\ 6hþH\15`pGþH\eN\ 1`zý)`pGûH\15N\ 2uû\17N\ 1zýG\eN\ 2`bü\ 5BN\ 1`kHü\ 6AN\ 2`yGþ\ 2JN\ enöH\bLN\ 3hüG\19N\ 1züH$`pGþH\19N\ 1züG\15N\a`sûH\15JN\13sGûH\11LhGþ\ 4`pý\15N\ 3`hHþG\e`pþ\ 3N\ 1cHûG\bN\ 3þ     BN\ 1`kùH\1fAN\ 2`yúG\ 3N\ 2uþ\ 3N\ 2`bü\ 1JN\rsú\ 5LN\ 1`zHýG
+N\ 1cû\19N\ 1`kþH\ 5N\ 3`tû\19`pGúH\ 6`pþ\19JN\ f`|GúH\11LN\ 3`p\19`hGþH\ 6`pû\ 5`pGùH\1dN\ 2mü\ 5N\ 3pþG\ 3N\ 3`tHýG\19JN       `|ó\ 2L`pHüG\ 6N\ 4zùH\ 6N\ 5`jù\15hþG\19N\ 1`gþH\bJN\13sG÷H\ 6LN\ 1zþG\ 5N\ 3`hû!hþH\e`pû\ 5N\ 2mGúH"`pý\1aN\ 1zýG\15`p\11BN\ 1zH\15AN\ 2`yGü        `pHüG
+hHý\ 3N\ 1zGù      JN      `|û\eFLhHþ\ 4E`Gþ\19`pú\ 6`pHûG\1dhüH6FN\ 1`kúG\1aEN\ 4`oüH\ 3N\ 3lüG\19JN\13`{öH\ 5LhGú\19hHû\ 6N\ 3`pý\17N\ 1`zGþH)N\ 5uý\bN\ 5`jGúH\1dhGþ\1fJN\bjýH$LN\ 1zGù\bhHû    N\ 4gGúH  JN\ e`jGûH\19L`pGþH\ 5N\ 4`zGýH\ 3N\ 1cû    N\ 1`zGûH\ ehùG\ 2N\ 1zûH\ 2N\ 1zýG\ 6F`pý\12BEhHý\ 5AN\ 3lGþ\ehH\19N\ 3`tGüH\15JN\ e`nGùH\ 5L`Gü\ 3`pHûG\ 2`pHýG\17`pý\ 3N\ 4zHý\11N\ 1zGú\15N\ 3`tHúG\ 5N\ 1züH\19JN\10`wGö\ 3LhH\19hûG!N\a`zü\bN\ 2uHþG\ 5BN\ 1zHý AN\ 5bGù\15JN\f`eùH\15LN\ 1rGý\ 1N\ 2mHüG\ 3N\ 1cHþG\15N\ 1zH\19N\ 1zGû\19N\ 2`bHúG\15N\ 1c\ 6`pü\ 2N\ 2`bý\fJN\13`{ýH\1dLN\ 6GúH\15hýG\ 5hHþ\e`pGýH\ 1N\ 3hþG\19BN\ 1züH!AN\ 2`bø\19hGû\ 2hHü\bN\ 3`tGþH\ 3FJN\fxGó\eELN\ 1rHú\ 6hGû\19N\ 3`xHüG
+N\ 3`tþ\bhHü\ 2JN\ f`|GôH     LN\ 5`uGý\15FN\ 2`uHþ\ 3EhGü\ 2`pHúG\15N\ 4gû\ 2N\ 2uHúG\ 1`pý\ 5N\ 2qý\eJN\13sü\ 2L`pû\ 6N\ 3hHü\1d`hGûH\1fN\ 2`uGý\ehHú\17N\ 1c\ 6`pþ\17`pGùH\ 3hýG\vFN\ 3lþH\14EhùG\ 1N\ 1zûH\ 1JN\vjGõ
+L`pHûG\19hH\ 5N\ 4`kG\1dN\ 5yý\ 2N\ 1zHþ\ehGþ JN\10``÷\ 6L`pþ\ 2N\ 6HûG'hHþ\19N\ 1rGü\ 5`p\ 2hH\bhGü\ 3BN\ 1`kþH\ 1AhûG\eJN\fpõH\bLN\ 4cú\19N\ 1`zGüH\ 5hýG\bN\ 1`cûH\ fN\ 2uþ\ 5N\ 5yü\ 6N\ 1zGü\19N\ 2`bý\1dJN\13sø\eLN\ 4`cþH\15N\ 1cú\19N\ 1`cGü\f`pü\1dN\ 2uHþG\11N\ 2`b\1dN\ 1`kþH\19N\ 1zúG!BN\ 1`gHþ\eAJN\12xG÷\ 1LN\ 3`hù\19N\ 1zHü\eN\ 1cGýH\ 3N\ 3þ\15`pü\15N\ 3`tþ\ 3`pGþH\ 2N\ 1cGýH\ 3JN\10``GõH\19L`pú\15N\ 5`uGþ\bBN\ 5`}úH\19AhüG\ eN\akþ\ 4JN\f`iõH\vLhýG\ 6`hHþG\ 3hýH\ 5hûG$`pû\ 6`pHúG      N\ 4gû\ eN\ 1zþH$hüG\ 2BN\ 3lûH\ 2AJN\12`iGø\ 3LN\ 4`cHû\1dN\ 3`pGþH\ 5N\ 1`küG\ 6hùH\ 4hG\1dN\ 3`tHùG\19JN\ ebòH\bLN\ 3`pý\b`Gý\ 5`pHþG\fhþH\17hýG\ 6`pü\ 2N\ 1rþH)N\ 1zG
+hHþ\ 6`pú\1dN\ 4gGüH\19N\ 1zGü\ 1N\ 1zH\19hýG\ 1JN\11jøH\19LN        \eN\ 1`küG\bBN\ 1zþH\ 3AhGú\ 2N\ 4gHøG\15BN\ 2`yH\ 1AJN\ enGñ\eLhHú\ 6FN\ 1zGü\14EN\ 1`zü\15N\ 1`kH\ 4FN\ 1`kýG\eEN\ 3`tþ\1fN\ 1zHþ\17JN\v`jGøH\ 2LN\ 1rýG\ eN\ 1zHý\11hGý\bN\ 3hHý\19N\ 4~G\ 3JN\ eyö\19BFL`pü\1aAEN\ 4rHý\15`pý\15N\ 1cGúH\15N\agü       N\ 1`kGý\17JN\10`wùH\bLN       GüH\17húG\ e`pú\ 5N\ 5`jHüG\19N\ 1cHýG\19BN\ 1`gH\19AQGJN\14m÷7RLN\ 1`jüH!N\ 3`pü\15`Gø!N\ 1c\17N\ 1`zHûG\ 4`pHüG.N\ 1`kùH  `pü\19hüG'N\ 3`tø\15hHú1`pý\eJN\ f`eGð   BL`pHýG AN\ 4rþH
+hþG\ 3hHþ\ 2`pû\1dN\ 1`zGýH\15N\ 1`kGû\19BFN\ 1`kH\1aAEhýG\fN\ 4gü\ 2hHþ\eN\ 2`yûG\ 6JN\b`nø\ 6LN\ 6`|ú\ 3BN\ 1`gHü\1dAQGJN\14mõ\1dRLN\ 5`|Hþ\ 2N\ 2mGüH\19hûG\eN\ 1`cHü\15hGü\ 2hþH\11N\ 4`oGü\ 2N\ 1cHøG\ 3N\ 3`tü\bJN\r`{úH\19LhGý\15N\ 1`cûH\ 3N\ 2`}ûG\ 3hHþ\bB`pGùH\17AhúG\ eN\ 2`bþ\ 5N\ 1zHý\ 4hGý\ 6JN\ f`eôH\19BLhüG\19AN\ 4rûH\ 5N\ 2uý\bN\ 1rúG\ 1`pø\19`pHüG\vN\ 1cHûG\ 3N\ 3lýH\ 6N\ 2uGúH\fFN\ 2qù\eQGEJN\14mø\ 6BRFLN\ 1yH\1aAEN\ 4c\19`Gý$`pHýG\17N\ 3hûH\ 5N\ 5bþG\ 6`pþ\ ehHý\eN\ 1zGý\eQJN\11`qö\ 3RLN\ayþH      hG\ 2hHþ\bhþG\ 5`hHûG\19N\ 1`kûH\eN\ 5yþ\ 3BJN\r`oGô\17ALN\ 4rHù\19N\ 2uGùH\11N\ 3GþH\eBN\ 1cø\eAhGú\ 3N\ 2qHþG\ 4N\ 4`oH$BJN\13sGúH     ALhG\15hüH\ 5N\ 3`pGýH\ 4N\ 1rüG\ 2N\ 1cý     N\ 1rHû   hGý\19N\ 1cý\11N\ 1cHýG\ 5N\b}\17JN\rsø\ 6LhûH\bN\ 4cù\15N\ 4~Gø\15hHû\ 2hGü\ 2hH\11hþG\ 3QJN\11`qû\ 2RLN\ 1`jûH\ 5BhGý\ 5AN\ 4`z\ 6N\ 3hHû\f`pGýH\1dN\ 1`kþG\15BhýH\ 4N\ 5y\19JN\10``GöH\19ALhýG
+N\ 6HýG\eN\ 1züH\19N\ 1`cG)N\ 1cHýG2N\ 4`oüH\19N\ 4~þG\ 5QJN\14`uü\19BRLN\ 2tú\15AN\ 5`uþH\ 6N\ 1rúG\17N\ 2uü\1dhHú\ 2`pGûH\ 3N\ 1zûG\17N\ 3`tý\ 1JN
+`w÷H\ 5LhýG\ehûH\eN\ 3ü\ e`pGüH\ 2N\ 5yGþH\ 2hýG\ 2N\ 1züH\ 6N\ 3lGþ\15JN\vn÷H\ 6LN\ 2uü\ 1N\ 1zûG\ 4N\ 2`bþ\19BN\ 2`}H\1fAQGJN\12{÷        BRLN\ 1yþH\17AhGû\ehHü\15N\ 3`p\19`h\ 6N\ 1zGþ\ 3hHû\ehGú\1fhHþ\17`Gþ\e`pHüG\15`pý\e`p\bN\ 2uHþG\ 2N\ 2`bû\19N\ 1zH\ 5BJN\ ftGø\1dALN\b`uHù\15N\ 1cGøH  B`pý\11AN\ 2`bû\ 1N\ 1zGû\19`pþ\ 2JN\vjùH\bLhüG\ 3hûH\ 3N\ 2mú\ 2`pGûH\ 3N\ 3pGü\ 6BN\ 4`oHü\15AN\ 2`yþG\bQFJN\14`uö"BRELN\ 1yHþ\ 5A`pGûH\bN\ 6`p\ 6N\ 1rþG     N\ 1`kþH\19hþG\15N\ 4`oHü\ 2`pü\19JN\ f`eGð\1fBL`pHüG\19AN\ 3hHü\ 3N\ 2m\ 3hGú\15`h\ 3N\ 1cHþG\ ehHþ\ 3N\ 6`eýG\15BJN\10`w÷H\15ALN\ 5mGüH\ 2N\ 6pG
+BhHû\ 6AhþG\eFN\ 2qü\1aEhþH\19`pGüH\ 1N\ 4~üG\bJN\fxûH\15LN\ 1`zGøH\17N\aoþ\1dB`pý\ 5AQGJN\12{ú/RLN        gH\17hGù\1fN\ 1cHøG\19húH\1dhüG\17BN\ 1zHý\ 5AN\ 4`oGù\ fJN\ftùH\ 2L`hü$N\ 1zþG\fhûH$hýG\ 5N\ 2`uúH\ 2N\ 1cþ\15B`pGþH\19AN\ 2`yþG\15`pHûG\15`pû\17N\ 1zHü'hGü\ 6N\ 2qHþG\ 6BJN\13`{úH\1dALhýG\19húH\19N\ 5m\15N\ 1cþ\ 5F`üG\15EN\ 3`xú    `pHúG\ 3BFJN\vuõ\1aAELN\ 5mü\e`pHüG\ eN\ 1rþH\15`pý\ 2N\ 1zGû"hHý!hGþ\ 5N\ 4`oHü\15N\ 1`kGú\bFN\ 2qHþG\14QEJN\14`uø\17RLN\ 5`|Hú$N\ 1rG!N      `|ù\ 3N\ 1cþ\19BJN\10`wþH\19ALhGù'N\bmHùG\15hùH\ 6húG\17N\ 1cú\ 6hHû\1dBF`p\eAEN\ 2`yG\fhHþ\17N\ 1zG\ehûH!JN\ f`|GùH\1fBLhGþ\bAN\ 6`h\ 6N\ 3`xü\15`pHüG\bN\ 3lýH\ 2QGJN\10`vû\ 2RLN\abú\1d`pHþG\19N\ 1rHù\ 3`pGøH\eN\ 1zþG\ e`pþ\bBN\ 6tHø\17AJN\v`rGõH6L`pGûH\b`p.`pú\1f`Gû\17`pHþG\ 3`p\15hþH\ 2`pGýH\ 6`pù\19N\ 3lþG\ 2hûH\eN\ 1`kGþ\ 3N\ 2`bHûG\19QJN\14`uö\eBRLN\ 2tþ\11AN\ 4`z\ 1N `|HýG   `pþ\ 4BFJN\ f`eòH\1aAEL`pü\15BN\vuGüH$AN\ 2`yüG\19BN\ 2`}Hü\eAJN\10`wGö   FLN\ 4zH\ 3E`hý\ 2`pGøH\ 2N\ 3`pù\e`pþ\bhG\11N\ 5bH\ 6N\ 3lGø       QJN\14`uù
+BRLN\ 2tý\19AN\ 6hHú\15`ýG\ 2`pø\ 2hHø\ 3hG\ 3`pþ\ 6FN\ 1cù\1aE`pHýG\15N\ 2`yH\ 4`pú\ 6JN    `eGñ\19L`p\1fhH\ 1BN\ 5uú$AN\ 4g\ 5B`pGùH\ 4JN\10``GþH\fAL`p\ 5N\ 5mGüH\15N\ 1zG\ 6`hþ$hHû\ 1N\ 1`kGý\1fhHþ\19`pGûH\15N\ 3lüG\1dN\ 1zHþ\fJN\ ftGõ\19LN\azüH\1dN\ 1rüG\15BN\ 3pH$AN\ 4~Gû\11hHú\ 5hGû   QJN\11`qý\19BRLN\ 1yýH\eA`pþ\ eBhGþ\17AN\ 4rHý\ 6N\ 1`kGû\bN\ 1`cHþ\1aFN\ 2`}þG\12E`pHþG\ 3N\ 2`bù\17JN `|ú\1dLhüH\17hG\15BFN\ 5`}Hý\eAEJN\ 6`xGûH\bLN\ 1c\ 6`pGûH\ 6`hý\15hGû%hH\bN\ 1zûG\15`pû\ 4hHù\17N\bfGù\15QJN\14`uþ\1dRLN\ 1bþ\17B`pý\ 6AN\ 3hûH\bN\ 4`cüG     hH      N\ 1`kGþ\fN\ 2`b\ 2hHü\11B`pGüH\17AhGý\ 6`p\19BhHþ\11JN\10``GýH\eAL`pGûH\15N\ 4`cþG\19N\ 1zHþ\b`pGûH\15N\ 4c$hýG N\ 2`bHýG\eN\ 1zþH\ 6BJN\ ftGø\15ALN\ 4`cH\ fhGþ\1dN\ 1`cûH\1fN\ 1`kG\ 5hH\e`pü\17JN
+`kG÷\ 5LN\ 6`p\bN\ 1`zþ\19N\ 2`fHýG\19N\ 2`bHýG\ 1BN\ 1zúH\eAhùG\ 5hûH\ 3N\ 3lþG\17QFJN\14`u÷\vRELN\ 5`|Hü\15`hGùH\11N\ 4zþG\19hH\19N\ 5yü\ 6N\ 1`kGü\11BhHü\ 6AJN\10`wGô\15LhHú\ 2N\ 5`uGý\ 6N\ 1zH
+N\ 1`zGûH\ 3N\ 1zùG\19N\ 1zøH\19N\ 4~ûG\ 4`pHýG\19BFN\ 1cü\1aEJN\10où\ 5ALN\ 4`cþH$N\ 1zGý\ 2N\ 3`pHþG\eN\ 4~Hþ\ 5BN\ 2uý\ 5AN\ 2`yGú\17QJN\14`uù'BRLN\ 1yHý
+A`pGýH\19N\ 3`p\ 4N\ 1`cþG\15hHü\ 2N\ 1`z\19N\ 2u\1dN\ 1zGþ\vN\ 2`bü\19BN\ 1zH\ 4A`pGüH\1fBJN\ ftGý\bALN\ 4rúH\eN\ 4züG\17hH\17hGü\ 3N\ 2uHþG\1fN\ 2`yHþ\19N\ 1`kGþ\19BhHú\19hGú\19AJN\10``û\1dLN\ 5mû\ 6N\ 1zHþ\15hüG\ehýH\ 5N\ 3`pGýH\11`pGýH?CFN\b`kù  DEJN\ ekGñ
+LN\ 2mHüG\ehHü\15N\ 1`kGû     N\b`nHûG\eQFJN\14`uô        BRELN\ 1yHû\15A`pGýH        N\ 4`cGû\ 2N\ 1`kHý\19N\ 1`cGý\ 5hH\ 5N\ 1`kûG\11N\ 5bþH'JN\10`wGú\19LN\ 4`cøH\bN\ 6`aþG\15N\ 2`yHû\1dhýG\11`pý!hHý\ehGü\ 3B`pHüG\1fJN\10oó\ 2AFLN\ 4`cþH\ 3E`pú\ fhGý\1dN\ 1rþH\ 2`pGýH\ 4hGý\15hH\15hùG\ 2hùH\15`pý\ 2FN\ 3lGþ\14BEN\ 1zHü\11ACFN\ 5vý
+DQGJN\15`mó\11RELN\ 5`|Hû\11N\ 4rGû\fN\ 2uþ\19N\b`nHûG\1dBJN\13`{ùH\1dFLN\ 1zGú\eAEN\ 5mHúG\ 5N\ 1`cøH\ 1N\ 1`kýG\ 5N\ 1cHüG\1dhýH\eBN\ 5bþG\15AJN\f|úH\bLN\ 1`kGþ\19N\ 4zH\19N\ 1zGþ\1dN\ 2`bHýG\ 6BhøH\ 6A`pù\ fhGú      QFJN\11`q÷\10BRLN\ 1yH\eAEN\ 6húG\19hH\19N\ 2`uGý\1dhH\1dhGü)hHü\1dN\ 5bGý\ 6N\ 1zHú\eN\ 2`yGþ        CN\ 1wH DJN\14kGò\ 6LhHù\15BFhGù\eAEN\ 3hHú\ 5N\ 1rGú\ 6N\ 1`kH\ 6FN\ 3hýG\e`pHüG\eEN\ 2`b\ 5hHþ\15hGþ\ 5BhúH\ 5AJN
+oGüH\ 6L`pGûH\ 3N\ 1zGý      N\ 4zH    `pý\ ehûG\ 6N\ 3`tú\ 5BN\ 1cHüG\ 5AQFJN\12dó\bBRLN\ 1y\eAEh\bN\ 4zHúG\19N\ 1rú\b`p\bh\b`p\b`hHú\19hGý\15hHýG\19h\19hH\19`p\19N\ 4~G\19`p\19BhüH\19A`pü\19hGú\bCFN\ 4{Hø
+DEJN\13`aGóH\ 2LhGü$N\ 4rHúG N\ 4`ký'`pü$`pHüG'`pHýG N\ 2`yý\ 2N\ 1zü\ 5N\ 1zHù\1dBhGþ AN\ 2q BCN\ 2`v\80\80\80Ä1HýG1JN\18`pMhïH1GýH1AN\ 1`~G\80¸3Õ\ 6ë\bã\aã\ 2ՠÔ\ 2é\ 1Ú\19FN\12|÷H   LN\bq    N\ 3d     N\ 3{     JN\ e`qGß
+LN\bq
+N\ 3dH
+N\ 3{
+EN\ 3iG÷\ 5JN\12|ç$LN\bq$N\ 3dH$N\ 3{$N\ 3iûG\ 6ë\bFJN\12|û\vLN\bq\vN\ 3dH\vN\ 3{\vDEJN\ f`{GùH\ 2LN\ 2`q
+h\ 2h\15Fh\1aEh\19h\ 6h!BF`h\1aAEh h\ 4h\11h\19h\ 6h\ 2h\19N\ 2`q        h\eh\11N\ 2`q\ 2h\ 2N\ 2`q\ eh\15JN\11`mGëH\ 1LN\ 3{G\ 6N\ 1cHüG\fN\ 3H\ 3hGü\ 1N\ 6`\ehH\ 1CN\ 4sýG\11JN\12|÷$DLN\ 2`yýH\1dhþG\15hüH\vBN\ 1`zúG    AN\ 1cú\1fN\ 1zH\vC`hûG$N\ 3dH$N\ 3{$DN\ 2qGýH\ 3JN\ f{GúH\19LhGû\eN\ 3Hû\19`pþ\ 6N\ 4vGþH\ehG\1dhHþ\ 6N\ 5`mGü\ 3CFJN\10`zô
+DELN\ 4~Hü\ 1CFN\ 4rGü
+N\ 3dH
+N\ 3{
+DEJN\ f`{GöH\19LN\ 3dû\19hGû\bBN\ 1`c\19A`pHýG\15hHû\ 5`pGüH\bhGü\19N\ 3`lHù\ 5N\ 3{GùH\19JN\fG÷H\ 6LN\ 1c\11FN\ 1`c\14EN\ 1zG\15N\ 1zH\11N\ 3{øG\ 6N\ 6`øH JN\ e`qGø\ 3LN\ 1cHüG\ 2N\ 2mHþ\19N\ 4v\19`p\19N\ 5`mGû     CN\ 1`þ\17JN\12|ø$DLN\ 4~H\19N\ 2`uþ\ 2CN\ 1`zGþ$DN\ 2qHúG%CN\ 1rúH$DN\ 1`gúG\19CN\ 1rúH$DJN\f`hGýH\ 3LN\ 1`kGø\ 1BN\ 1rHúG\17A`pHþG\17N\ 1cû\ 3N\ 6`hH)JN
+`zGõH\15LN\ 3ûG\ 5N\ 1zûH\15CFJN\agGü\ eDELN\ 5qH\ 3`pý\1d`pGþH\1dCFN\ 1`zGþ\rDEN\ 1`gHý\bhGø\ 6hHø\1dCF`hGýH\fDEN\ 1`gGú\vCFN\ 1rHú\vDEN\ 1`gGú\19CN\ 1`HúG\eDFJN\12`eøH\14ELN\ 3dGþH\19hGþ\ 6N\ 1zþH\ 3B`hþG\ 5A`pþ\1d`p\ eJN\ 4cøH%LN\ 4zGûH$N\ 4`g$JN\a`gGú\bLhHþ\ 3hþG\ 6BN\ 1r\15AN\ 1`kHý\ e`pGüH\ 3N\ 2`qý\ 3hþG\ 3N\ 6`ûH\fCJN\10`cGù$DLN\ 2qú\ 2N\ 3Hý\19hýG\eCN\ 2`uHþG$N\ 3dH$N\ 3{$DFN\ 1`gGü\14CEN\ 1`HúG\ 4DJN\12`eóH\ 5LN\ 3dû\vN\ 1zGü\bhûH\19N\ 2mG\15N\arHøG\11hüH\ 2FJN\ eiGôH\ 3LN\ 4`g\ 4EN\ 2`uúG\ 2F`púH\ 3BEN\ 3dG6AFN\ 3{\ 4EN\ 2`qHû\eJN\11`mGôH\19LN\ 3{ýG\eN\ 1züH      BN\ 1`zûG\1dAN\ 1`kþH\17`pGüH   N\ 2`qý\1ahþG\15N\ 3dûH\eJN\fGùH  LN\ 3hý   N\ 1`kGý\ 1JN\ 4cûH\11LN\ 1cGûH\1fN\ 2mýG\ 2BN\ 4`gý\ 3AN\ 2iHúG\15N\ 3{\ 3JN\r`v÷\ 2BLN\ 1`c\19AN\ 1`kùH\ 2N\ 3dù\ 2hGø\ 5hHù.N\ 6wGýH\eCN\ 1wGý\11JN\12|ö\eDFLN\ 5`bH\ 1EhGþ\19CN\ 1`cHþG    N\ 3dH\ 6FN\ 3{\1aDEJN\ fsG÷\ 5LN\ 2iH\19N\ 1zýG\ 1`pHûG\fN\ 1`cø      N\a`cHüG\ 3hHû\eJN\ e`qGðH\ 6LN\ 3dù\15N\ 1cGúH\19N\ 2`uû\ 6hýG\19BN\ 4vú\17AN\ 5eHýG\19JN\11|ó\ 5LN\ 3`lHü\15hGý\ e`pHûG\ 1N\ 3ýH\ 2CN\ 4ný\ 3DN\ 2`yG\ 1CN\ 3`iû\ 6JN\12|ù\ 2DLN\ 2qHýG
+BFN\ 2`uú\1aAEN\ 1`kHû\eCN\ 1`zGü\19DN\ 1`gHù\19`pGþH\ 1CN\ 3`d\11DJN\ f`{GøH\bFLN\ 2`qGûH\14E`pGþH\ 3hGý\19N\ 3Hü\ eN\ 1`kG BN\ 3dý\ 5AN\ 2iþ     JN      `úH\1dLN\ 1rû!hG\19N\ 1`kH\eFN\ 3{Gú\14EN\ 6wHûG       CN\ 1`þ\ 5JN\12|÷\ 1DLN\ 3lHý\1dN\ 1zGú\19N\ 5`qþH\1fBN\ 1zþG\ eAC`ýH\17DN\ 2`yýG\19N\ 2`qHú\ 6JN\ e`qGô\19LN\ 1cHýG\ 3BN\ 1rHþG\ 4AN\ 1cû\ 2hH\ 3hGü\17CN\ 1rHúG\fDN\ 2`yýH\19N\ 3{ü!C`hGþH\1dN\ 3iGû\19DJN\12`|û\eLN\ 2iúH\ 3N\ 1c%FN\ 2mþG\14EhþH\1dN\ 1`kýG\19N     sHû\bBJN\11`mGóH\fALN\ 3dú    CJN\ 2`yGð\19DLN\ 4gHûG\ 3`hH\ 1N\ 1züG\ 1N\ 3`løH\15høG\ 5B`pú     AC`Hü\ 5DN\ 2`yGþ\ 3C`H\eBDJN\ f`{GóH\15ALN\ 3`lG\17`pHüG\17hHü\11N\ 1`cGúH\ 2`pGþH\bhúG\ehûH\15N\ 6wýG\ 6N\ 3{ý CN\ 1`HûG\1dDJN\12`|ö\ 2LN\ 3`lýH\ eBN\ 1`zGý\15AN\ 2`fHûG\fN\ 2`qHýG\19CN\ 1rúH\ eDN\ 2qý\19JN\fGùH\19L`pþ\19N\ 3G\ 3N\ 5qùH\1dN\ 2`qýG\ 3JN\r``~õ\ 1CL`HûG\1dDN\ 2qû\15N\ 1c\ 2N\ 1`zHþ\19`pû\ 1hGþ\19N\ 3`lH\ 5BN\ 1zG\19ACN\ 3`{Hý%DN\ 2qGúH BJN\11`mGöH\bALN\ 3`lúG\15N\ 1zHþ\eN\ 2`uþ$hGü\ 4N\ 3dû$N\ 6w\19JN\r``~÷H    BLN\ 2mG\17AN\ 5qHü\ e`pGýH\19N\ 3{û\1dJN\fGùH LN\ 1c\ 4hGü\ 6N\ 1`cþ\ 6N\ 1`küH   CN\ 4nù   N\ 3{GùH\ 3BDJN\ f`{GøH\ 5ALN\ 3`lG\bN\ 1cHùG\15`hûH\ 3`pGþH\19N\ 1`kGý\fN\ 5`mHøG\ 2`pþ\ 2N\ 2`qùH\19JN\11eGü\19LN\ 4vý\ehHý\bN\ 1`zGü\ 2N\bmHû\19N\ 2`qGû\17JN\11e÷H\19CL`húG\fBDN\ 4`g\1dAN\ 5qøH\15`pü\bN\ 2`qG\e`pþ\ 1JN\fhûH$LN\ 1zGù\19N\ 3h  N\ 1cHýG\eN\ 3dHúG\15C`þH\19JN\v`uGò\eDLN\ 2qHúG\ 5N\ 1`kýH\bB`hGü\eA`pHúG\ 6hýH\1dN\ 1züG\11hH\19FN `{GúH\14EJN\11eGü\1dLN\ 3`lúH\19hG\ 3N\ 3ýH6N\ 4vý\ eN\ 5`múG\ 5JN\11eôH        LN\ 3{þG\15hHþ\ 2N\ 1`kGú\fN\ 1rHûG\eN\ 4`~þH\ 2N\ 1zGþ\ 3C`þH#DJN\a`vGøH\ 6LN\ 1`cý\ 4N\ 1cGûH\fhG\1dN\ 2`qHúG.N\ 3dùH\bhøG\19C`H\1aDN\ 1`gGþ\15CJN\10`zô\1dDLN\ 2`yþH\eBN\ 2mþG\bAN\ 1cHûG\19húH\fhúG\ 6N\ 3{øH\19JN\a`gGø\ 4LN\ 1zHü\ 3`pGýH
+hþG\ e`hHþ\ 2N\bmýG\ 4CN\ 1rüH\17DN\ 2qû\ 3JN\r``~Gð!LN\ 2`uHûG\ 3N\ 1cHýG\ 5`pû\ 4N\ 3{Hú\ 5hGø     C`Hû\ 6DN\ 4`cGý\1dJN\11|û\fCL`û\ 4DN\ 5qýH\ 1FN\ 1zþG\14EN\a`zHù\19JN\ 6`hGõ\19LN\ 3dHþG\ 1hH\ 2C`hGùH\ 3N\ 3{\eDJN\ f`{GþH\ 6LhGø\eN\ 3`lHþ\ 2hýG!hýH\ 5hGþ\ 3B`\ 2AN\ 1zH\eN\ 1cù\fN   sGü\19hHþ\19JN\ 3{GôH\19LhúG\17JN\ f{÷H\ 3LN\ 3dGùH\15N\ 1c\19N\ 2`uý\ 2`pGýH\eN\ 2`qù\ 6N\ 3dGú\eJN\vmú
+L`pHþG\ 6hH\bBFN\ 1`zýG\eAEhýH\19N\ 1zþG\ 3`pHþG\1dN\ 3dû\19CN\ 4nþH\ 4DJN\ 4`vGúH\ 2L`p\ 6C`hGýH\17DN\ 2`yG\eN\ 2`qHü    JN\11eGø\1dCL`ý\bDN\ 2`bþ\ 2`pû\19`pHúG\17N\ 1`zHý\1d`pGþH\ 1BN\ 4`~G\ 6AN\ 2`qüH\ 3JN\ e`qG÷H$LN\ 4`gGþH$BF`hûG\eAE`p!N\ 4`~úH\b`pü\bN\ 2`qGû\1dN\ 3{HþG\15JN\11|ö\ 4LN\ 2`qHüG  `pü\ 1N\ 3H\19hüG\ 6N\ 1zHû\1dBN\ 3`lG\ 3AC`øH\ 5DJN\anGù\ 2LN\ 3hHúG\ 6N\ 6`ú\ 4N\ 2`qHü'BJN\ eiGõH     AL`pû\ 2hGú\1dN\ 1rHüG$N\ 1cü\ 2hHþ\19hûG\17høH\ 4N\ 6wþG\19JN\ 5`mü\bCLN\ 3`dýH\ eN\ 3{þ\11DN\ 1`gG\ 2JN\ eiô\15LN\ 1zHþ\eN\ 1züG\ 6`hüH\ehG\ 6hþH'N\ 4`~Gý\eB`pHøG\17AJN\a`~ó\19LN\ 2`uHüG\ 6`pý\eN\ 3{H\15`pý\ 2N\ 3{GùH\15N\ 2`qþG\ 2BJN\r``~ûH\eALN\ 1`kG\eN\ 1rü\ 5JN\ 6{ø\bLN\ 4`~Hû6N\ 2mGý\eN\ 4`~üH\ 1BhûG\ 5AC`úH       N\ 3{ü\ 6DN\ 2qý\ 2BJN\r``~Gô\17ALN\ 2mþH
+hGþ\ 5N\ 4`~þH\1dN\ 4vúG\11N\ 2i\1dJN\f`{óH\fLN\ 3ýG\ 3hH$N\ 3{ûG\ 3B`p\ eAN\ 2i\ 2hüH\ 2C`hGûH\ 5DN\ 2qý\ 1JN\f`{Gù\ 3LN\ 2mþH\fN\ 1zûG\ eJN\ 5`}ð\19BL`pHýG\eAhHû\15N\ 2`uGþH\ 6hGþ\ 3N\ 3`lüH%CN\ 1`z\19DN\ 1`gýG\ 1N\ 3{HüG\ 6JN\f`dò\ 6LN\ 1`zH\rN\ 5`yù\19N\ 3dGý\ 6C`þH\19DJN\ fsGó\15LN\ 3{Hù\bN\ 3hGýH\f`pþ\ ehGú\1fN\ 3dHûG\ 5B`pHüG      AN\ 5eý
+JN\f`dò\ 3LN\ 1`zHý\19N\ 2`}ýG\bN\ 6wûH\ 2hûG\ 5N\ 2`qHü\19JN\ e`qGò\vBL`pHýG\ 3AN\ 1zHþ\ 2N\ 1`zG\15`pû'N\ 3`lHý\ ehG)CN\ 1rHý\fDN\ 1`gGú\15JN
+`cüH\ 2LN\ 4`kGûH6BN\ 3`lG\19AN\ 3{HýG\19JN\ e`qø\1dLN\ 3`lHý\ 3`pGúH\ 1N\ 2`uþ\ 3N\ 1zþG\19N\ 6wHþ\eN\ 2`qG\ ehüH\ 3JN\ eiG÷H\15LN\ 1`kùG\e`hüH\17hGü\ 5N\ 1cHùG\19N\ 3`lüH\bN\ 3`d\fJN\f`Gô\11BL`pHüG       A`pHþG\ 2N\ 3`pýH\fN\ 2`qGüH\ 4N\ 3dûG\ 3JN\r``~ø\19LN\ 6{ú\bhHú\ 2BN\ 5qþG\fAN\ 3{þ\1dJN
+`cõH\ 5LhGý\19N\ 1`zH\ 2N\ 1`kG\1d`pHûG    N\ 3{ýH\15N\ 3{\11`hü\eN\ 1`gGú\ 2JN\r``~ûH\ 2LN\ 1cþ\19hG\1dN\ 1`zúH\ 1hùG\ 2hH\17JN\ 4cGñ\1dBFL`pHúG\eAEhûH\15N\avGý        JN\a`gøH\19LN\ 3ùG\e`pû\ 1`pþ\ 2hýH\ 2N     súG\19JN\f`dõ\1dLN\ 3Hþ\ 2N\ 4vü\ 4hGû\17N\ 3`{Hý\1dN\ 2qGýH\ 6JN\ e`qGö\19BL`pHüG$AN\avýH\19N\ 3dýG\e`pý\bJN\ e`qù\bLN\ 3`lHþ\ 4N\ 2`u\19`pGùH\ 6hùG\bhýH\ 1N    `{GýH\ 2JN\ eiGøH\ 4LN\ 1zþG\11hýH\17hüG\ 4F`hûH\14EN\ 1zGþ\ eN\ 4vHøG\ 6`pø\15N\ 2`qHü\ 5`hü\ 4JN\ 6``G÷\ 2LN\ 6`û\19JN\ e`qù\ 6LN\ 2`q\bN\ 4cHü\eN\ 3dGýH\ 3FhþG\16EN\ 3{ý\ 3hýH\19N\ 2`qþG!JN        sõH\19LhþG\eN\ 3{H\19JN\vmGø\ 4LN\ 4vHþG\1dhHü\eN\ 1`zGû
+N\ 5`yHþG\ eJN\b`bö\bLN\ 1zýH
+N\ 1`cú\ 5N\ 1zGþ\b`pþ\ 2N\ar\19N\ 2`qþH!JN\r``~Gù.LN\ 1cú\15N\ 2mHù\ 3N\ 3dGûH\ 2N\ 3dGþ\19hHü\1fF`hGüH        EJN\fwGüH\19LN\ 1zGþ\19N\ 1`zH\19`pý\1fN\ 1zGø\ 1N\ 3dHùG\19N\ 6wù\15JN\ eiù\ 6LN\ 1`kHû\ 4N\ 1`zGû\19N\ 5`yþ\bJN\a`göH  LN
+`cùG\bJN\fò\eLhþH\ 3N\ 1`kûG\17N\ 3Hý\fN\ 3{Gù\1dhHø\15N\ 3{GûH\19N\ 3{GüH\ 6JN\11eGý\11LN\ 3dþ\ 1`pHýG\ 2N\ 2mþH\15N\ 1`kGü     N\ 2iþH\15N\ 1zGý\19N\ 5eHûG\1dJN
+nù     L`pþ\19húH\ eJN\ 3`pGú\19L`pý\1dN\ 6{\19hHý\bN\ 2`qûG\fN\ 1rýH\fN\ 2qý\ 5JN\ e`qGð\ 3LN\ 1zHø\15`pGùH\11N\ 1`cþ\1d`pGþH
+N\arû\ 5N\ 2`qG\ 3JN\11|ø\ 5LN\ 3{þH\ 2hGü\19N\ 2mHþ\ 6N\ 2`}Gþ\19N\ 2iHû\ 3N\ 3dGú\ e`pHþG\ 2N\ 2`qHû\ 5JN\f`{Gó\eLN\ 1rþ\ 2`pHûG\19N\a`zþH$`hü\eJN\ fsGõ)LN\ 3{ûH$N\ 1zûG   N\ 1`züH\b`pþ\ 6N\ 1cý\ 3N\ 3{Gý\ 3JN\ 6dõH\ 6LN\ 2`uGþH\19N\ 4`~þG\15N\ 3{HúG\ 1N\ 2iû\ 6JN
+``~ú\1dLhüH\15N\ 1zûG\ 5F`pý\14EN\ 2iþH    `pý\ 6JN\a`~GùH\ eL`pGøH\ 5FN\ 2møG\14EN\arþ\ 3N\ 1rH\1dN\ 1`gGú\ 3hHþ\19JN     `dGú\ 6LhüH\17N\ 3{Gý\17hHû\fJN\a`gGõ\ 4LN\ 2`uHûG\15N\ 1zûH\ 6N\ 4`~üG\ 3N\ 3{ý\ 6JN\fû!LN\ 1`kH\19N\ 1`cGþH
+N\ 1zGý\b`pü\ 3N\ 6``Hù\ 4JN\ fsGõ\bLN\ 3`lþH\ 3hGû\ 2`pHøG      N\ 1`cü\ 3hüH\ 3N\ 6`hýG\17hHû/hGú\bN\ 2`qHý\1fJN\ eiGöH.LN\ 2`uý\fhGü\ 3N\ 1`kHú\ 2N\ 3{Gý\19N\ 6wHþG%JN\f`{òH\1dLN\ 3ýG\11N\ 3{Hü\ 6`pGúH\ 2hþG\eJN\v`uù\ 2LN\ 4v\ 1N\ 2mHþ\ 5N\ 1cGýH\ 6N\ 6wGü\ 2JN\vmû\ 1LN\ 1züH\ 5N\ 1zúG\19`hHþ\15N\ 1zGù\ 6N\ 1cHúG\19N\ 2iþH\ 3N\ 6`hGýH\15JN\11eGô\eLN\ 3dHúG\15N\ 3þH\19`pý%`pGûH\eN\ 3dü\ 1N\ 3{GüH\ 3F`h
+EJN\fwGøH\ 1L`pGüH\19N\ 2møG\b`pø\ 3N\ 4`gHþG\ 2N\ 2iHüG\ 6JN    `hô\19FL`pþ\14E`hHü\bN       Ã¼G\ 6N\ 2iý!JN\ eiô\ 6L`p\11N\ 1zHü\17N\ 6{GýH\17N\ 3dþG\eN\ 3dHû\ 5JN\viGö\ 5LN\ 1cû hþH\ 3N\ 3{þG
+hH\19hüG\ 1N\ 3{\ 2JN\ e`qù\1dLN\ 2`qø\17hH\ 6`pý\bN\ 1`c\ 5N\b`uú\19N\ 3{GþH\ eJN\rnGô\ 3LhýH\15N\ 1`zûG\15`p%N\ 1cü\15JN\bqõ\19LN\ 4`gHúG\ 3`hûH\19N\ 4`gù\ 5N\ 3dGú\ 3N\ 1rHû$N\ 1`gGú\ 6JN\r``~ýH\bL`pGùH\bBN\ 2`uû\ 4A`pþ  hGú\19N\ 3d\19`pHþG\19JN\b`bú\ 1LN\ 3hû\ 2N\ 4`~Hú\ eN\ 4`vGþH$N\ 1`gGú\ 5hHü\15JN\f`dGùH\ 3LN
+rþG\bJN\ e`qó     LN\ 3dHúG\fN\ 1cú\ 6`hHþ       N\ 2uGýH
+N\ 3dù\ 6N\ 3{GùH\ e`hü$JN     wGø\19LN\ 1zH\19FhGý\14EN\ 3d\ 2`pHþG\1dN\ 5eHüG\ 5JN\r`vñ\ eLN\ 1c\ 2N\ 1`c\ 2N\ 1cþ\fN\ 2iHü    `pü\ 3N\ 3dGþ\ 6N\ 2`qHý\ 2JN\ eiGõH\15L`pGþH\ 2hG\ 6BN\ 2mHý\15AN\a`zGü       JN\ 6wôH\19LN\ 3{øG!N\ 3`lü\ 4N\ 2`qþH\19JN\r`vGôH\ 1LhüG\ 2`pHýG\ 6N\ 1rHýG   `pý\ 1FhHý\14EhGø\ 3`pHýG\ eN\ 6wHû\b`hþ\fN\ 1`gGú
+JN\ eiù\1dLhüH\ 5N\ 1cü        N\ 6{GýH\19`pþ\17JN\a`gGú\ 3LN\ 1cý\eBN\ 1`zHý\17AFN\ 5qGý\14EN\ 2iý\19N\ 1rþH\eJN\ fsGý\ 6LN\ 3{øH\ 5N\ 4`ký\ 6N\ 6`ü\19JN\v`uG÷\19LN\ 3Hþ\ 6N\ 1zGû\19hHý\ 3N\ 3`lG\19hûH\ 5N\ 5`mþG\19JN\11|ü\ 3LN\ 3`lþH\19`pGýH\19BN\ 1`cý\1dAN\ 1zG\ 6hûH\ 3hùG\ 3N\ 2iüH\fJN\a`~GúH\eLhGû\17`p!`p\ 3`hHý\ 3N\ 5`bGû\ 5FN\ 2iHüG\14E`pHüG\11`øH\1dBFN\ 2qý\1aAEJN    `dGù\ 2LN\ 3`lHü\ eJN\b`yG÷\fLN\ 3hû\ 2BhHû\eA`pGùH\19N\ 3`lúG\19`pù\19JN\bq÷\ 2LN\ 1zHú\ 2N\ 3Gú\ 6`pHûG\17N\ 6``üH\ 4BN\ 2q\fAJN\ e`qG÷\19LhHú!N\ 2`uGûH$N\ 2uû%N\ 2`qGûH        N\ 3dGþ\ 3hHù\fhG\ 5JN
+`cóH\17LhGü\ 6hHþ\19N\ 1`zùG\eBhùH\bAN\ 4`~Gþ\ 3hHû  N\ 5`müG\ 6JN\11|ñ\ 2LN\ 3dHüG\ 6N\ 3hHýG\ 4hüH hûG\e`pù\ 2N\ 6wH\ehúG)BN\ 2`qHþ\eAJhGö\bN\ eiô\1dL`p\ehüH\ 1høG\ 5`pþ\ 6N\ 5`qúH\eJN
+`zGû\ 1LN\ 3{ýH\bN\ 1c\1dN\ 3`pýG\ 6N\ 3{ýH\19hGý\ 2N\ 2iHúG\ 6BN\ 3dúH\eAJN\rnGü\ 5L`pþ\bN\ 2`uHþG\ 3hüH        N\ 6`GüH\1d`hû\ 3N\ 1`gþG\bJN\ eiö\19LN\ 5`}\eN\ 5`mHþG\ 2JN
+`zô\ 3LN\ 1zHý\ 4N\ 1`cGüH\ 6hG\15N\ 3`lþH\19N\ 1zúG\eJN\v`uô\19LN\ 3`lHü\15N\ 1`cGûH.hýG\ 4N\ 5qHý    N\ 2`qGû\ 6`pHûG\17N\ 2iþ\ eJN
+`vóH\bL`p\ 6`pý\19BN\ 3{Gý\ 6ACFN\ 4nHþ\eDEJN\f`Gü\ 3LhúH\ 2N\ 1zþG\ 4N\ 4zHþG\ 3N\ 5`mü\eJN
+røH\1dLN\ 1zþG\17N\ 1`cHüG\17N\ 3`lüH\bBhGþ\ 3AN\ 3dH\ 2hþG\eBN\ 2`qHú
+AJN\r``~G÷\bLN\ 3`pH\bhGú\ 2N `{þ\19JN\r``~ûH\ 1LN\ 2`uGûH\ 1FN\ 2uü\14EJN\ 5uGö\17LN\ 1zþH\15`pú\ 6N\ 2mGú\1dN\ 1cý$N\ 2iHþ$N\ 1zýG
+N\ 2`qHý\ 1BN\ 3{GûH\15AJN\11eGø\eLN\ 4`gHúG\eN\ 1rþ\15N\ 1c\eBN\ 3dú\17AFhHù\14EN\ 2`qG\ 3`pù\ 4JN
+rüH\ 3LN\f`{Gü    JN\ eiô\19LhHý\19N\ 1züG\15N\ 2mHþ\bhGü\eN\ 1zýH\ 3FJN\ 4cGú\1aELhHý\17N\ 1`c\19hGû\17BN\ 4`gý\ 5A`pHýG\19N\ 2`qH\ 6BN\ 3{GþH\1dAJN\11eG÷
+LN\ 4`gHúG\ 4N\ 2mýH\15N\ 4v\ 5JN\avGô\17LhHý\19N\ 1`cý\19BN\ 4`~Gû\ eAN\ 3dH\bN\ 2`qþG$JN\ ei÷\bLN\ 1zHþ\ 2N\ 6`lGüH1`pü\19N\ 2`qGü\fBFN\ 3dHü\eAEJN\viGû\ 1LN\ 1cü\15hHý\19N\ 6`hGý\11JN\ e`qó\rLN\bqHúG.FJN\ 5uöH\14EL`pü\19hGþ\1dN\ 2mHþ\ 2BN\ 4`~Gù     AN\ 3{HþG\eN\ 3dH$JN\11eGö\19BLN\ 3dHùG\ 4AN\ 1cù\11N\ 1`cHüG!N\ 1zûH        N\ 3`lüG\1dJN\ 5`bøH\1fLhG\ 6N\bmûH\ 6hûG\ 6JN
+`côH\1dLhùG\ehH\ 2N\ 2`uGþH\ 4N\ 3dGùH\19`p!JN\b`yGú\ 5LhýH\1dN\ 3ýG\ 3N\ 2uHýG\ 1BN\ 2`qý\19A`pHþG\19N\ 2iü\1d`pHýG\ 5JN\ e`q÷\17LN\ 4`~H\ 1hGý\ 6N\ 2`uHùG\bN\ 6`hH\bJN\v`uGò\eBL`pý\15AhHý\ 6N\ 1`cþ\15`pGþH\ 2hGþ\ 6N\a`cHþG\19JN\v`u÷H\bLN\ 1`kGý\ 5N\ 5`qHý\bJN
+`zGõ\ 2LN\ 3`lHþ\bN\ 2mGþ\19`p\ 2`pHùG\19hûH\ 6hG\19N\ 3dHûG\15N\ 5`mûH6JN\f`dGõH\15LN\ 1`cù\e`pGúH\15N\ 4vû\19JN\b`yGó\17LhH\ 2BhGþ\11A`pHüG\19`pHûG\19`hH\1dN\ 2uGùH\bN\ 2`q\ 2N\ 3dúG\ 2`pý\bJN
+`cóH\ 2LN\ 3ûG\ 1`pû"N\ 4vHýG  N\ 2`qHû\ 2N\ 3{GýH\fJN\v`qGóH\ 6LN\ 5qûG\15N\ 3{ý\ 1JN   `ùH\ 2LhGü        N\ 2mHû\17N\ 3d\19`pý\1dN\ 3{GúH\eFJN\ eiGø\14ELN\ 2`qHüG\15`pý'hH\ 6hþG\vN\ 1`zùH\15N\ 1zGù\ 6`pþ\ eN\ 3d\ 3hH\19JN\bqGüH\15L`pGýH\17N\ 2mGü\ 5N\ 1zHý\1d`pþ\15hüG\ 4N\ 6`ù\fJN\fù\ 5LN\ 2uý'N\ 1`zHû\15hGû\ 3N\ 3`lHø  N\ 3dG\19N\ 3dûH\fJN\11eGô\ 5LN\ 4vHûG\11hýH\15N\ 1rþ
+N\ 5`bGü\15JN\b`yøH\1dL`pGþH\bN\ 2møG\15N\ 1zûH\eN\a`zGþ\eBJN\vmû\ 4ALN\ 4zþ\19N\ 3d     N\ 3dûH\15N\ 3{û\eJN\11eGù\19LN\ 3{òH%N\ 1zýG\15N\ 1`zýH\ 5hþG\ 3`pHýG%N\ 1züH\ 5hGþ\15N\ 3{Hû\ 2hGþ\ 3JN\b`b÷\1fLN\ 2uý\ 4N\ 2mH'N\ 3d\ 6N\ 3düG\17`pû\1dJN
+röH\fLN\ 1rþ\19N\ 1`kùG\ 3hùH\15N\ 3d\19N\ 3{û\ 5N\ 3{GþH\eJN\r`vGöH\eLhGü\ 3N\ 2mHø\ 3N\ 4vGùH\ 3JN\a`~GúH\ eBLhüG\15AN\ 2`uø%N\ 2uHúG\17N\ 3dû      N\ 2iHþG\ehHý\ 5hGý\ 4JN\ e`qõ\15LN\ 2`qHüG\15N\ 1`kþH\eN\ 3Gù\17hHþ\ 4BN\ 3{Gú\ 6AhHü\vN\ 3{\eJN
+`zGöH\fLN\ 2`uý\ehGü\ 2N\ 1cHþG\1dJN\ 5uöH\ 4BLhùG\11A`pý      `p\15N\ 1rü\ eN\ 1zHü\ 2N\ 3dþ\17BhGú\ 3AN\ 3{\ 4JN\r``~ú\ 3LN\ 2`qHüG\1dN\ 1`kùH\1dN\ 3G\19N      `dþH\ 6JN
+`vGü\ 1LhûH\ 1N\ 1zýG\eN\ 3{þH\ 2N\ 3{!JN\v`uGõ\ 6BL`pHüG\17AN\ 1cý\17B`hHù\ 4A`pGûH\ 3N\ 4v\ 5FN\ 4výG        EJN
+`còH\ 2L`pý\ 4N\ 3hGýH
+BN\ 3{þG\17A`pHùG\17N\ 5`mH\bJN\11eGñ     LN\ 6{HùG\15N\ 4`~úH\ e`pû\ eJN\b`yGø\15L`pú'N\ 3h\19N\ 1c\bJN\ 5uùH\19L`p\ 1hGü\ 6`pHúG\1dN\ 2mH\19BN\ 3`lGù\ 5A`pHûG\eN\ 2i\11BJN\bmóH\15ALhüG%N\ 1cþ\eJN\ 4`kø
+LN\ 1cü\ 2N\ 3`pHø   BN\ 3{Gù\ eAhHý\15JN\ 6dGû\eLN\ 2møH\ 3N\ 3dø  N\ 4vGú\ 2N\ 2`qHþ\ 3JN\ eiGúH\ 3L`pGúH\19N\a`gýG\ 4N\ 2iHþG\ 6hHü\15BJN
+`cGô\ 4AL`p$BN\ 1`zûH\17AhúG\19hHý\ 3N\ 1zGù\fQJN
+`oý7RLN\ 3p\15N\ 2`qú\ 5N\ 5uHû\15BhGü     N\ 2`qý   AhHù\ 5N\ 2`qGû\ 5`pHüG\ 1JN
+røH!LN\ 2mGþ\1dN\ 3`lH\19N\ 6`hGùH\eJN\ e`qGø\19LhHý\ 2N\bqü\ 5N\ 2`qGû\19QJN\11q÷\1dRLN\ 3pHþG\1dBN\ 5`qHû\1dA`pGüH\ 6N\ 1cGýH'JN\ 3Gù\19LN\ 1`cHüG\ eBN\ 1cý\19AN\ 2iúH\bBhüG\19AhHý)N\ 3{GýH\ 4hG\1dBJN\vmù\15ALhHý\ 3BN\ 1`cGùH\eA`pý\ 5N\ 1zGþ\ 4N\ 4vHûG\11QJN\ e`fø\ 6RLN\ 3pü\19N\ 2`qþ\bN\ 1`kHþ\eN\ 2`u\ 2N\ 6`hG\1dN\ 3dHü\ 2QGJN\14`uò\ 3RLN\agHýG6N\ 1`cHþG\15BN\ 2uü\fN\ 2`qý\fAN\ 3`lHûG\eJN\v`uúH\ 2LN\ 1`kGþ\vN\ 1`cý\ 3hûH\ 1`pþ\ 3BJN\ 4cGû\11ALhþH\ 5BN\ 1`cGþH\bN\ 2`}Gü\ eAN\ 3dHùG\ 6JN\b`yôH\eLN\ 1züG\ 2hüH\ eN\ 1`zGý\ 3N\ 4`~Hý\15`pGþH\ 6QGJN\ e`}û\ 2RLN\a~üH\15N\ 2`uGýH\1fN\ 5qûG\ 5N\ 2iû\ 2hHú\15hGü\ eN\ 2`qüH      BJN\r``~Gø\17ALN\ 1cHûG\11N\ 1`cû\ 3`pHûG\15N\ 3`lûH\ 3QGJN\ e`}ü\19RLN\ 3pþ\19N\ 2`q\eN\ 4cH\19`pþ\ 5BhGù\ 3AN\ 3dHûG\19JN\avóH\ 5LN\ 6{ø\1dhGú\ 6N\ 3{HüG\ehüH\17BJN
+`cGõ\15ALhHø\ 4N\ 2mGþ       hùH\15N\ 1zþG\17hHû\15N\ 6`hGú%QJN\11`bý    RLN\agHþG!`pý\15`húH\ 6N\ 4`g\19hþG\bN\ 6`Hù\19JN\11eG÷\1fLN\ 2`qü\fhýH\ 2N\ 1cú N\ 2mGþ\ 6N\ 4`~H\bhG  JN\ 3`lòH\ 4LN\ 6`ù\1dQGFJN\11`yó"BRELN\ 6`tü\1dAN\ 1cHþG\ 3`hHù\b`pGüH\ 5hþG\ 3`pHþG\ 1N\arû\ 1FN\ 2`qþH\14EJN\ eiGüH\ 1LN\bqGþH\19N\ 2`qGú\17hH\eJN\ eiGý\15LN\ 3`lûH
+hýG\ 6N\ 2mþH\ e`pü\17N\ 1zGü\15JN\ 4`kö'QN\ 6`tû/RLN\ 5`bú\ 2N\ 1cHýG\ 5hýH
+N\ 1`zýG\ 2`pþ%`pHþG\ 6N\ 3{Hü\15JN
+`zGó\ 5LN\ 3{Hþ\19N\ 1`küG\bN\ 2müH\eN\ 3`lþG\ 2hHü\1dhGü
+N\ 2iHþG\eN\ 3dHþ\ 3JN\r`vGòH  LhþG\ 5N\ 2mýH\19N\ 1zýG\ 3hHý
+hüG\ 3JN\bqñ\ eLN\ 2`qHûG\ 1N\ 3ýH\bhûG\ 1N\ 4`~úH\ 5hGý\ 1hH\ 2QGJN\ e`}ù\17RLN\a`oýH\19húG\ 6N      `úH\15húG\fJN\vmö\15LN\ 3`pýH\ 4N\ 3dGþH\ 5N\ 1zýG)N\ 2iHþG\ 4N\ 3dþH\19JN\r`vGôH\15LN\ 1zûG\e`hýH\19`p'N\ 1cþ    hþG     N\ 3{H\19QGJN\ e`}ø\ 2RLN\ 5`bü\19N\ 3hHýG\ eN\ 1cHüG\19N\ 3{øH\eN\ 4vøG\eJN\ e`qö\15LN\ 3{þH\ 4hGú\ 3`pHùG\ 3N\ 2`u3N\ 4vþ\15N\ 3dþH\ 2QGJN\11`yø\eRLN\14`uH        JN\f`{Gõ\ 3L`hHþ\ 2N\ 2uGýH\15N\ 3dû       JN\vmGó\ 2LN\ 4`~Hü\19N\ 1`zGû\bN\ 4`g\ 2N\ 3`lHúG\1dQJN\11`bó
+RLN\a~ýH\ 6hüG\eN\ 3Hý\11N\ 3dý!N\ 1zGü\ 2N\ 2iHüG\11JN
+`zõ    LN\ 3H\ 2hþG\ 6`pù\ 5N\ 6`hHþ\ 2JN\ eiGü\19LN\ 3{ùH\15BN\ 5uùG        AN\ 3dù\ 1N\ 3{HøG\ 4JN\f÷\fLN\ 1zH\b`p\1fN\ 1`cGùH\ 1hûG\bQJN
+~ù\19RLN\agú\ 2N\ 3Hü\ 6hýG\15húH\eN\ 3dGþH\ 6N\ 2`qùG\ 6hýH\eN\ 3{GûH\ 2JN\11eGö LN\ 2`qHþG\ eN\ 3Hû\ 2BN\ 2`}Gú\19AN\ 2iHû\19JN\a`~G÷H\11LN\ 1`kýG\ 6N\ 1`cý\11hH\ 5N\ 3`lGü\ 6hþH\ 3N\ 2`qùG\ 5QJN\11qø\1dRLN\a`oþH\15N\ 1rGúH\ehúG!N\ 1cü\ 3N\ 4vHýG\19N\ 5`mH\ 1JN\r``~Gô\bLhH\ fN\ 1züG\bN\ 1`zHþ\19`pGüH\19`pGýH\1dN\ 3{Gþ\ 3N\ 3{HúG\19hþH\11hGý\ 3BJN\ 6`ú\fALN\ 2iHþ JN\a`gG÷\ 3LN\ 1cü\ 4hþH\ 5QGFJN\a`où\vRELN\ 6`tü\eN\ 3þH\ 3N\ 1zG%B`pHüG\ 4AN\ 3{Hý\ 2N\ 6wGüH\19JN\r`vGöH\ 3L`p\ eN\ 1`zýG\ 6N\ 1zHý\1dN\ 6`hýG$hüH JN\ eiGù!LN\ 3{ýH\fN\a`~þ$hG\17hûH\eQGJN\ e`}ù'RLN\ 5`b\17N\ 2uþ        N\ 1r\ 5`pHûG\17N\ 1zH\ 5N\ 3`lG\17JN\ 4vó\ eLN\ 6`hHû\ 5N\ 3{GýH\ 3JN\ eiGùH\ eLN\ 2`uGþH\ 2hGû\ 5N\ 1`kHû\19N\ 3{Gü\ 5N\ 3`lHüG\15CFN\ 3`iHþG   DEJN\ f`iñ\ 2LN\ 1zHù\ehG\15hH\15N\ 2mGü\eBN\ 1cHþG\15AN\ 3dþ\eN\ 2`qHý\19QGFJN\11`yõ      RELN\ 3p\ 1N\ 4`gý\eN\ 6{\ eJN\a`~ü\eLN\ 3`pþH!N\a`zGû\bJN\fú\ 6LhþH\ 3N\ 1zGþ\17hH\ 2N\ 1`cý\ 2N\ 1züG\15hH\vN\ 3dGüH\ 2CFN\aoýG
+DQJN\15`mó\11RELN\a~Hü!N\ 3Gü\ 4BN\ 1cHýG\17AN\ 3dý\ 4N\ 2`qHú\1fJN\ eiGð\19LN\ 2`qHüG\eN\ 2uü\ 3N\ 1`zH\ 1N\ 4`g\ 1JN\a`gGü\ 3LN\ 1zHþ\19N\ 1r
+hG
+N\ 1cü%N\ 3dHüG    N\ 6`H\15QGFJN\14`uò\10RELN\ 6lþH\17N\ 1zøG\1dN\ 3úH\ 6`pû\11BhGü\1dACN
+kHüG DJN\ 4s÷H\19N\ eiGó\ 3LN\ 2`q\ 3N\ 1zH\ 3hGý\ehH   N\ 2`uþ\ 5N\a`zúG\ 6N\ 2`qûH\ 3QGFJN\14`uõ\bRLN\ 6`tHýG\eEN\ 1cHüG\19`h)h\19hH\19N\ 1zG\19B`p\eAN\ 2`q\19hH\19CFN\aoýG\vDEJN\ faõ LN\ 3`p hú\ 5`pHùG\1dN\ 3`lþ N\ 2`qú\ 5hHúG\fBCN\ 5j\80\80\80ÆH1Gý1JN\18`pMhïH1GýH1AN\ 1`~G\80¸3Õ\ 6ë\bFN\ 1wãH       ELN\ 1wG\aã\ 2FJN\ 1wûH
+EGßH$LN\ 1wGù FJN\ 1wñH\fDN\10zGùH\1cLN
+s\1cN\ 2`u\1cN\ 1r\1cE`\17h!h\19FJN\ fpGè\fLN
+s\vN\ 2`uH
+N\ 1rG   E`ûH\eCN\ 1`zþ$N\ 1wüG\ 2DJN\ 1``øH\1dhGò\eCLN\ 2jý\ 1DFJN\11rõ\1dLN
+s\1dN\ 2`uH\1dN\ 1rG\1dEN\ 1rHý\15J`pGøH\ 4LhGï\1dhúH\ 5CN\ 1``Gþ\19FJN\ 1wûH\ 6DEN\ 1rGò\ fLhHþ\ 5J`pGðH\11L`pGýH)CN\ 1``Gð\ 5JN\ 1wûH\bDN\ 1`zGôH\ 6N\ f`aGúH
+BLh\ 5Ah\15h6hG2BF`H\1aAEh\17h
+Bh\fAh\17h.h\15h\fFh\14Eh\fh\1fh\15h\ 5h      Fh\1ah\ 4BN\ 1z\1ah\1ah\1aAEN\ 1z\17h\ 2h\ 2h.hG3`H\ 3h)Fh\1aEh
+Fh\14EhG\11hH2`)h  hG2N\ 1`z.CN\ 1`w\ 6DJN\ 2`róH\ 5LhýG\17CN\ 1rýH\ 6BDJN\11uGüH\ 6LN\ 2`uGü\15AN\ 3pHþ\eN\ 4kGüH\ 1hG\ 1CN\a`o\bDJN\11`c÷\1dLhHù\fB`hGüH AhGý\15N\ 1zH\e`pGþH\ ehùG\ e`p\ e`pù\15N\ 1zHþ\15BN\ 1cý  hG      hH      AN\ 1zGý\eN\ 2`uH\ 6N\ 3wGýH\19`pø)JN\10`sGô\19BLhHü\bAN\ 2mGüH
+N\ 2uGýH\ 3`pý\15N\ 1zG\19N\ 5`}ýH\ 5húG\e`pü\19hýH\ 5hüG\ 6`hHýG\ehüH\19N\ 1rGû\eCN\ 1rHú\ 3DJN\r`kG÷\ 1LN\a`{H\ 1hG\eN\ 1rûH$N\ 4rûG\ 1BJN\10`sòH\ 2ALhýG%BN\ 2mHþG\bAN\ 3pH\17N\ 5`fGýH\15N\ 1c\19hüG\ 5N\ 2`müH\eCN\ 1``ûG\11DJN\11rõ\15BL`Hü\19AhG\ 5N\ 1zúH\ 4N\ 1züG\ 3`p\ 3hûH\ 5húG\15N\ 1zHþ hGú\19BN\ 1zHú\19hG\19hH\19AN\ 1zGú\ 4hHú\15hG\19N\ 1`cùH\19N\ 1cü\15N\ 1rG\15JN\f`i÷H
+LN\ 1cü\ 2FN\ 2`}G\14EN\ 5`f\ e`p\19`pü\19`hHüG\ eFhH\14CEN\ 2eGùH%BDJN\11uGþH\ 6L`pGýH\fAN\ 1rG\ 5B`pþ\ 5A`pý\ eN\ 1zHú    N\ 1cGøH\15N\ 5}ý\19hýG\17N\ 4`rHüG\ 4`pú\19JN\11}÷\11BLhýH\fAhûG\ eBN\ 1rþH\17AN\ 2uGþH\eN\ 1cú\ eBN\ 2`fGûH\fhG\fhH\fAN\ 1cGþH\ 2hGý\1dN\ 1rHú\ 4N\ 1cGýH'N\ 2eü\17`pGùH\ eBJN\ f`xGúH\eALhûG\ f`hü\19`pHþG\1aN\ 1cû\17`p\17N\ 1`kHû    N\ 5`fGüH$hGý\ 3N\ 1zHø\ fN\ 1rG\ fJN\b`fó\ 3LN\ 5}ý\15N\ 2mHûG\1dN\ 1rýH\ 3CN\ 3`|Gü\17BDJN\12mýH)LN\ 1`zGûH\ 5AN\ 1zGþ\19N\ 2`fHþG\ 6hHý\ 5N\ 4`sGü\19hHü\bN\ 4`rGþH\eJN\ f`aGö\15L`pþ\ 4N\ 2`uHü\11hüG\bhùH\ 4N\ 1cü\19N\ 1`kGü\17N\ 2`fHüG\ 4BJN    xøH\eALhþG\19B`üH\15AhüG     hüH!N\ 1`küG\ 2húH\15húG\ 2`pú\bBN\ 2`}Hû\17hG
+hH\15AN\ 5uþ\19`þG\b`pþ\19`hû\11CN\ 1rHû\ 2DJN
+`cGñ\ 6LN\ 3`aHý\b`pþ\19hýG\ 2`úH
+N\ 1cþ!N\ 1`zGþH\ 6N\ 1`cùG\11CN\ 1`wþ\eDJN\ f`uõ     LN\ 1cþ\ 6`p\ 6N\akHüG hHþ\ 6N\ 3wGûH\1dCN\ 1`zGýH\ 1DJN\11`}Gý\bLN\ 3hýH\ 6N\ 2uý\b`pGüH\1fN\ 1züG\15BN\ 1zýH\17AN\ 3pGü\19N\ 2mHýG\17`hHüG\ 1N\ 1`cûH!JN\10kGùH\17BLN\ 1`zGþH\1dAhýG'N\ 2uû\e`p\eN\ 1cHùG\ 2BN\ 2u
+hýH\15AN\ 1cGûH\ 1N\ 2mû\ 2hG    N\ 1`cHý\ 2N\ 1rGú\ 6JN\r`sõH\ 6L`pü\ 5FN\ 3`xý\vEN\ 3`aGþ!N\ 5|þH\1dN\ 1züG\1dCN\ 1`wHþG\ 4DJN\12`uõ\bL`pþ\19`pþ\bN\ 2mHüG\bhýH\15`pGûH\1dN\ 1zþG\17`pHýG\ 6`pþ\ 3BN\ 1zHþ\17AN\ 1`kûG\eN\ 1`cH    hGü\eN\ 1cû\eN\ 1rHü\ 6N\ 1rGý\ 5JN\ f`a÷H\15L`pý\ 6B`hý\19AN\ 1cGüH\19N\ 2`f\15BN\ 2`}Gþ
+AN\ 4`kHú\ 1`pþ\b`Gû\eCN\ 2`mH\19DJN\ e`fGûH\ 5LN\ 1`kGø\ 3`p\ 3N\ 1cHýG\eBN\ 2`}Hü\15AN\ 2uGýH\1fN\ 1`cþG\19N\ 1`cýH\ehüG\b`þH\19hGû\19`pHøG\19JN\11}ô\19LN\ 1zýH\bhG\ eN\ 1`zý\ 6`pHúG\ ehúH\ 2`pþ\19`pGþH\eN\ 5}ù\eN\ 6wþ\eJN\ f`aGö\ 3LN\ 1`cH\ 5N\ 3pG\15N\ 4k\ 3`pú\eN\ 1rHú\15`p\ 6N\ 1c\ eJN\r`dGöH\ 3LN\ 3GþH\bN\ 2`fý\1dN\ 5fG\15N\ 1`cüH\ 6hûG\ 4`hú\ e`pHýG\ eN\ 1`zü\1fCN\ 1`wHþG\11DJN\ f`uü\ 3LN\ 1züH\ 6N\ 2`}Gü\ 3BFN\ 1`kHú\1aAEN\ 2`fGûH\15N\ 1`zü\bhþG\17N\ 1`cúH\ 3`hú\17hGû       JN\10kû   BFLN\ 1`cH\1aAEN\ 1`kGû
+N\ 1zHþ\fN\ 1zGþ\ 5N\ 4`sHü\ eN\ 3GüH\17N\ 3wû\ 3C`hGüH\17DJN\10`kG÷\ 2L`pHûG\1d`hü%N\ 1`kþH\17N\ 1cû\f`p\ 6F`pGþH\fEhGþ\bBFN\ 1cHýG\1ahùH\1aAEN\ 1`kGþ\ 3`pHýG\ 5N\ 2`uHþ\1dJN\v`vGúH
+LN\ 3pGú\ 5BN\ 2`}Hû\ 5AN\ 4zG\ 3`pý\ 5N\ 2mý\1d`Hý\ 2N\ 1zGü\ 6CN\ 1`wHþG\ 6DJN\11`zûH\15LhGú\19B`Hú\bAN\ 1zGþ'N\ 1cHþG\15hH\19hGû
+N\ 1zHú\15N\ 5}\1dhGú\ 5`Hú\fN\ 2`uþG\ 5N\ 1`zù$CN\ 1rþH\eDJN\10`kGþ\bLN\ 2`uûH\17hGý\bhþH\15N\ 1`kG\19`pHùG\b`pý\19BN\ 1zHý\15hG\ 5hùH\ 5AN\ 1zøG\11húH\ 5N\ 2`uG\15hHú\ 1hGú\19hHý\19`hý\bN\ 1`zGüH\1aJN\10kG÷H
+LN\ 1`cüG\ 5FN\ 4`sH\eEN\ 5uGùH\ e`pþ\15N\ 1`cúG      `pû\19`Hú\ 5N\ 1zG\eCN\ 1`wý\ 5DJN\12`uó\ 2BLN\ 1`cHú\11A`pGþH\19N\ 1`kGû\ 3N\ 1`kHþ
+BN\ 2`}úG\15hùH\15AN\ 1c       hûG\1ahHý\ 6N\ 1rGú\eJN\v`nû$LN\ 1`zþ\eN\ 1zúH\17hG\19N\ 1zHø\1dhGø
+hHû\ 2N\ 1zþG$N\b`}H$`hþ)`pþ\ 2C`hGúH\ 4N\ 1wGþ\19DJN\ e`zúH\ 5LN\ 1`kGý  N\ 1cHûG\19BN\ 1zH\ 4AN\ 1`kþG\1d`pù\ 2hHú\15N\ 1`cG\1d`pý\bJN\r`dø\eLhüH\19BN\ 1`z\19AN\ 1zûG\15N\ 1`kùH\19`p\ 1N\ 6xüG\1fN\ 5eHüG\ eJN\ f`aöH\17LhG\ 2N\ 2`uýH\ 5N\ 2uGýH\ 5BN\ 2`}ùG\ 4hùH\ 4AN\ 1zGþ\eN\ 1`cHú\ 3hGû\ 2N\ 3`þH$JN\r`sGû
+LN\ 1zHþ\17hGü"`pHûG       N\ 6`iûH
+N\ 1`cúG\19N\ 1zýH\15`Gû\ 6FN\ 1`zþ\ 1CEN\ 2jHúG\1dDJN\11ró\ 1LN\ 1rþH\17hýG\ 3N\ 1zH)N\ 1zúG
+`pù$hþH\19N\ 6`xý\ 5`pû      N\ 3wGúH\ 1JN\ f`xGøH\eBL`hú\17AN\ 2`fGúH\ 3N\ 2uý\15N\ 4`sGý\15N\ 3wý\ 3`pHþG\15N\ 1`zHýG\bJN\10kö6LN\ 4`kHü\19BN\ 2`fý
+AN\ 2uGüH
+hüG
+N\ 1rúH\17`pGþH\15hG `pþ\15hHþ\ 5CN\ 3oû\11DJN\11`}Gò\eLN\ 3`pHýG\ eFN\ 2`fþ\ 4E`pHúG\ 2BN\ 1cù
+AN\ 1cHøG
+N\ 1zùH\ 5N\ 3`hû6JN\ e`nG÷H\ eBLN\ 1`zþ\ 6A`pGþH\15N\ 2`}þG$N\ 1zûH\b`pGýH\ 3BN\ 2uý
+AN\ 4cü\e`pGúH\ 5N\ 2|ýG\eJN\ f`xù\fLhüH\ 4húG\15N\ 1`zHþG      húH\15N\ 3`aG\ 1BN\ 1zþH        AN\ 2`fGþH\19hùG\1dN\ 3`hþ\ 5N\ 1rHþ\15BJN\ e`nGøH\15ALN\ 2`}Gý\ 2hHý\17N\ 5`nGûH\19hüG\19N\ 1rHþ\ 2hG\ 1hýH\ 4N\ 1zGþ\17`hHþG\17hHý\fCN\ 2eGüH\ 6DJN\ e`fGôH\ 5BLN\ 6xþG      AN\ 1cHûG\ 5N\ 5mý\ 5N\ 1`z\bJN\11}ú\ 2LhúH\bN\ 1zG\ 2N\ 2mHúG\19hH     hGù\ 1N\ 1cHûG.BN\ 3pþH       AN\ 2`}üG\ 6`ûH\ 6N\ 1cþ\19N\ 2`mGü\ 5hHþ\1fC`hGýH\ 5DJN\ e`fG÷H\ 5L`pù\ 3N\ 1cGýH\19`pGýH\bN\ 1cü     BN\ 1cGýH\15AN\ 1`kýG\19N\ 1züH\bN\ 1`cGý\ 2`pHþG\1d`hHþG\ 5JN\ e`nø\ 1BLN\ 1`cHû\ 5AN\ 4kGùH\15N\ 1zùG\15N\ 3pýH'N\ 1zþG\15`ûH\ehýG\15N\ 1`kHý\ 3N\ 2|Gù\ 5`pHüG\19JN\10`sõH\19LhùG
+N\ 1`zþ!N\ 1cú\ 3N\ 2`fHûG\ 1BN\ 2uþ\15AN\ 6ü\ eCN\ 2`mHü\19DJN\10cG÷H\11LN\ 1`zü\19FhGü\1aEN\ 1zHý\19N\ 1zGþ2hûH)BN\ 3`xú\15AN\ 1`kGû\ 4N\ 1`cýH
+hûG\ 1hHý\bhGû\eN\ 1rHû)N\ 1`zGúH\19JN\ fpG÷\15LN\ 1`cHý       N\ 1züG\19N\ 1cþ\ 1N\ 1cý\ 2N\ 2`fHûG\ 4N\ 1cú
+`hý\1fN\ 3\ 4`hHøG\eJN\10kð\19BLN\ 1`cHû%AN\ 4kþ\ 3N\ 5`fGûH\ 3N\ 2uý\ 5N\ 2`mýG\17C`úH\1dDJN\11uGúH    LhüG\eN\ 1`cúH     hG\17N\ 1zþH\17`pþ\ 2N\ 1`kþG\19N\b`}ýH\eJN\ e}GûH\ 6LN\ 1rGþ\ 6N\ 1cHüG\ 2`pù\1dN\ 1zHü\ 4BFN\ 2`fû\1aAEN\ 2uGýH\ 2`pý\ 4N\ 1`cGù\19`p\bhHþ\15`ûG       JN\rkö\ 5BL`úH\ 5AN\ 3`aýG\ eBFN\ 2`fý\1aAEN\ 2`fHþG\ 5N\ 1rHù     N\ 3`Gþ!`pû\ 2JN\11}÷\1dLN\ 1zHþ\ 5N\ 1rGþ\ 5N\ 2`}Hü\eN\ 1cGüH      `pû!BFN\ 2uGûH\1aAEN\ 1cGþH\ 1N\ 1`cùG\19JN\v`nõ\ 2L`pþ\ 5B`üH\eAN\ 1zúG\17N\ 1zþH\ 5hGû\19`pHýG)N\ 1cHþG\ 3`pHþG\ 6BN\ 1zHþ%AN\ 1`kGû'`pHüG\15`pú\19N\ 1`cHø\ 3hGø\bN\ 2`mHþ\ 2JN\ f`xGøH\19LN\ 1rGþ\ 5N\ 1zHþ\ 2N    `iþG\ 3N\ 1zHü\ 4`Gþ\19hHý\ ehGû\15N\ 1`zHüG\ 6JN\10kò\ 1LN\ 3hHü\15N\ 3pG\fBN\ 1cHüG\ 4hùH%AN\ 3þ
+`pû\15JN\faGôH\ 2LN\ 2mGýH\15hýG\17`pþ\ eN\ 2uHúG\bBN\ 2`}úH\ 5AN\ 2`}Gþ\ 3hHþ\ eN\ 5|þG\ 6hHý\ehG\eBJN\ fxõH
+ALN\ 1cü\1dN\ 1zGü\f`pHýG\ 5hHþ
+N\ 1cGüH\ 6N\ 3`xü\19N\ 1zGû\bN\ 1`cHý\eJN\r`{Gú\fLN\ 1züH       hýG\17N\ 2`uùH\1dBN\ 4kü\eAN\ 1`kGþ\15N\ 5mHúG\17`hú\ 3JN\ f`aüH\eLN\ 4c\15hGü\eN\ 1züH!`pþ\ 5BN\ 2uü\ 5AN\ 3GûH\ 6JN\fxG÷\ eLN\ 2`uHû\ 3`pý\19N\ 1zGý\eBN\ 4kú)AN\ 3`pHüG\ 2N\ 1cHþG\15hüH
+`ýG\ 2N\ 2mHþG\ 3JN\ f`xö\15BFL`Hý\eAEN\ 1`kýG\bhùH\19N\ 1cû\eN\ 1zGü3hþH\ 5hüG!BN\ 1`kHý\eAN\ 1`kG)hHþ\b`hGøH\ 3N\ 1zG\ 6hHü\ 2N\ 1`zGýH!hüG\1dJN      `xú\ 2BLN\ 2`}ýH
+AN\ 1`kþG\bN\ 2`uHþ\eBJN\fxG÷\fAFLN\ 2mþ\vEhúH\15N\ 1`kýG\17N\akHûG\eN\ 2m\ 1N\ 1`z%húH!JN\ efGø
+LhþH   N\ 1zûG\19`pý\1dN\ 1cþ\ 1BN\ 2`fHýG\ 5húH
+AN\ 1cû\17`pý\ 2hGý!N\ 1`zHüG\ 2N\ 1zøH    N\ 1rúG\eJN\ faø\ 3BL`pþ\eA`pHýG\ 5N\ 3hH\1f`pGüH\ 5`pý\ 6N\ 3`aGþ\bJN       `iùH\11L`p\ 5`hGøH\15N\ 4`sýG\ 6`pþ\19BN\ 1cHúG\eAN\ 3hþH        `pþ\1dJN\vfG÷\ 5LN\ 1`cþH\ 2hGú\b`pHúG\19N\ 1zýH\b`pý\ 5N\ 4kGûH\ehþG\bN\ 2`uþH\17hûG\17`hþ\ 6hHý\15N\ 1`cGü     JN\ f`aúH\19LN\ 1rGû\19N\ 3`xý\19`pHþG\bhHþ%BN\ 1cþ\ 5AN\ 1`kþG\ eJN
+sö\17BL`pHûG\eA`pý\bN\ 1`cûH\b`pú%`p\15N\ 1cGýH\ 5BN\ 2`}Gû\17AN\ 2`}H
+hþG\ 1N\ 1`zHýG!N\ 1zHû\15`Gû\bN\ 1`cHû\eJN\10kG÷H\ eLN\ 1`zGüH\ 2FN\ 1zG\fEN\ 2u\ 6BN\ 3pH\eAN\ 2`}Gü\11N\ 1rHü\ 6N\ 1`kGý\15N\ 1rH\ 3N\ 1rüG\ 6JN\ fpòH\vLN\ 1`zý!N\ 3`aGý\aBN\ 2`}Hù\ 5AN\ 1cGùH\ 4N\ 1`cG      N\ 1zHù\ eN\ 3`Gû\19JN\11}õ\ 2LN\ 4zH\ 5`pý\1dhþG\bN\ 1`kHþ\ 6N\ 3pGü\ 4N\ 1`cHý\ 3`pþ\ 5N\ 1cGþH\bN\ 1rGý    `hHüG\bJN        Ã´\ 5BFLN\ 1cHùG\eEhH\eAN\a`zGþH\1dJN\10kGõH\ 2FLN\ 2`uG\eEN\ 1cHüG%N\ 1zýH%`pGþH\15`pGþH\1fBN\ 1cü\17AN\ 2`}Gú\19hHù\19hGþ\ 6N\ 1rüH\19hGü\ 6`pHùG\ 5JN\r`dõ\ 6L`pý\15`pHúG\ 2`üH\ 2N\ 1cGûH%høG\ehH\e`pGûH\ 6N\ 1zG\1f`pHþG\ 2`pû\eN\ 6pHü\1dN\ 1rüG\bhHþ\ 2N\ 1`cGü\bJN\ f`aúH\11BLN\b}GùH\17AN\ 2`}ûG\17`úH%høG\19N\ 1cý\ 5N\ 1`zú\19N\ 1rHø\1dJN\10`sGó\eLN\ 1c\e`üH\ 1`pø\ 6N\ 1`kGù\ 5hHþ\15N\ 1cGýH\ 5BFN\ 2uú\eAEN\ 4`kýG\ 5JN\a`s÷H\ 5LN\ 1cGúH\19BFN\ 1`kG\1aAEN\ 1`kHþ\11hG\17N\ 1`cHý\v`pGþH\1d`pGüH\15`ûG\ 2N\ 1`cúH)hüG\17JN\10`sõH\15LhúG\ 3N\ 1`cH\ 5`pGûH\ 5hûG\fhH
+hGù\e`pHùG\15`pû\15BFN\ 3pýH\eAEN\ 1zûG\19N\ 1cý\ 1`hþ\17`pHúG\ 5N\ 3wHþG\15JN\ fp÷H\1dLN\ 1rG\ eN\ 3pþH\e`pþ\ 5N\ 1zG\15N\ 4`kúH$N\ 2`uGþ\15hþH\ 2FhýG\14EJN\ fa÷\ 3LN\ 2`uHü\ 5hýG\ 6hùH\eN\ 1cú
+N\ 1`kGú\17BN\ 2u\15AN\ 2uþ\ 6hHø  N\ 2mGýH\19hGû\ 2N\ 3wþ\1dJN\ fxüH\19LN\ 3pGü\bN\ 1zHû\eBFN\ 2uGùH\1aAEN\ 2uü\ 6N\ 2mþ\11N\ 1cþ\1dJN\r`dG÷H\ 5LhGý     N\ 2mHüG\bN\ 2`f\ 5N\ 1cü        N\ 5uHüG\ 5N\ 2`uýH\ 1BJN\r`sGø\15AL`hþ\ 3N\ 2uHüG
+N\ 1zýH
+N\ 5}GüH\ 5húG\15N\ 2mý\15`p\e`h\ 2N\ 2mû\ 6JN\10`súH\ 5LN\ 3GûH
+hG%N\ 1zHú\ 5hGû\b`pHûG\ e`pHþG\eBN\ 2uú FhHý\1aAEN\ 1zGþ\ 2N\ 1zHû\19N\ 1rGþ\15N\ 1zHý\ 3`pGþH\19N\ 1rþG\ 3`hø\ 5hH\15JN\10`sGþ\bLN\ 1züH\15N\ 1`zþ\1dN\ 1cGúH\ 2N\ 2uú\17BN\ 2uý
+AN\ 2uGùH\19N\ 2mü\1dN\ 1`cGü\19N\ 2mþ
+JN\fpûH\19LN\ 2uý\ eN\ 3`aGü\ 5`pþ\15N\ 1`zþ\bN\ 1`cH\19BJN\r`sGû\1dAL`ýH
+hGý
+N\ 2`fþ\ eBN\ 3`aHý
+AN\ 1zûG\ 1N\ 1zùH\17N\ 1rþG\1dN\ 3`hHùG\ 6JN\10kö$LN\ 1zùH\ 3N\ 1`zù\19hGü\19`pþ\ 5hHý\eN\ 1`kGý\19hH\15hüG\ 4BN\ 1`kûH
+hýG    AFN\ 4zHý\eE`pGþH\ 2N\ 1`cG\ 6N\ 1rH
+JN\10kG÷H\eBLhGþ
+AN\ 6`xü\ 6N\ 3pHü   N\ 2`uGü\bN\ 1`zHüG\ 4N\ 1`zHüG\bBJN\ e`fø%ALN\ 2mù\e`pHúG\ 4N\ 2`}üH\bN\ 4`süG\1d`hû\19N\ 1zýH\ 5hþG\15N\ 1`zHýG\ 2N\ 1`zHûG\19JN\ fxòH\19LhGý\ehH\ 2`p\15N\ 2uø\15BN\ 3`xGüH
+AN\ 1zGþ\15`pHþG   hHþ\ 5N\ 3ý JN\vnGõ\1fLN\ 1`küH\17hüG\ 4`pþ\bhHý\ 2N\ 1zþG\ 3BN\ 1zûH
+AN\a`cýG\ 2hýH\eJN\10kG÷H\fBLhýG\15AhH  N
+sGþH\15hüG\19N\ 1`z\ ehH)N\ 1`zGùH\ 4hùG\ 6N\ 1`zù\bJN\ efúH\ eLN\ 1zGû
+N\ 1`kHü\ 3`pGþH\19hGý\11BN\ 2uHþG%AN\ 4zþH\15JN
+`dGûH%LN\ 1c\bBN\ 5`ný
+AN\ 1zþG\ 2`pû\19N\ 3hHü\19N\ 1rG\eJN\ e}÷\15L`hHþG\ e`pü\15N\ 1zHý
+hGú\ ehHù\15N\ 6aGøH\1dN\ 3`ùG\19N\ 1`cûH\ eBJN\ f`aGú\1dALN       `iHþ\17N\ 2`uGý\ 4`pý\fJN\vnöH\1dLN\ 2`}Gþ\19hH       hûG\e`pû\ 6FhHû\ fBEN\ 1cGüH\ 5hûG\ 5AN\ 4zþH\ 3FN\ 1cGûH\14EN\ 2|ùG\eJN\ f`a÷H\bLN\ 1zGû\1d`Hû\ 6N\ 1zGù\ 5N\ 1`kHü\ 5N\ 2`}Gþ\ 2N\ 3`xHüG\17hûH\19N\ 1rúG\ 3N\ 2mù\ 3`pHúG\ 3N\ 1`zü\19JN\ f`aõH\ 6LN\ 1rûG\ 3N\ 1`kHþ\19BN\ 4kGüH\ehûG\eAN\ 1cHþG\15hûH\eN\ 1zýG\ eN\ 1`cýH\ 1hþG\ eN\ 1rH\15JN\rsGøH\ 3L`pGüH\ 3`pý\15N\ 1zýG\bhûH\ 5N\ 1cü\bhýG\ 5BN\ 2`}üH\ 5AN\a`zü\ 2JN\10kGõH\eLhGú\15`pHüG\19N\ 1`zHûG\ eN\ 2uú      `pHþG\fN\ 1zHþ$hýG\ 1N\ 3`xû\ 5N\ 1`cþH    N\ 3`ûG\fJN\ fpùH\ 2LN\ 2`uG!N\ 1zùH\19N\ 1`kúG\19BN\ 2uù
+hHú\eAN\ 2uGýH    N\ 1rG\ 5N\ 1`kHý\ 3`hGúH\17hýG\bN\ 1`zHýG\vJN\ e`nô    LN\ 2uHûG\ 2N\ 1`kþH\11BN\ 2u\17AN\ 2uGýH     hGþ\15`pHþG\bN\ 1`zHúG\19høH\15hþG\ 3`hHûG\ 2JN\f`iôH\ 3LN
+`{G\15JN\fxùH\ 4LhG\1dN\ 2m\15N\ 2`}ýH\ 5N\ 1zGý\b`pHüG\19FN\ 2`fHûG\14EN\ 6`ùH\15JN\rkG÷H\bL`pþ\b`pþ BFN\ 3`x\eE`pû\17AN\ 2`}Gù\19N\ 2`uHþ\19`hü\1dN\ 1`cGý\15JN\ f`xô!L`h$FhH\ fEN\ 1zûG\ 6N\ 1`küH\ehúG\ 2hýH\15N\ 4kGüH\19hûG\1dN\ 2`uþH\1fN\ 2`mG\bJN\ f`xø\19LhHý\17N\ 1`cGø\ 2N\ 1cHþG\1dN\b}HúG\ 4N\ 1c\17`hþ\15JN\f`iùH\ 6LN\ 1cGøH\11hüG\ 5hýH\11N\ 1zûG\ 2`pü\ 1N\ 1cHüG\bBFN\ 1züH\eEhûG\ 4FhH\eAEN\ 1zGý\ 5N\ 1zûH\bN\ 1`zù!hGú\ 2N\ 1`cHú\eN\ 1`zGþH\ 5JN
+cGòH\17L`pþ>N\ 3`aúG\15`pü   N\ 2`uHþ  N\ 1rüG\11`hû\ 2`pHûG\17JN\ f`aôH\15L`hý\ 3`pGùH$hûG\19`pý\ 5`p\19`pþ\ehþH\17N\ 4`süG\19N\ 3hH\19hG\ 2`hý\ 2N\ 1`cHü\ 5JN\10kGúH\19LN\ 6pGø\15`pHûG\19BFN\ 1züH\e`pû\eAEN\ 4zG\ 1JN\v`n÷\ 6LN\ 1`cúH\19`pþ\19`pú%N\ 6xGû\ 2hHú\11N\ 3`hGýH\bN\ 1rýG\19`pü\ 2JN\10kó\ 6LhH\ 5N\ 4`køG\19hýH\19`pGúH\ eN\ 5`}þG
+hHý\ 6N\ 1zûG\ 6N\ 1`z\1dJN\ e}ô\ 2L`þH%N\ 1züG        N\ 1cý\fBN\ 4kHüG)FhüH\eAEN\ 1cü\17N\ 6`Gø\ 5JN\fp÷H\ 5LN\ 1`kûG\15N\ 4kHýG\ 6N\ 1`cûH\ 5hG\15`pHûG\e`hú\ 2`pþ\19`hHþG\11hH\ 2JN\ f`aGý\ 3LhH\ 5hGø\ 1N\ 1`cHý\17hGþ\15hHý\17N\ 6xGý\17N\ 1zHù\19N\ 3GûH\eJN\r`dGöH\eLN\ 4zûG\19N\ 1zùH\ 6BN\ 3pûG\ 5AN\ 1`kH\ehþG\e`pHþG\f`hù        hHþ\ 5N\ 4rùG)JN\ f`aöH\bLN\ 1`zGýH0hþG'N\ 1`kHý\ehGü
+N\ 1cû\15hHú\11hGþ\ 2N\ 6pHü\15N\ 1rGý\ 1hüH\ 2N\ 1`zü\ 1FJN\ efGø\ 4ELN\ 1`kùH\ 6N\ 1`kýG\ 5hýH\eBN\ 2`}úG\eAN\ 2`}ûH\17hGþ\eN\ 1`zHùG\ 2`pþ\ 3N\ 1`zü\17`hþ\bJN\ f`xú\ 2LN\ 1rüH\eN\ 1cù\ 6hGý\ 5`pú\1dN\ 1zHø\ 3N\ 1`kGø!N\ 2`fHùG\eN\ 4zûH\1dJN\r`dGöH\fLN\ 1zûG\ 6N\ 4cû\eN\ 4`sHý\ ehþG\ 3N\ 4rHý\eJN\ efGñ\19LN\ 2`uHù\15hGý!hHü\15`pGþH
+hGü\19N\ 1cHþG'hHþ\11N\ 5`}ýG\15N\ 2mú\19N\ 1`cH\15JN\ fpGù\ 3BLN\akHüG\17AN\ 2`}þH\ 6N\ 1`z%N\ 2`uþG\19N\ 1`zû!BJN\ f`aõH
+AL`hGþH\f`pû\ehüG\ 2N\ 3pH\ 3N\ 3`aGý\ 3N\ 1cHýG\1dN\ 1`zú\ 2JN    `i÷H\ 5L`pþ\ 5N\ 1`kGü\17N\ 4`sH\ 5hþG\bhHû\15N\ 2m\fJN\f`iGô\1dLN\ 1`z\ 1`pHþG\ 1N\ 1cý\ 2hHû$N\ 2u\ehG\eBFN\ 1cHþG\eAEN\ 4zùH\19N\ 1cü    N\ 1rGý   `hHûG)hHþ\ 2JN\10kGõH\15LN\ 3hGü\15N      aHúG\ 1`pHþG!BJN\f`ióH\15ALN\ 1`z!N\ 2`fû\ 2N\ 1zGù\ 6N\ 3`xHþG\ 2hHú      `pGùH\ 5N\ 2mù\ eN\ 1rGø
+hHü
+N\ 1`cGü\ 1JN\10kú\11LN\ 3`pHýG\e`pû\ 5`pHûG\15BFN\ 2`f\eAEJN\akö\ 2L`Hý\ 2N\ 1zGù\19hHý\15N\ 2uþ\ 1N\ 1zGü\ 2hHû\bN\ 4`sG\17`hHþG\fhüH\ 3N\ 1c\19N\ 1rGý\19`hHøG\eJN\ e}÷\15LN\ 1cý)hH\15N\ 1zGú\eN\ 1zHú\ 2N\ 3`aþG\15`pû
+N\ 2mHþG\19N\ 3`üH   BJN\ f`xGúH\1dALhGü\ 1`Hý\ 1N\ 3`aGþ\ 5BFN\ 2`fHüG\eAEN\ 4`kH\ 3hG\ 1N\ 1rýH\19JN\ e`nGöH\ 5LhýG\1dN\ 1`cüH\19N\ 2uû.N\ 1cGüH\ 1`pý\19hGþ  N\ 4kþ\e`hHùG\ eN\ 2m\19N\ 2mý\15JN\ e`nõ\ 2LN\ 1zHü\ 3`pGúH\ 3N\ 1cGþH\19N\ 4`sýG\ 6N\ 1zHú\15N\ 3GüH\17N\ 2|ýG\ eJN\ f`añH\19LN\ 3høG\bN\ 6`iúH\fhGþ\ eN\ 1`cHù\19JN\fxGô\19LN\ 3`p\ 2`pHüG\17N\ 5}ù\ 3N\ 3hH\17hG\ 6`h%N\ 1`cHù\19hGù\ 2JN\ f`xû\19L`Hý\19`pGúH\1fhGý\bN\ 2`fHþG\1f`pHûG!`pû\19N\ 3`aHý\ 2hGü\ 4`hHûG\ 3N\ 1`küH\ 5JN\rsG÷H\ 2LN\ 2mý    N\ 1zGü\ 1hHû\ 1N\ 1cý\19N\ 4kGýH\15N\ 2mGüH\1dhûG\f`pú\17N\ 1`z\ 2JN\ fxùH\vLN\ 3`pû N\ 1zGý\15N xûH\15`hý\15N\ 1`zGþH\ 2JN\ f`aGü\ 2LN
+s\ 2N\ 2`uH\ 2N\ 1rGü\ 6JN\r`sùH\ 1LN\ 1`zGûH\19hùG)N\ 2`fø\15FN\ 1cHüG\14EN\ 2`fHüG\bhùH\ 6N\ 1`cþG\17hHþ\15húG\ eN\ 2mü\ 1`hû\bJN\ f`xù\19LN\ 3HûG\1dN\ 1zúH\ 6hGþ\ 5hHú3N\ 1zGü\ 6hHú!N\ 6`xGúH\ 6hüG\ 1`hü\ 3N\ 1`cHü\15hýG\ 2JN\10`sñH\11LN\ 1zþG\ 5F`Hü\14EN\ 2`}G\19N\ 6`iHþ\ 2N\ 3GýH\1d`hý\1dJN\f`iGó\bL`pþ\ 4N\ 1`kþH\bN\ 1cþ\ 2hG\ 5N\ 3`aHù\ 5N\ 1zGû\ 4N\ 1`cýH\eN\ 3`ýG\ 1JN\ f`aöH\19LhGþ\19N\ 1rHý\1d`p\ 5hûG\19N\ 1c$`pü\1dN\ 1cû\ 3N\ 3`xHûG\ 6hýH\ 1N\ 1rûG\ 2hH\ 2hGý\ 3N\ 2mü\19`hHùG\ 1hùH\ 6JN\ f`aGú        LN\ 3hûH\ 6N\ 2`}G\ 5N\ 3`xHþG\rN\ 4zHû\19`hý\eJN\ e`nGñH\1dLN\ 1`zþ\ 5hGþ\ 1N\ 1zHþ\eN\ 2uü\ 6`p\19`pGþH\19N\ 3`aGþ\fN\ 1`zþ\ 6hH\19N\ 1`cúG\ 3N\ 1`cøH\ 5JN\f`aGø\fLN\ 2uHûG\ 6N\ 4kü\ eN\ 3hýH\ 3N\ 3`G\19JN\ f`aûH\ 3LhGþ\v`ýH\19N\ 2uù\ 2N\ 1cGüH\bN\ 5}GýH\ 6N\ 1`cGþ\e`p\17N\ 2mHýG\ 6`hHþG\eJN\ f`aõH\bLN\ 4zúG\1fhûH\1fN\ 1zþG\15N\ 1cHþG\ 6N\ 3`aHý\19N\ 2`uG\ 1hH `hGþH\ eFJN\faGöH\1aELhGþ
+hüH\17hýG\19N\ 2`}Hû\ 4N\ 4kGùH\ 3N\ 1zúG\ eN\ 3wý\ 6`pý\1dJN\rsû\eLN\ 3püH\11N\ 1zGü\15`pHûG\ 2JN\ 6`xø\ 2L`pü\11`Hþ$FN\ 3püG\ 4E`pù
+N\ 4kHøG\b`p)N\ 1`zø\ 3`pHùG\ 2N\ 1`zü\ 3N\ 1`z\ ehHý\15JN\ e}GôH\15LN\ 1`kûG\15hûH\15N\ 2`}Gý\ 6N\ 5`}Hý\17N\ 1zýG\15N\ 1rþH\ 3JN\ efGõ\ 1LN\ 2mHýG\e`pHýG\1dhHþ!N\ 2`fGùH\17N\ 4`süG\ 3N\ 1`zþ\ 6N\ 3`hHýG\17JN\10`sõH\15LN\ 1`cüG\ eN\ 4kþ\bN\ 3`xHýG\ 2`pú\ehþH
+N\ 5eþ\bBJN\ f`xGûH
+ALhGü\1dN\ 3\ 5N\ 1`kH\11N\ 1zúG\eN\ 5`fù\ehHù
+hGø\bhHù
+`Gù%N\ 1`z\ 5JN\r`sýH\15L`pþ\15N\ 1cGþH\1dN\ 1zþG\ 5N\ 6`xý\bhHý\eN\ 2mGøH    hþG\ eN\ 1`z\eJN\ e}ø\ 5LN\ 1cþ\ eN\ 2uHýG\bhHý\eN\ 3`xGýH\ 4N\ 1zGü\ 6JN\vnýH\1dLhG\ 6N\ 1`zû\ 5N\ 1`kHþ\ 6N\ 1zGþ\ 1hHû\bhG\19N\ 5}ù\ eN\ 5eHøG  BJN\ fp÷H\15ALN\ 1`zGúH\15`pþ\bN\ 1cû\ 6N\ 1cGúH\eN\ 1zûG\ 3N\ 2`f\ 2N\ 1zHþ\19N\ 1`cGø\ 3hHù\ 6`pGþH\19JN\r`{G÷\bLN\ 1`zû      N\ 1cHúG\ 2hûH\ 5N\ 2`}G\ eN\ 5}HúG\17N\ 1rþH   N\ 4rGù\ 4JN\10`sþH%LN\ 1zGþ!N\ 3hH\15`pGþH)hGú\bN\ 1zHû\ 4N\ 3pGý\ 1N\ 3hHü\ 3N\ 1`cþG\bFN\ 1rH\14EJN\f`aGó\eLhþH\ 5húG\19N\ 6`iúH%N\ 2`uüG\ 3`hHýG\eBJN\r`søH\1dALN\ 1`cG%N\ 2u\19N\ 1zùH\1dN\ 1zýG\bN\ 4kHþG\15N\ 2`uHü\fJN\r`dGñH\ eLN\ 4cþ
+N\ 5`nû)N\ 1`cþG\ 5hýH\19N\ 2m!hG\19JN\fxõH\15LN\ 2uû\bN\ 1zG\ 4N\ 6`aúH       `pGþH\eN\ 2|ýG\fhH\ 5JN\ f`aGú!L`pü\ 1FN\ 1rHû\vEhGù\ 5N\ 2u\ 3N\ 1zHþ\15N\ 3`aúG\19`p\fhûH\ 6hGü\ 2`hHùG\ 6N\ 1cú\e`hHûG\fJN\b`fò%LN\ 4`sH\bN\ 2`uúG\ 3N\ 3`üH\19hþG\11JN\ e}ô\eLN\ 1zHü\11hGü\ehHþ\ 5`pú\ 2N\ 1cþ\11N\ 3`aGù\15hHþ\ 3N\ 1rüG\ fN\ 3`h\eJN\ f`aøH\ 4L`pGþH\17N\ 6pGú\ 2N\ 2`fHþG\bN\ 1cHüG\ 6N\ 1`cüH\ 6`pGþH\1d`hý\ 1JN\r`sGõ\eLN\ 2mHýG\ 2N\ 1zýH\19`pý\19`pû\1dN\a`sGù\ 2JN\rsú\ 6LN\ 2`uüH\ 5N\ 2`}ýG\ 5`p\19N\ 3`aHú\ 2N\ 1zGû\ 3N\ 1rHý\15hGü\19hýH\ 3N\ 1rüG\ 2N\ 1`cHþ\bhGþ\ 6JN\ f`aöH\15LN\ 1rþG
+FhüH\fEN\ 1cü\1dN\ 2`fû\ 6hGü\ 1N\ 2`fû\19`pHúG\ 6N\ 1`zþ\19N\ 1`küH\19N\ 1rûG\ 6`hþ\ 5JN\ f`xõ\ 5LN\ 2mHúG
+`pþ\ 1`pHþG\fN\ 1cù\ehHù)N\ 4kGûH\19`pû\ 3N\ 5`mGú\ 5JN\r`süH\eLN\ 1`kGú\ 6hHý\ 4N\ 1cý\ 5N\ 3`aGý\ 5N\ 1`cüH\17N\ 1`cùG\ 1hH\19hGü\ 3`hþ\ 5JN\ f`aõH\19LhG\ 5`pHùG\bN\ 2`uüH\ 6N\a`{Gû%N\ 1`zHûG\19N\ 3`hü\19JN\ f`aüH\ 3LN\ 1rGû\19FhýH\eEN\ 2`}þG\ 2N\ 1`kHû\19hGû\19N\ 6pHû%hGû
+N\ 2eHþG\eJN\f`xø\19LhH\ 3`pü\ 6N\ 1zGù
+N\ 4`sHú\1d`pGþH\ 6N\ 3`hGüH\ 3N\ 1`z!JN\ fpGü\19LN\ 1`cH\17N\ 1zGú\ 2N\bfHú\17N\ 1`cGý\19JN\ eföH\ 3LN\ 4cý\bN\ 1cGüH\bhüG\ 2N\ 3`xHþG\ 2`pþ\ 2hýH\ 3N\ 1`cüG      N\ 1züH\ 2N\ 2`mG\1dJN\10kö!LhHþ\ 3N\ 1`cþG!N\ 4kþ\ 3N\ 3pHü\ 6BN\ 1`cGú\bAN\ 1zHù'hGø\19N\ 2eHþG!JN\f`aùH\15L`pGüH\ 2húG\ 1N\ 1zHý$N\ 1zGù\ 1N\ 3`xHþG\ 1`pþ\eN\ 1`cHý\eJN\a`sGö\bLN\ 1zþH\ 2N\ 4kû\eN\ 3`pý\ 1JN\r`dGðH\ 2LN\ 2mù!N\b`vGùH%hùG\1fB`hû\ 2A`pHüG\bN\ 2mHýG\fN\ 1rþH\ 1JN\ f`xGñH\eLhûG\15N\ 3hûH\ 3N\ 1zG\15N\ 1zHþ\ 2N\ 6`aþG\19F`h\14EJN\v`nö\ 6LhHù\ 5hGþ\b`pû\19`pþ\19N\ 1zHû\15BN\ 6pGû\15AhHþ\1dN\ 2mý)hGü\ eN\ 1`zHúG        JN\10`sõH\bLhüG\eN\ 5`fþ\15N\ 3`xHþG\1dhüH\ eN\ 3þ\15`pGþH\19JN\f`iGó\1dLN\ 1`z\ 5hHù$N\ 3`xGþH\ 1N\ 4`sG\15N\ 5|ýH\ 6JN\ efGû   LhûH\ 6N\ 1zýG)hHý\15N\ 1`kGü\ 3hüH\17FN\ 1zúG\1aEN\ 2`fù\19`pHýG   N\ 1`cHþ  N\ 1zþG\ 3JN\f`iúH\ 2LN\ 3`pGýH\ehGý\19hHý1N\ 1zGü\ 2BN\ 5`fþ\ 2AN\ 1zH\ 3N\ 1rùG\ 5hþH\eN\ 1rGü\ 2hþH\17hüG\eJN\10kø\1dL`pú%N\ 1rHþ\ 5húG\ 5N\a`{ùH\b`p\ehG\ 5N\ 2`uHú)N\ 1rG\ 3JN\b`}óH\19LhþG\15BN\ 5uü\ eA`p\ 6N\ 1`zHùG\19JN\ efõH\ 6LN\ 1`cýG\ehúH\ 5N\ 1zùG\ 4`pü\bN\ 1cü        hHú\ fN\ 3`aGû\19`pþ\19`pþ\ eN\ 1rHý\ 6N\ 3`úG\eJN\ f`x÷\ fLN\ 4züH\ 2hþG\bN      `aH\ eN\ 1`zý\ 1hGü\19JN\10`söH\ 3LN\ 1zG\ eFN\ 1`cþH\ 4EN\a`dGýH\fN\ 1`zþ\ 3hùG\ 2hþH      FN\ 1rGù"E`pHüG\17JN\ efûH\ eLN\ 1`cGü
+N\ 1zHý!hGü)N\ 1zHý\eN\ 1`kýG\15BN\ 5uø\bAJN
+sü\ 3LN\ 4kHýG
+N\ 4kû\17N\ 2m\b`pHüG hùH\15JN\v`vGøH\fLN\a`dû!N\ 1zG\19N\ 3`hú\ 2N\ 1`zHùG\bJN\ f`xñ\ 4LN\ 2mHýG
+N\ 1zHý\15N\ 2`}Gþ\15N\ 2`fü\ 5JN  a÷\ 1LhHû\bN\ 1`cGþ\19N\ 1cHýG\ 4`pû\ 2hHü!hGü\ 5hHú\fN\ 4`sGù\ 5N\ 1`cHù%BFN\ 1`cGü\1aAEN\ 1`z\ 6JN\ e}ö\19LhHþ\15N\ 1c\15N\ 2`}üG\eFhH\14EN\ 4kGúH\15N\ 2`uûG\19hþH\1dB`hGûH\fAhûG\ 6N\ 1rýH!JN\10kGöH\15LN\ 5`}Gþ\ehH\eN\ 3`aøG\ 6N\ 1c\bN\ 1`cøH!N\ 2`mýG\ 3JN\ fpøH\19LN\ 2mü\ 1hGú\eN\ 1cHûG\ 1N\ 5füH\15húG\15N\ 1`cøH\ 5hüG\15BN\ 1`zþ      A`pHþG\eN\ 1`zü!JN\ 6`hý\ 3LN\ 2mý\bN\ 1`kHþ\19B`hþ\15AJN\ efGö\eLN\ 1`cHý\ 6N\ 1c\1d`pGüH\ 5N\ 1`kþG\ 2hýH\ 5FN\ 6`aûG\14EJN\faó\19LN\ 3ü
+FN\ 2`fHúG\vEN\ 3`xý\1dN\ 1`cHû)QGJN\ f`a÷7RLN\ 5`mþH\ 5hGü\ 5hH\19hGü\ 5hH\ 3`pü\ehGþ\19`pHúG\17hH\1dhGù\ 1hHþ\19N\ 3`xû)N\ 1`cGü\ 6`pHûG\1dBN\ 1`zü\19A`pý\ 3`hHúG\bhH\eJN\ 6`Gó\19FLN\ 1zHþ\14EhGý
+N\ 1`cHü\ 1BN\ 1`zþ\bAJN\ e`nGøH\ 5LhGü!N\ 2mý\15N\ 2`}Hý3N\ 5fG\19N\ 1`zý\ 3hþH$hGþ%`pHûG\ 3N\ 3wHþG\ 6QJN\14uô\1dBRLN\ 4rþH\15AhûG\ 3N        xúH\bBN\ 4rþG\17AN\ 1`zHúG\ eJN\ f`a÷H\ 6LN\ 3GþH\ 3N\ 1zýG\ehúH\17N  aú\ eB`h\ 5AN\ 1`zGþH\1dhGý\ 2JN\ efùH\bLN\ 1cGþH\ 6N\ 2uGûH\ 2N\ 3`aûG\bN\ 1zûH\ 5hG\19N\ 1`cHþ\eN\ 1`cúG\bQJN\12`x÷\ 6RLN\ 3`ýH\bN\ 1`cýG\ 1`pþ\ 4`pù%N\ 2uHúG!FN\ 1cý\fEN\ 5`fþ\ e`pþ\19B`hþ\ 5AN\ 2m\ 1QJN\14uù\ 3RLN\ 3`hþ\19BhH\1dAhþG\ 2N\ 2`uHý\ 3N\ 1zGü\15hHü\ 6N\ 5}ü$`pGøH\19N\ 1røG\17N\ 3`hû\1dhHû\ fJN\ e}GõH\ 6LN\ 1`kþG\ 5hHþ\15N\ 1cGýH\ 1hGú%FN\ 3`xHûG"E`pû\15N\ 3hHû\bB`Gü\15AJN\ efúH\ 2LN\ 5uGþH\bN\ 1cü\17N\ 4`sGü\ 2N\ 1`cýH\bN\ 1`zú\ 6BJN\ e}GôH%ALhüG\b`hý\19hH\ 3N\ 1zGý\ 5FN\ 3`xHþG\eEN\ 5uHþG\19hýH.N\ 1zþG    N\ 2eHþG\19QJN\13cù\ 2RLN\ 3`hü\1fN\ 2`uH\ 2`pGýH%`pý\ 5hýG       `pü\ 6N\ 5fH$N\ 1`cúG\ 4N\ 1zûH\19`hý\ 3JN\fxGó
+L`p\eN\ 1`kHþ\a`p\19hG\ 5hHþ\eN\ 4`sûG!N\ 1`cøH\19BN\ 1rþG\1dA`pHüG\eQJN\12`xù\19RLN\a`zþ%N\ 1cû\ 5N\vuþ\ 6JN\10`sùH!LN\ 1`cûG\1dhúH\17`pù\ 1N\ 3pGù\eN
+zHü\ 6JN\ f`aGõ\19L`pþ\ 2N\ 3`pHüG       `pû\ 5N\ 4`sHø3hGþ\1fN\ 1`cûH\ 1N\ 1cü      B`Gý\19AQJN\11`fú   RLN\ 6wù  `p
+N\ 1zHù\1f`p\ 2`pGýH\ 6`pGýH\ 3N\b`}þG\1dN\ 1rH\ 3hûG\ 2JN\ f`aóH\ 2LN\ 1rûG\19N\ 2u\ 5N\ 2`fþ\ 6N\ 4ký\19N\ 1`zý\19N\ 3wHþG\ 2JN\ e`fù\ 1LN\ 1rHþ\19`pGýH\19N\ 2`fGþH\1dhGü
+N\ 5`fHþG\ 2N\ 1cHùG\ 6N\ 1røH\ 2N\ 1`cüG\bQFJN\14u÷"RELN\ 3`hHþG\1dN\ 3hHü\ 2hGþ\eN\ 2`fþ\bN\ 3`x\15hþH6N\ 3$JN\r`dGúH\ 1L`p\eN\ 3`pGýH\15N\ 1zGû\ 3N\ 4`sHù\19N\ 2m\ 6`pGýH\ 2hþG\ 3N\ 2eHþG\ 1høH\ 2JN\r`sGþ\15L`p$hûH\eN\ 2`fû\ 2N\ 4`sGþ\19`hþ\ 1`pþ\ 3BFN\ 1`z\1aAEhH\ 1JN\ efGø$L`pü\19N\ 3`pý\bhHù\ 4N\ 5fGú\1dhHú\ 3N\ 1`z\b`pGúH)QGJN\10`sü/RLN\a`zþ
+hûH\1dN\ 2uý\15N\ 3`xGýH\ 2N\ 4`cþG\eN\ 1rHý\19JN\10kG÷H\ 6LN\ 2mGüH!N\ 3`xû\1fN\ 5fGú\ 3BN\ 3wHüG\ 4AN\ 1`zHþG\15`pHþG\ 6JN\r`sùH\eLN\ 2`}Gþ\eN\ 1cü\ 2N\ 3`xþ\ 6N\ 1`z\19`pþ\ 2N\ 1`cH\19JN\ e`nGùH\17LN\ 1zþG)N\ 3hýH\ 6húG\ 2N\ 1cù\15N\ 3`aHû\1aN\ 3GýH\11N\ 3`þG\ 3QJN\14uõ\17RLN\ 4rH%N\ 1`cGþ
+N\ 1cHüG$N\ 2`}Hü\ 6N\ 3`aGù\15N\ 3þ\ 2hHø6N\ 1rGù\ 2`hþ\ 2hHù\1dJN\ efGö\ 6LN\ 2`}ûH\15hýG\15hýH\e`pü\15N\ 1züG\ 1N\ 3pùH\bN\ 2mý\ 4hýG\bJN\f`iòH\ 1LhýG.N\ 2`uHû
+hGü1hHü\ 2N\ 1`kGþ\ 2N\ 1zHþ\ 3N\ 4kGûH\ 4N\ 1rýG)N\ 1`küH\fQGJN\11fû\ 2RLN\ 5eþ\bhHý\ 1N\ 3`aGþ\ 3N\ 6`aýH\19hþG\ 1B`h\15A`pHþG\ 1N\ 1rHý\11hGù\11JN\ f`aúH\19LN\ 1`cGû\eN\ 1zHý\ 1N\ 2uGýH\ 5N\ 4`súG
+QJN\ e}÷\eRLN\ 4`zü\1dN\ 3hHü
+hýG\ 2høH\1fN\ 1`kûG\19N\ 4kü\fN\ 3`H\eJN\v`nGûH\rLN\ 3`xGýH\ 6N   hGý\15JN\ f`xø\ 1LN\ 1`cHþ\19N\ 2`}G\19`p\15hHû\ ehGú     N\ 6`xHüG\19`pû\19B`hHüG\17A`pý\19N\ 1rHú\1dhGù\ eQJN\14uø
+RLN\ 4rHû\ 2hGü\19N\ 1`cHü\19hGü\19`pHûG3N\ 2`}úH\ 3N\ 3`xü\ 5hGþ\ 5`pþ\ eN\ 1rHü\19N\ 1cGüH\ 2JN\vnGû\ eLN\ 1zH\15`pGüH\ 5N\ 6aþ\eN\ 3`hGúH
+N\ 1`z\19JN\10kGþH\ 2LN\ 5u\19N\ 5}GüH\ehGþ\19N\ 1`zý\ 1BN\ 2mHýG\1dAJN\fxùH\ 3L`pGúH\17N\ 1cü\19hýG\ 4F`pHýG\16EhüH\19N\ 6`xGûH\15høG\1fN\ 1zH\ 1N\ 1rGü\1dQJN\12`xú\19RLN\ 3`ûH\ 1hûG\19`pý\fN\ 2m\vhýH\ 2N\ 3pýG\bN\ 4kú\ 3N\ 5eHùG\ 2JN\ e}õ\ 3LN\ 1cHüG\ 6N\ 1zùH\bN\ 1cù%N\ 4kGüH\bN\ 2m\ 1BN\ 1rþG\eAFN\ 1`zü\14EhH\ 2JN\ f`xGûH\15LN\ 1rþG\ 2N\bnûH\eN\ 3hGü\17N\ 1rHø\rN\ 1`cGú$QJN\14uü\1dRLN\ 4`z\19N\ 1`cýH\ 2N\ 1zþG\bN\ 1`kH\bhGü\ 5`pHþG\15N\ 5uHýG\15hýH\ 3hýG\15N\ 1zýH\19`hGûH\19JN\ e`nG÷H\19LN\ 1`cüG\eN\ 1cHþG\ 2N\ 2uHüG\19N\ 5fûH\ 2N\ 5eü\19JN\ f`xGóH\ 2LN\ 1`cGþ       N\ 1`kH\ 2hGþ\19N\ 1cHýG\eN\ 4kHúG\b`pý\17N\ 1`cûH\15BN\ 1rùG\bAJN\ e}ó\ 4L`pý\1dN\ 1rHý
+N\ 1c\19hýG\aN\ 2`fú\ 4N\ 3pHý\ fN\ 1`cG\1f`p\ 5`pHüG\ eN\ 1`zý\ 4`hHûG\ 5QFJN\13cô\vRELN    Ã¼\17N\ 6`aH\bN\ 2mþ\17N\ 1`zGýH    JN\10kGùH\ 3FLN\ 3\14EN\ 1cü\e`pGþH\eN\ 5fýG\11`pû\ 2N\ 1`zþ\ eN\ 3wHúG\19JN\ e`fó\19LN\ 3þ\ 2`pHþG\ 3N\ 1zHû!hGú\17hHý\ 2N\ 6`xý\bN\ 3`Gú5QJN\14uú'RLN\ 5`mþH
+N\ 1zGþ3FhHû\16EN\asþ\17N\ 1rGú\19N\ 1cHþG\1dhHû\17B`Gý\ 2JN\r`sõH\fALN\ 4`kûG\ 2N\ 5`n\ 6N\ 3`Hþ\ 2JN  `xGóH\ 3LN\ 1cû\ 1N\ 3`aGþ\19BFN\ 3`hü\eACN\ 3`eHüG    DEJN\11`c÷\15BLhùH\eAhûG\ 3N\ 1`zHýG\ 2hHþ\ 5N\ 3`aGû\19N\ 3`aH\15hýG\eN\ 1`zHþG\15`pü\1dhH\eN\ 1rüG\15QFJN\12`xô  RELN\ 5`mýH
+N\ 2uGþH\ 2høG\ 2N\ 1zûH\ 1N\ 4kü\15N\ 2m\ 2JN\faGòH\17LN\ 2`uþG\ehHû\19hGú\ 6hHû\19hG!N\ 6aú\17BFN\ 3`hHýG\eAEN\ 1`zHüG!hH!JN\ f`aGô\17LN\ 1`zHûG\11N\ 2`fü'`pHþG\ 2`pû\15hHû\19N\ 5`fGýH\ 1hG\ 2hHú\ 3hGü\19FN\ 1rüH\14EhþG\17N\ 1`zHûG\19CFN\ 1`w
+DQJN\15`mó\11BRELN\ 4rH\eAhGþ\17N\ 2mþ\bN\ 1zHû\ 1N\ 5`nGýH\ 2`pú\bhGü\ 3N\ 2`uýH\ 4JN\bfGõ\ 1LhH\19JN\ 5`fGýH\15LN\ 3`pþ\17N\ 6`iGý\ 6N\ 1`zHþG\15`p\19N\ 3`hù\ 3QFJN\14uø\10RELN\ 3`hHùG\1dN\ 1`zþ\ eN\ 2uû\ 6N\ 1zHý\ 2N\ 1zG\1dhHý\bhGý\15N\ 3`aHý\19N\ 2mGýH\ehýG\ 3N\ 1`zHþG\1d`hú\ 6hH\ 6CN\ 1``ûG DJN\11`zõH\1aLhýG\19N\ 1rúH\ 6`p\ 6hùG\aN\ 1zùH\ 6N\ 6xüG\15`pü\bN\ 1rHù\15N\ 2mGþH\ 5JN\ e`nGóH\ 3LhGý\eN\ 3hHû\ 2hGü\ 5`pHüG\ 6hûH\e`pý\ 3N\ 6pG\ 3`pý   N\ 2m\e`hHþG\ 5hH\ 5QGFJN\13`kö\bRELN\ 4rH\bN\ 1`zG\bFhHøG\vEhøH\bN\ 1c\bN\ 1zúG\19`p\19hH\19hGú\bN\ 3pHü\15`pGüH\bN\ 3`húG\19CFN\ 3`|HýG\fDEJN\11rð$L`hHüG\ 2N\ 1c\ 2hü$h\ 5`pHüG\ 2N\ 5`nü\ 5`p$N\ 1rHüG\ 2`p\ 2h\ 2hHýG N\ 2|ú\ 5h\ 5hHúG BCN\ 3x\80\80\80ÆH1Gý1JN\18`pMhïH1GýH1AN\ 1`~G\80¸3Õ\ 6ë\bFN\12`oãH   LN\11`w   EN\ 1wG\aã\ 2FJN\12`oû
+LN\11`wH
+EJN\11`wGß$LN\11`wH$N\ 1wGù FJN\12`oñ\ eLN\11`wH\rDJN\12`jGùH\1cL`\14Eh.CN\ 4~\v`!`h\ e`h.N\ 2`u>`h"N\ 1`z\eN\ 2m\ 4`\ 6`h8D`\15h+h+h+h\17h\eFJN\11``GèH CELN\ 1rGü$DN\10eþ\eCN\ 1rHþ$N\ 1wüG\ 2DJN\13bó\ 5LN\ f`rHøG\1dN\ 1`kúH\11JN\11wGøH\ 1LN\ fjGô\19CN\ 3`mHùG\ 1DFJN\13`bõH\1dEL`üG\19N\11w÷\ 4húH\ 2JN\11wGõH\19LN\ f`rø\ 5hG\ 5hH\ 5JN\10`mGñ$CLN\13b\19DJN\ 3eüH\ 6LhG\ 6hH\ 6`p\ 6C`hGþH8JN\11`wGö\ 2DhõH\1dLN\ fjûG\15hþH\bhG\bhH\b`p\eJhGô\ 4CN\10eû\1dDhôH\19LN\ fjGþ\ 5hHý\ahG\ahH\aCN\ 1`zGýH\eN\ 1wGþ\ 5DJN\13bö.LN\11`Hû\ 3CJN\10`mGø\15DLN\ e``û\ 5FJN\10`eûH\1aELhG\bhH\fN\ 3{\1dh.h\ 5h\ 3hG+hH8`G>F`H\ 6EhG4`H!hG7`H\ 2h\11h\11h6h!h+hG8`\15hH4`!h+h\ 4hG>`H\11h\ 2h\ eh#h2hG8`H8`G     hH.`hGúH\ 2hG\ 2hH\ 2N\ 1zúG.CN\ 1`w\ 6JN\ 1wöH\ 4DN\ f}G÷H\ 6LN\ 3`oGü\eN\ 5e\15N\ 4`rHûG\15hûH\bCN\ 1``G\bDJN\14`tøH\ 4LhýG\ehHü\ e`Gø\ 1C`pHúG\ 3DN\ 1`gHþ\19N\ 5`|þ\fN\ 1`zGù\1dN\ 3`\ eJN\f`køH\ 6LN\ 2`bþ\bhGþ\eN\ 1rHýG\ eN\ 1`rû\1d`hHú\1dhG\eN\ 3`hþ\19`Hþ\1d`pGüH\bN\ 2|ýG\19`h\19JN\f`nø\ 1LN\ 1cüH\1dN\ 1jGý\ e`Hý\ 1N\ 2mG\ 6`p\1d`hýH\ e`ýG\ 6N\ 3h\e`H\e`hü\ 1`hGúH\fhG hH hþG\ 3`pHûG\ 1JN\11`óH\bLN\ 2qGþH\15N\ 2`mú8N\ 4jGü\19N\ 1`zýH\ eN\ 1rúG\1dCN\a~\11DJN\14lõ\ 4LhHþ\ 3CN\ 1rGû\bDN\ 2`yHý\11N\ 3oGþ\ 6`hHú\eN\ 1zGú\ 5N\ 2|\ 5N\ 1`zHú\eN\ 1cGüH\15JN\r`}Gù\19LN\ 3`tû\ 2h\ 5hHý\19`Gý\11N\ 2`eHüG\1dN\ 1züH\ 5hýG\19N\ 1`rý\ 5`pHúG\ 5N\ 1`z\bN\ 1`r
+`h"hûH\ehG\ 4hH\ 4`pGýH\15C`hø\11DJN\ ffGò\19LN\ 3`wý\ 3`HûG\15N\ 1zHý\ 2hGù\ 5N\ 2|\ 5N\ 1`cHùG%N\ 1cú\ 4`H\ 4`hþ\19N\ 2`uG\19JN\13|úH\eLN\ 3`lGþH    N\ 1cGû\ 6N\ 1`rHúG\ 3`Hý\19N\ 2`uGøH\ 6N\ 1rú\ 3`hGú\ 6`pHúG\19N\ 5`|HþG       JN\11`wòH\17CLN\ 1rüG\fDN\ 4`výH6N\ 2|ü\17hG\15hüH\ 1N\ 3wü\b`h%`pGþH\ 2hþG\1dhHý\17JN    vGõH\15L`Gû\11N\ 2tþ\bN\ 2uHúG\15`ú\ 3N\ 2`m\19N\ 2eHúG\ e`hHþG\ ehúH\eN\ 1cü\1dC`hý\ 6N\ 1wGù\17DJN\13yüH\eLN\ 3lGú\ehHøG\bN\ 2tùH\ 3N\ 2`uù\bN\ 2|G\bN\ 1`cøH\eJN\ eGûH\1dLhýG\19`hü\19C`pHüG\19DN\ 1`güH\15`pþ\1dN\ 2| N\ 1rþG\ 2`hüH\19hGþ\1d`p\17N\ 2|HýG\17`pHþ\ 2hüG\17N\ 1`zþ#hýH\ 5CN\ 4`jGýH\ 5DJN\12`jGûH\ 2LN\ 4`gGúH\ 2N\ 4`jG\ 2N\ 2`eHù\1dN\ 4`rGýH\v`p\19JN\raGø\aL`hú\1dN\ 2tHùG\bN\ 1zH\ 6`pGþH\aN\ 2|G\aN\ 1`zû\ 2N\ 1zHþ\ 6hþG\11`H\11`Gý%hHû\15`Gü\ 6N\ 1cý\ 5CN\ 2jHûG\eDJN\14`t÷H\19L`pGüH\ 6`hý\ 3ChGý\1dDN\ 2qHüG\11hH\19N\ 2|þ3hGý\ 6N\ 2|ý)N\ 1`cHüG\e`hú\eN\ 1zHûG\ 2`ûH\15N\ 1zýG\ 5N\ 3oþ N\ 1cHþG\17C`Hû\19DJN\12jGö\ 3LN\ 2`yHý
+N\ 1zG\ 3`pýH\19N\ 3~GþH\b`pý\bhG\1d`pþ\19`hHý\ 6N\ 3`GúH\bN\ 2tG\1fN\ 1cý\ 6JN\11`wøH\eLN\ 4`~þG\ 2`h\19`hHþG\ 3N\ 1jHüG\19N\ 1`kûH\ 2N\ 2|G\ 2hHý\fN\ 1`cGü\ 6N\ 2|Hþ\b`hý JN\10`eGó\ 2LN\a}Hý      hGþ\ 2N\ 3`Hú\ 3N\ 3`hGý\ 6`H\ 6`G%N\ 1`zþ\vCN\ 1`cþH\1dN\ 1wúG\ 4DJN\13yñH\19LN\ 2`yûG\1dhHý\15N\ 4yGûH\bN\ 1zûG\19N\ 1rü\ 2N\ 2eH\ 4`pGþH\17hGü
+hHþ\11N\ 3oGþH\fhøG\ 3`p\eJN\11`hò\ 2LN\ 2`yHû\ 5N\ 1zGý\ 5N\ 1`rHý\ 6N\ 1`rGù\ 4N\ 3`HøG\ 4`pþH\ehGü\15`hHþG\15N\ 1cþ\ 5`H\ 5`hGýH\b`G\15hHú\ 4N\ 1cþ\ 2JN\12`rGóH\eLhþG\ 6hûH\ 3N\ 5iûG\bN\ 1`rHþG\ 1CJN\ 5`iö\ 2DLN\ 1`gHþ\19hþG\ehüH  hG)hþ hHþ\15``ý\b`hGûH\19N\ 1`zúG      hûH\ehGþ\15hHþ hþG\15N\ 1`rþ\fN\ 1`cýH\eN\ 1zýG\19`H\19`ûG\ 6N\ 1`cûH\e`pþ)JN\12jG÷\ 4L`hHüG\1dN\fcù\ 3N\ 2`mH\19N\ 1`cûG\19`pHýG\ 4JN\f``~ô\bFL`hþ\ 6EN\ 3``HýG\11N\ 1`zHþ\ 5N\ 1`cýG#N\ 1`rý\ 3`h\ 5CN\ 2`uH\eN\ 1wGü\11DJN\14`t÷H\ 3CLN\ 1`cûG\15DN\ 3lý\vN\ 1jH\11N\ 1rGý\19`hH\ 6N\ 1cý>N\ 1rGûH"`hûG\eN\ 5`|HýG\fJN\10eø)LhøH\19N\ 2`yúG%hüH\15N\ 1zú\ 3N\ 1`jGûH
+N\ 1`zýG\ 6hûH\11hûG\ 2`pHýG\ 3N\ 1jú\11`pHý\ 5hGý     `Hú$N\ 3`wGü\19hüH\v`p\e`pû\11JN
+bGõ
+LhýH   N\ 5eù\ 4hGû\ 5hýH\bN\ 1`rþ\ 4N\ 1rGý\eJN\r`iúH\17LN\ 1zGü\17N\ 4yHûG\b`pü\19N\ 1rHüG\1dN\ 1`zþH\eN\ 1rýG  N\ 1`cúH\ 2`ýG%CN\ 3`Hú\11N\ 1wGù\ 6DJN\13`býH\15CLN\ 1rGþ
+DN     kùH\ e`hüG\eN\ 2mþ\ 6`pHþG\ 2N\ 3oþ\ 6`pþ\11JN\12`rü\19LN\ 1rûH\ 3N\ 2`yúG\1dhþH
+N\ 1`zG!`hû8`H\ eN\ 1`cGþH\ 2N\ 2eþG\ 6N\ 1zþ\ 6N\ 1`cþH)N\ 2tùG\ 3N\ 1`kþH\19JN\ e`dGòH\1dLN\ 2`m\17N\ 1`rýG\ 5hýH$hüG\ fN\ 1`cHýG\ 6N\ 3`û\bN\ 1rHü\ 1N\ 2`mGü\bCN\ 2jHûG\ 5DJN\14`tõH\ 2L`p       `ýG\fN\ 2`bú\15`pHúG\ehHýG\fhøH\17N\ 4bø\fhGø\15N\ 1jHþG\ 5`pHþ!FhGý\16EN\ 2mHøG\ 1N\ 2`|\eCN\ 1`cþH\ 2JN\11`wG÷\ 5DLN\ 5`iý\15`ü\19N\ 1zHû\ 6N\ 1`zGþ\ 3N\ 3wýH\11N\ 5|Gþ\ 6CN\ 1`w\19DJN\10`f÷H\eL`pû\ 5`pGû\eN\ 4`jH\eN\ 1rû\ 6`Gú\19N\ 2`u\11hHý\ 3N\ 1jGý\ 2hHú
+`Gý\ 2N\ 1`kHû     C`hGøH\ 6DJN\13`|GþH\ 1LN\ 1rG\ehH\ 2ChGú\19DN\ 4vHþG\15`Hý\e`hý%N\ 1`cGüH\ehþG\ 2N\ 3``ü!N\ 1`cþH\ 6N\ 3`Gþ\ 5JN\12`r÷\ 6LhHý       N\ 3dýG\ 4hH\19hG\ 4`pHþ\1dN\ 1jýG6`hø\bN\ 2`uHûG\b`hH\19`hýG N\ 3ý\ 6JN\r`}öH\1dLN\bxGý\ 1N\ 1r\ 2N\ 1`cþ\19N\ 1rHý\ 6N\ 1`zGýH\b`ûG\ 1`hHüG$N\ 1cü\bCN\ 1rH\eN\ 1wþG\1dDJN\10`fòH\bLN\ 1cG\eN\ 1`rHþG `H%N\ 1`züG\15N\ 1zûH\eN\ 2|G\eN\ 2m#`pHüG\bN\ 1jHþ\ 5N\ 2`uüG\19JN\13|ôH\ 6LhüG\ 3`hþ\1dC`p\bDN\ 3`tH\e`þG\1d`üH\ 4N\ 2|GþH.`p\ 3N\ 1zG\bN\ 3`wýH\ 5`pù\ 2JN\ eGñH\1dL`hü)N\ 6süG\b`\ 2N\ 2`uý\19hHþ\ 2N\ 1rGüH\ 2N\ 3``\19N\ 1`cG\17JN\12j÷H\bLN\ 6{Gü\ 3`hHüG3N\ 2|ü\1dN\ 2`mHùG\fN\ 1zû\1d`hHúG\19høH\19`pü\15N\ 1jGý\19`hHþG.N\ 1`kHû\15hGú\1dC`Hú\ 3DJN\ f`nGøH\bL`pGøH\15N\ 2`eü\ 6`hG\ 1N\ 1cHüG\19`pû\19N\ 3``HýG\ 4JN\r`uõH\19LN\ 4vúG\11`pýH\bN\ 2tþG\19N\ 3``ù\e`pHø\ 1N\ 3wGûH\11N\ 2`mGü\15JN\11wú\15LN\ 6sþH\ 3N\ 1rþ\ 1hGý\19N\ 1`cHùG        N\ 1`cû\19N\ 2mý\11N\ 1jHû\1dN\ 2mGüH\ 3JN\ 6`wGø\vLN\ 2`uHû\vCN\ 4`jGùH\bDJN\13tGú\ 2LN\ 3`lû\ 5hHû\ 3N\ 1z\b`þG\ 6`Hý\11hGû\ 6`hü\ 4`\19N\ 2uHûG\ 4`hHü\ 4N\ 5`tGú\ 1JN\10tùH\bL`h\ 6N\ 2qGýH\1dN\ 1zúG\ 6N\ 4býH\ 6N\ 3wGþH\19N\ 3wGþH\1dN\ 2`mþG\ 3JN\11``ó\ 1LN\ 5`qHûG\ 3`hý\bN\ 1`rýH\19hüG\15F`pþ\14EN\ 1rHûG$`hHþG\eN\ 1zý\ 3`hHýG\17N\ 1cù\1d``HùG\17N\ 3ø\1dJN\13|ùH
+LN\ 1`zþ\ 3N\ 2`yûG\v`pþ\ 5N\ 2`|Hþ%N\ 1`cGüH\bN\ 2`mGý\vN\ 1`cHû2hþG\15N\ 2|øH\ 5N\ 2mø)JN\11``GóH\bL`G\17N\ 2`yH\19`pGýH N\ 2|ù\15N  ~GüH\eFJN\r`uGø\ 3ELN\ 2`b\19N\ 2|û\11N\ 6`oHüG\15N\ 1cý\e``HýG\e`hHüG\19N\ 1cù\ 3`p\19JN\raýH\1dL`Gù%N\ 2`|Hþ\ 3N\ 2`u\eN\ 1`zG\ 2N\ 1`zHþG\17N\ 2|Hû\15N\ 2mGùH!JN\12`rG÷H\19LhûG\19`hú\15N\ 2`bHùG\1dN\ 2eüH\ 2N\ 1rG
+F`HüG\14EN\ 1cHþG\ 5`p
+N\ 1`rù\vhHþ\bN\ 2mû\15JN
+`bGöH\fLN\ 1`kGúH\19N\ 3gþG\ eN\ 2`mHþG\15N\ 1`cý\ 3N\ 1`cHü%JN
+`qGû\bLN\ 2`|ýH\ 2N\ 1`cGúH\ 3hùG\19N\ 4`rù\ 1`pHþG%``HýG\ 4hH\ 3N\ 2`uG\17FJN\12jøH\13ELN\ 3düG\19N\ 2eH\ 6N\ 4`rGùH       N\ 1r!N\ 1`zü\15`pGýH\ 3N\ 3`wûG\19JN\12jôH\ 5LN\ 1rþG\ 5hHý\ 2N\ 2qþ\19`pGúH\ 5N\ 2`eGþH\ 1hþG\ 5`HþG\ 5N\ 2uHüG\ 5N\ 1`rù$`pHþG\eN\ 4yHûG\ 4JN\vkôH\fL``û
+hGü\ 4N\ 4`jHüG\ 3N\ 3`hþH\1dN\ 3wþ\ 1hGù\eJN\13|ùH\eLN\ 1rþG\ 5hþH\ 1N\ 2`yGþ\fhH\ 6N\ 1`zùG\ 4N\ 1`rù\19`HþG\19`pHûG\ 3N\ 1cþ\19N\ 3o\1ahúH\17N\ 1züG\1dN\ 1jüH%N\ 1`cG JN\11``þ\fLN\ 1`zø\ 2N\ 1`gHþ\1dN\ 1zG\fN\ 3`oHù\ 6`pGýH\eN\ 1`cGúH\19`høG\eN\ 2mý\15JN     `gòH\bLN\ 1zû\19N\ 4yGý\15N\ 3wý
+`hHþG\ 2N\ 1zHù    `hGþH\15JN\ frGò\ eLN\ 6sHû\ 6`hþ\19N\ 1r\fN\ 3wGü       `pHü\ 6N\ 2`uGý\15``HýG\11N\ 2`uüH\19JN\12`rGõH!LN\ 1`cüG\1dN\ 1`gýH\19N\ 1zþG\eN\ 2`e\1d`HþG$`pþ    N\ 1cHûG\1dN\ 3`wýH\bhGû\17N\ 2|Hþ\ e`Gý\19N\ 2uHøG%JN\11`hö\ 2LhHþ\19N\ 4``~GüH\ 5N\ 2`m\ 2N\ 1`cGýH$N\ 1rü\ 2N\ 3wGüH\ 4JN\v{GüH\ 2LN\ 1zGþH\1d`Gû\19`hHûG\eN\ 2`m\bN\ 5eù\ 4JN\ ehùH.L`G\e`pHüG\15N\ 2qþ\1dN\ 2eþH\ 6N\ 5`eGýH\17hùG\rN\ 1rüH)N\ 2|ýG\ 6N\ 2mü\15hHý\1dhGû\ 3JN\12`rü\ 2LN\ 3dýH\ 3`pGþH\bhGþ\eN\ 3`oýH\ 2hýG\19N\ 3`hý\19`hHüG%`pHüG\ fN\ 2`|û\15JN\vküH\19L``GúH\ 2`hý\17N\ 2mþG\b`pþ\ 5N\ 5`tHþG\ 5hHý\15FJN\10eGöH\eELhGû\ eN\ 1`zþ\ 3N\ 2qHûG\19N\ 1`cþ\b`hHþG        N\ 4`jHþG\ 6N\ 3H\15N\ 3``\19JN
+`bGõ\ 5L`hH\ 1`pþ\bN\ 1zGý\15`hHü.N\ 1r\ 1N\ 1`z\ 4N\ 2|Gý\19N\ 2mHüG\ 3JN\11`wòH\ 1L`hú\ 2N\ 2qGùH\17N\ 1`k\ 3``ú)`hGúH\eN\ 1`züG\1d`p\19N\ 2|HþG\ 3N\ 1zü\17`hHüG\ e`p\bN\ 2|ýH%`üG\ 3N\ 2u\ 6JN\13|ôH$LN\ 6{G\bN\ 1`r\15JN\ 6`{ù\ 2LhýH\1dN\ 2`yûG\15hüH\fN\ 2eG\19N\ 2eH\11N\ 6oGüH\ 6N\ 3`ûG\aJN\12`rù\1dLN\ 1`zþ\bN\ 2`bþ\ 6N\ 3`oûH\19N\ 1`kùG\ 3N\ 2|ûH$FN\ 1`cþG\eEN\ 1`rHýG\1dN\ 2mý   JN\11wô\ 1LN\ 2`yHú\19N\ 2mGû\15N\ 1jýH\ 4N\ 2mùG\ 4N\ 1`zH\ 1`Gû\ 2N\ 1zHúG\ 2`hú\15N\ 1c\ 6`ýH\ 3`hú\19`Gý\ 6N\ 1`kýH\eJN\12jGö\19LhHø\ 6`hGüH\15N\ 2`yGþ    hHü\ehGý\ 3`pHý\17N\ 2tþG\ 3N\ 6oùH\15F`pý\14EN\ 4jGý\19JN\11wû\fLN\ 4`vþH\11hýG$N\ 2|HþG\15hüH\19N\ 5|Gü$`p\ 3N\ 1`jHþG\ 3JN\10tûH\bLN\a`fGüH\1dN\ 1`kþG%N\ 1jHýG\eJN
+uñH\ 3LN\ 4~ü\19`üG%N\ 5tüH\19N\ 2eüG\1dN\ 2eü\15N\ 2`uüH\ 3JN\11`Gý\19L`pHþG\19N\ 2qú\bhHü\1dhGû\ 2N\ 2`eHüG%FN\ 5|HýG\14EN\ 1rþH'`pGúH\ 5N\ 4jüG\bJN\ fnøH\ 5LN\ 2`m\15N\ 2|\19`pý\17hGú
+FN\ 2`mHþ\ 1EN\ 3``\eN\ 1`cúG\15JN\fnð\19LN\ 1jHü\11N\ 3üG\ eN\ 3oHþG\15N\ 1`cùH\ 6N\ 1jùG%JN\10`|ò\11LN\ 1`zþ\1dN\ 1`gHý\ 6N\ 1zýG\eN\ 4y\15N\ 5`mHý\19N\ 1jG\ 3JN\ fj÷H!L`hGýH\bN\ 4``~GúH\17hüG.`hHüG\ eN\ 1`züH\ 6N\ 2eGý\vN\ 1zHýG\ 5N\ 2`müH\ 3N\ 2`müG\ 5JN\ e`{öH\bL`pGýH\19FN\ 1zþ\14EN\ 4yGþ\ 5N\ 3``HüG\ 3`pHüG.`pþ2N\ 1jûH\ eJN\ frGú\fLN\ 4`gý\bN\ 1jHþ\ 6N\ 1`zGý\ eFhHþ\14EN\ 1zþG\15`hþH\ 3N\ 1rý\ehGý\19N\ 1rHü\15N\ 4jGü\ 5JN\11``÷\eLN\ 1rHý\fN\ 2`yGý\eN\v`dHýG     N\ 2`uHý\ 2hGù\15JN\ fnøH\ 2LN\ 2`mû\ f`hGüH\ 5hþG\15`hHü\15N\ 1zþG\19N\ 2|ø\vN\ 5tHúG\eJN\10töH\ 6L`ýG\ eN\ 3lûH\15hGý\fN\ 1rHþG$`hHýG\ 1N\ 6`oü\ 2N\ 1`cHú\ 2N\ 3wGüH\ 1JN\11wGûH\19LhGþ\ 2N\ 3`tHþ\ 5N\ 1`jGúH\19N\ 3ùG%N\ 2|ûH\1dN\ 1`cüG\ 1hûH\eN\ 1`rû\ 2JN\10|Gò\ 6LhHý\ 5N\ 3{ý\ 6hGû\ 3N\ 4bHþ\1dhûG\ 2hHþ\19hGù\1dN\ 1`zHù\15N\ 4jGùH\19N\ 2`mûG\eJN\10eó\15LN\ 2`bHþG\e`pHü\19``GþH\15N\ 1rüG%N\ 5`eü\19N\ 1cþ\15N\ 1jþH\11`ýG\fJN\10`|ó\ 3LhHý\ 5`þG\ 3hüH\1dN\ 2qû\ 3`pý\17N\ 2eGù\19N\ 2|HýG\eN\ 1cþ\19N\ 1jHùG\vN\ 1z\ 3N\ 1rýH\ 5JN\ 6`wGõH\1dLN\ 1r\19`pGýH   N\ 1`cý\ 4N\ 3wG\ 6hýH\fN\ 1jùG\ 6N\ 2`uH\19JN\fvGðH%LN\ 1rþG\19N\ 4`rþH\19N\ 1`zû\15N\ 1`zGþH\1dN\ 2`mþG\11`pý\ 3JN\11wú
+LN\ 2qHþG\19hüH\ 1hGý\e`pHùG$N\b{þ\19`pû\b`pHúG\17``þ\bhûH\ eJN\ frGõ\17LN\ 2`yHþ%N\ 3`wü$N\ 1`zGü\ 4`pHüG\ 5N\ 2|HýG$N\ 1zý\15N\ 4yý\ 2JN\10`|ú\ 2LhýH\ 6N\b`xGüH'N\ 4`r\1dN\ 1`zû\ 5JN      ~GõH\19LN\ 3wþG\15N\ 2|HýG\e`püH\vN\ 2`uýG\ 5N\ 3o\ 2JN\11`wõH\ 3L`hú\ 2hGü\ 5N\ 2`bû$N\ 2|HûG\17FN\ 3`HüG\14EN\ 2eø\ 4N\ 2`mHü\ 6N\ 1jüG\ 1N\ 1`kûH\17húG\ eJN\11`hõ\ 2LN\ 2`yýH$N\ 4`jý\ 3N\ 2`uþ\19N\ 2`mGúH%`pü\ 4hGþ\ 6``ý\ 3hHù\ 2N\ 1`cGø\ 6JN\10`múH\15LhG\19N\fc\bN\ 1rþH\bJN\ frGö\ 2L`h\ 6N\ 2`b\ehHþ\fhúG\eN\ 2|ù\ 1`hHýG\eN\ 1`cHûG\ 3N\ 2`mùH\15N\ 1rúG\ 2N\ 1cû\bJN\ 6wù\15LhüH\ 2N\ 1züG\ 5`hûH\bN\ 5`tüG\19N\ 1cHûG\ehH\ehGü\ 4JN\12júH\ 6L`Gø\eN\ 5iH\eN\ 2|ý\eN\ 3wGý\ 6N\ 1`cHýG\ 1hHþ\19hGþ!N\ 1rþH\11JN\ frGû\eLN\ 1rHý
+N\ 2`bGüH\ eN\ 5`eGþ\19N\ 4`rý\11``HúG\ehH\eJN\ f`rG÷H\ 2LN\ 3dGù\1dN\ 3`wHýG\ eN\ 1rý\ 2hHú\ 1hGþ%N\ 2`mHþ\ 4hGý\19JN\ 5`eú\15LN\ 4`jHþG\ 3N\ 3H\15N\ 3`wGþ\ 3hH\ 4JN\11``GóH\ 6LN\ 1rGý\ 6N\ 2`bHýG
+JN\ 3`tü\ 3LhþH\ 5N\ 2`bGúH\ 3N\ 2|ù\fN\ 2eGü\ 6N\ 4`rHüG\15N\ 2eý\ 2hH\f`Gû\eJN\10t÷H\15LN\ 6sþG\1dN\ 2eH\19hûG\ eN\ 1`zýH\eN\ 1`zþG$N\ 1`zHýG\ 6hûH\17N\ 4jûG
+JN\11`õH\19LhýG\bN\ 5`i\ 2`húH\17hþG\17N\ 1cý\eN\ 1jHüG\bN\ 2müH2N\ 1`zû\17N\ 2`mGý\bJN\11``ø\ 2LN\ 4`~ü\ eN\a`yþH\11N\ 1rüG\ 2`pHüG\ 2`pù\ 4JN
+`bù\ 4LN\ 2`mHþG\15`h\11N\ 6``üH\1dN\ 2tG\11N\ 1`kHþ\ 4JN\12jGö\ 1LhHú\ 5N\ 3`lþ\17N\ 2|GþH\ 4N\ 2eGú\15`pHüG\15N\ 1`zH\f`G\ 2N\ 2`uþ\17N\ 1rH\e`üG\ 3hüH\ 2N\ 2`uûG\19BJN\11`hñ\fALN\afHø\eN\ 1`kGø\ 3JN   `sûH\ 5LN\v`pGûH\ 5N\ 2mþ\eJN\f`kG÷\bLN\ 2`yHý\ 2hüG\ 2N\ 2|HþG\17`hû\ eN\ 1`zýH\15N\ 2eùG\19N\ 1zû.N\ 3`wHü\ 1`Gù\ 2N\ 1cHùG\1d`pù\1dJN\12júH)BL`üG\eAhþH\fN\afGþ\ 5`pHüG%N\ 3``ý\ 2`pHýG\ 1N\ 1rùH\ 4`þG\eJN\ f`rú\19LN\bpHþ\ 4N\ 3`hþ\19N\ 1`z\15N\ 1zGû\eJN\ruô\19LN\ 2qHúG\ehHý\ 6N\ 2|GøH\15hûG\ 2N\ 2|þ\ 5N\ 1cHýG\ 5`hýH\f`Gý\15N\ 1`c\ 1N\ 3oHüG\ 6N\ 1cHüG\19hüH\15BJN\11`Gó\eALhHø\eN\ 6sGø\ 2N\ 1`zHú\bhGû\19N\ 6`oHý\19JN\v`dGúH\eLhG\15N\ 2|ù\19N\ 2|HýG)N\ 1cHýG)N\ 2eþ\ 1N\ 1rH\17N\ 2|Gý\1d`hHýG\eJN\ 5`tùH\ eLN\ 3`hGü       N\ 3oþ\17hþH\ 3JN\10`mGù\ 2LN\ 2qHýG\1dN\ 2eH\17N\ 2`m\bN\ 2eþG        N\ 3ûH    JN\ eGýH\11L`hGþH\1dN\ 3lGû\ 5N\ 3`oþH\11N\ 5|úG\ 6hùH\ 5hùG
+N\ 1rýH\11`Gý\ 4N\ 3HúG\eJN\12`r÷\fLN\ 4výH\ 3N\ 2eGü\1dN\ 3`HûG$N\ 2eù\ 6N\ 4yHýG\ 3JN\ e``û\ eLN\ 2qþ\19`pû\bN\ 1`rH\1dN\ 2`mý\19N\ 1`cGþH\ 3N\ 2eüG\bN\ 1cû\19N\ 1jþH\17N\ 1`cùG\eJN\11``ò\ eL`hHúG\ 1N\ 6`{ý\eFN\ 1`cHþG\14EN\ 4jHý\ 6`pGøH\19N\ 3``ú    JN\11``GùH\eLN\a`fGùH\ 6húG%N\ 3`hHþG\bN\ 1`zý\1dN\ 1rþH\15N\ 3`ýG\fJN\ esñ\eLN\ 1`rHý\eN\ 5tGý\eN\ 2mHù\bJN\fcGöH\19LhGý\11N\ 6`süH\ 5`pú\ 4N\ 5`mGý$N\ 1jHý\e`ýG\bN\ 1cý\1dJN\11wõ\15LN\ 5`qHüG\b`hü\ 3N\ 1rü\19`pHýG\ 5N\ 1`zHú\17N\ 3wGþ\ 6FhûH\14E`hGýH\ 2`úG\15JN\ f`rø\ 3LhH\ 6N\ 3`lGýH\15N vGþ\bhHý\11JN      `gGò\eLN\ 2eHþ\bN\ 2|ù\15N\ 1zGù\19N\ 3w\ 6N\ 1`zHûG\ 3N\ 3``HþG      JN\11`wöH\ 3L`hý\15N\ 5iGý)N\ 4jþH\ 2`üG\fN\ 3`hüH\ 6`Gü\ 5hHü\ 4N\ 2mþ\ 5JN\11`Gù\bLN\ 3løH\ 5N\ 4býG\ 3N\ 3`hý\b`hHýG!N\ 3o\15N\ 2uHûG\eJN\12`rô\17LN\ 4`~%N\ 3`oH\ 2`pGüH
+N\ 1`c\ 6N\ 3`ø\ 3`hGûH
+`Gü\ 5N\ 2`uHû\ 6JN\11wGöH\17LN\f`kGþ%N\ 3``HüG\19JN\11`wôH\ 2LN\ 1rúG
+N\ 2q\fhH\ 5N\ 2eG\ 3N\btý.N\ 3`wýH\ 3JN\12jGô\ 2LN\ 6sHû\ 6N\ 1rGû\ 2`hHø\ 6N\ 2`u\e`Gý\ 2N\ 2mûH\11N\ 2|ùG)`hþ\1dN\ 2uþ\11JN\11`hô\ 2LhýH\ 1N\ 3lúG\19N\ 4yHýG\19`pý\fN\ 5|þH\ 6`hGýH\ 6JN     ~GøH\bLN\ 2|ü\e`pþ\ 5N\ 2eGù\ 1N\ 1zHþG\ 2`hHúG\ 6`pü\bN\ 2|Hü\11N\ 1`cG       JN\11``ô\ 6LN\ 1`zHýG)N\ 2`yùH\fN\ 2eûG\ 2`h\ 1N\ 6``þH\ 2`hGýH\ 5N\ 1jùG\19N\ 1`køH\19JN\11``G÷H\ 2L`ùG!N\a`nú\1dhHú\19hþG\eN\ 1`zþH\ 3N\ 2eG\ 2húH\1dN\ 1zûG\ 1N\ 3``\ 2JN\12`rõ\eLN\ 3`lþ\ 2`pHúG\ 3N\ 2|ø\15N\ 5`eHùG\ 1N\ 2`mùH\ 6JN\v{GùH\ eLN\ 4yü\ 3N\ 5|Gü\17N\ 1zHú\ 6N\ 1jGý        hHý\ 6F`Gù"EN\ 2u\ 6JN\12júH\eLN\a}Gü\19N\ 1rHþG\15hýH\1dN\ 2eùG\19N\ 2mûH\eJN   `gGû\ 1LN\ 2eH\1dN\ 3wG\eN\ 1`züH\bN\ 3wüG\ ehH\ehGû\19`Hú\ 2`hGþH\ 5N\ 1`cGû
+`pý\eJN\12`rù\ 3L`hHþG\ehH\fN\ 3lþG\19N\ 2|\vN\ 5`eþ\19BJN
+`fø\fALN\v`pHüG\ 1N\ 1`cûH)`þG\ehHþ\19N\ 2mGýH\11JN\ esGûH\ 3LN\ 2|\19N\ 2eGþ\ 2N\ 5|úH%JN\fcGûH\ eBLhGü\15AN\ 2qHþG\19N\ 5`|HýG$N\ 4`rý\bhHý\ 3N\ 3`wGû\19JN\raü\1dLN\ 3`oüH\19hGþ\19N\ 2`mHýG  N\ajHüG\ 3JN\12jõH\ 2LN\ 5`iGûH\15N\ 2`mú\ 5hGý\bN\ 1`zûH
+N\ 4`jüG\ 3hHû\1dN\ 2mGûH\1dJN\ esGøH\17LN\ 3oG\bN\ 5|û\eN\ 1rHü\1dN\ 1zG\1dJN\ ehõH\ 1L`úG\11hûH\ 3BhG\bAN\ 2qHüG\b`pHýG\15N\ 2|þ\ 6N\ 2eþH\15N\ 5eGüH\b`hGþH\ 4N\ 2`mýG\fBJN\11``û\fALN\bpýH\1dhGþ   N\ 2`mþ\19N\ 1`c!N\ 5|Hþ\19hG\bJN\ e`{ôH\ 2LN\ 2|û       hG\b`hý\ 2N\ 6oHþ\15hþG\b`pþ\19``û\19BJN\ f`rü\eLN\ 1`zý\ 5AN\ 2qHþG\19`pþ\ 2N\ 4býH\ 3N\ 1`cù\19N\ 5tGûH\ 6N\ 1`cýG\eJN\11wø\15LN\afH\1dN\ 1zGþ\15N\ 3wHýG\ 3JN\fzöH\19L`hþ\17N\ 2`bGýH\ 6N\ 3oýG\15N\ 3``ý\fN\ 2múH\ 4hûG\ eN\ 2|ýH\bN\ 2mû\17JN\r`iGø\19LN\ 6gùH\ 6N\ 2eGþ\ 6N\ 1cHùG\15BJN\ e`pø\eAL`hú\1dN\ 3lHý\eN\ 4yü\eN\ 1zGù\ 3N\ 5|Hþ!`hý\eN\ 2`mG\1dJN\10`m÷H\ 2LhGû!N\ 4`vH\ 6høG\17`hû\ 3N\ 1rHýG\ 3hHþ%N\ 1`cGùH\ 3`øG\15N\ 1zü\ 5N\ 5`eþH\19hGý!JN\ es÷\bLN\b`lHùG\ 5F`pù\19E`pHþG     ``HûG\bJN\ e`hô\ 2LhüH\ 6N\vpüG)N\ 5`|HýG\19JN\11`wôH\ 6BCLN\ 3dúG\18ADhûH\ 3N\ 2|û\ 3hGü\ 1N\ 1`rHý\1d`pGùH\ eN\ 2eüG\ eN\ 1`cHüG\ 5N\ 1`cüH       `hþ\17JN\b`tGó     LN\ 1rHýG\15`pHûG   N\ 4jüH$N\ 2|ýG\ 6N\ 2`uH       JN\12jGó\ 6LhH\ 3`ùG\bhH\eN\ 2`yGù$N\ayHû%N\ 3`ý\ 6hGù\19JN\ruû\ 1LN\ 6`sHý\bN\abGü\ 3hüH\eN\ 2`uúG\ 1JN\12`rñ\fLN\ 3`l\vhH\bhûG\ 2N\ 1`rH$hGü\15N\ 4`jþ\ 5N\ 3Hù\ 5`hGûH\19JN\ 6`wGû\ 4LhþH\15N\ 3`Gú\b`hHûG\15`p\17N\ 3``þ\15hHþ\19JN\11wGùH\ 3LN\ 3lGù\ 1N\ 2`eHøG\15`hþH'N\ 6wGþH\ 5hGý\1dJN\ ehúH\ 2L`Gû!`p\19N     `kHúG\ 2N\ 4jù\17hþH\ 4N\ 2`uüG\ 6JN\fvù\ 3LN\ 2eûH%hùG!N\ 3``ø\ 5`pHþG\ 6N\ 1rHü$JN\ e`hGõH\19BCLN\ 3dúG\18ADN\ 3`wû\1dN\ 3`Hý\17N\ 1`zýG!N\ 1rúH0N\ 4júG\ 3hþH hGû\17JN\12`r÷\17LN\ 4vH!N      `gGý\19JN\fcû\ 3LN\ 2`bHþG\19N\ 3`oýH\ 2hGý\19N\ 4`rHùG\ 5N\ 2eþ\19JN  vó%L`hHýG       N\ 1`zþH\19N\ 1`cGþH\e`úG\fN\ 3ýH
+hGý\bJN\ ehøH\1dL`üG\ 1hùH!N\bxüG\ 6N\ 3``HýG\eN\ 1`cHþ.N\ 2`mGü)`pHüG\ 1JN\12`r÷\19LN\bpH\ 1N\ 3wGù\eN\ 1zHüG\ 6N\ 1`zý\ 3N\ 2|Hþ\ 4FJN\fnGö\14ELN\ 5`|HþG\ 5N\ 4jþH\eN\ 1zG)JN\ ehúH\ 3LN\ 3`lý\ 1N\ 2eGü\19N\ 4jüH\ 4N\ 1`zýG\ 2N\ 1`cHþ\19N\ 3``ý
+JN\12jGò\1dL`hHüG\eFN\ 3`tþ\14EN\ 4`jþ\ 5N\ 3``HüG!N\ 2eþ\ 6JN\ab÷H\19LhþG
+N\ 2`mú\eN\ 3`hHø\ 1JN\ eGöH\ 1LhGþ\ 2FN\afüH\14EN\ 3`úG\17N\ 1rùH!hùG\ 2`pü\ 3``þ\ 2N\ 2mþ\15JN\11``÷\ 2LhH\15N\ 3dúG\ 5hüH\ 6N\ 2eýG       `hý\eN
+`bHþ)JN\11`Gõ\bL`pý\ 1N\ 2`bþ\ 5N       `~HüG\ 5N\ 2|Hü\19N\ 2`uGû\15JN\ e`dû\19LhüH\17N\ 4bþG\15`pþ\ 3N\ 3wHþG\ 1N\ 2`mH\ 6JN\ frGù\15LN\ 1rüH\ 6N   `sþ\11`üG$N\ 2`uú)`pþ\ 2N\ 3oHúG\17JN\11`w÷H\ 5L`Gû\19N\ 3`tHúG\19N\ 2`eû\ eN\ 1`zHû\ 5N\ 5e\ 5`hGûH\b`G\bhüH\ 3JN\ e`hGùH\17LN\ 2`yGý\bhH\ 1N\ 4yø\15hGø\bN\ 2`mHùG\eN\ 1`cú)hHú\19N\ 5|G\1dJN\12`ró\ 6LN\ 1`zHûG\19N\ 4``~ù\ 2N\ 2eHù\19hGù\eN\ 5|Hù\ehGþ\15N\ 3oý\ 2hüH\15JN\abGûH\ 6LN\ 4`jGý\ 5JN\ f`rö\ 3LN\afþ\ 2`hHü\bN\ 5eGüH\1fN\ 5|øG\19JN\11`÷H\ 1LN\ 5iGü\eN\ 2|HüG\19N\ 2mûH\ 5`ýG$N\ 1zþ!`hþ\eN\ 1cý\v``\ehHû\ 2N\ 1`cýG\ 6JN\11wð\17LN\ 3`tHúG\fN  `~HýG\17hýH\15`hþ\ 6JN\ e`hGôH\fLN\a}þG\11`hýH\bN\ 1zúG\ 2N\ 1`zúH\19N\ 5tGþH\19N\ 1`cúG\eJN\ esñ\15LhH\ 2N\ 4bþG   N\ 6`wHû\bJN\r`uGö\eLN\ 2`bHüG\eN\ 4býH!N\ 4jGü\ ehHú\19hGü\ 5hüH N\ 1jGþ!N\ 2`uHú\ 4JN\11``G÷H\ eL`G\eN\afûH\19N\ 4rG\ 6JN\blúH\ 1LN\ 3oG\ eN\ 3`H  N\ 3wGþ\eN\ 2|H      N\ 1`cýG\ 3JN\11``ø\17LN\ 1rûH\ 6N\ 2`yýG\ 3N\ 2`mHýG\ 2N\ 2`mþ\15N\ 3wú\ 2N\ 1rHþ\1dN\ 1zGþ!N\ 3``HøG      JN\11wó
+LN\ 2`bHüG\eN     `gùH\19`h\ 3JN\ e`hGùH\ 3L`ýG\ 3hüH\bN\ 5iþG\ 1N\ 1`rHþ\ 4`pGþH\ 6JN\b`aGø\eLN\ 4výH\15N\ 3oG\ 2N\ 1rHþG\e`pþ\ 2N\ 3wHüG\ 1N\ 1`zý\bN\ 1`rHüG\bhüH$N\ 2mGýH\ 6JN\ e`{Gø     LN\ 5tH\ 5N `oúG\19JN\11wó\rLN\ 2`bHüG$N\b`lHþG\ 2N\ 1zûH       JN\r`}Gö\ 2LN\bxþH\ 5húG\ 2N\ 1`zûH\15N\ 3wG\19`pHûG\ 6`H\eN\ 2`mþG\ 6hHþ\ 3JN\12jGò\ 3LhHú\17N\ 1rGû\19N\ 2`yHý\ 2hGþ\vN\ 2|HüG\15N\ 2|ù\ 3N\ 4`rHþG\ehHû2N\ 5|Gù\bJN        gø\19LN\ 5eHüG\ 5``û  N\ 2mHúG\bJN\11w÷\19LhHþ\17N\a}
+JN\a`fGõH\ 2LN\ 6sGþ\ 2F`hHüG\14EN\ 3`þH\ 3N\ 1`zG\15N\ 2mý\ 5`Hþ\ 2`hGûH.N\ 2mû\ eQGJN\13`kú7RLN\ 3}ý\17N\11wHýG\17JN\12`r÷  LhøH\ 6`hü\15N\ 2`yGý\11hHü\fN\ 4`j
+hGþ\ 4JN\baû\ 3LN\afýH\ 5N\ 4rGû\ 3N\ 1`zHúG\ 2hûH\ 6N\ 1júG\eN\ 2mø\ 2QJN\13cù\1dRLN\ 3}\ 2N\ 2`bHúG$N\ 2`eû\ 5N\ 1rü\ 2N\ 2mHý    N\ 2eGý\17hHû\15N\ 4`rGüH\bhüG\1dJN\12júH\eLN\ 3`lGþH\ eN\ 2eGû\eN\ 1`rHý\19N\ 5`mGý\ehþH\ 3hþG
+`Hý\ 6`hGûH\ 1JN\10|Gý\ 6LN\ 1rHþ\ 5N\ 2`yGù\1dN\ 3`wHþG\19N\ 1`zHþ\19N        ~þG\15QJN\13cú\ 6RLN\ 2kü\ 2N\a`n\ 1N\ 5|ûH\17N\ 1`zü\ 4`üG!N\ 3þ\ 6QJN\14uô\ 3RLN\ 1aHüG\ 2N\ 1rHþ\ 5N\fzGþ\eJN\f`cøH\ 3L`Gù\bN\ 2`bHýG\ehHþ\ 3N\ 2eGý\fN\ 1`rHú\1dN\ 1zG\11N\ 5eú\19N\ 3oþ\ f`pHûG
+JN\12`rô\ 6LN\ 1rHû\19FhGü\14EN\ 5`iHýG$N\ 5|ý\15N\ 3`wHü\ 6N\ 2mGûH\bJN\r`iGü.LN\ 4yú\19N\ 5|Hû\ 5QGJN\ fxø\ 2RLN\ 1aù\eN
+`fHø\1fN\ 2eGü\ 4`p2N\ 1`rþ\ 3hHþ\bJN\fnGô LhþH\17N\ 4`jý\11hûG\ 2N\ 4jýH\ 6N\ 4`rGûH\ 6hüG\19QJN\14uú\19RLN\ 2`sHþ        N\a}GøH!N\ 4rùG\1dFN\ 1`cHþ\1aE`hGþH\11N\ 2`mþG\19JN\11wó\15L`pHûG\ 5FN\ 4``~þ\ 6EN\ayüH\bBJN\rmGùH"ALN\ 4vþG\ 1N\ 6gH\15N\ 3`hGü\17N\ 3`wHû%QGJN\13`kö     RLN\ 1aHþG\ 3N\ 1`zþ\19N\ 2qù\ ehHú\ 2N\ 4`jGüH\ eN\ 3`úG%N\ 1`cüH\ eN\ 3`wGü\ 3`pHûG       JN\vlò.LN\ 1rHúG\ 5`p\ 2N\ 4jüH\11N\ 1`zû\ 5`h\ 6JN\ frGø\1dLN\ 3lùH\ 6N\ 6`oþ\1dN\ 2eúG\11`pú\15`pý\ 1``HûG\17N\ 2`uüH\ 3QGFJN\13`kù"BRELN\ 1`iHû\ 5AN\ 4vGû\19N\ 3`oHý\ 6hGþ\ 6`pü\eN\ 3w\ eN\ 2`mHû\19`h\bJN\10|Gö\bBLhûH\ 6A`G\19hHû\ 6N\ 2`bGûH\eN\ 2eùG8N\a`júH\bJN
+`yGû\17LN\ 4bþH\ 5hGþ\bhHû\ 2N\ 1`cGûH\ 6N\ 4`jGý\eN\ 2mHúG$BJN\11`wòH\ 3AL`hý\ 3N\ 6sGü\ 1N\ 5`eHøG\ 6`pþ\17QJN\ fa÷/RLN\ 3}ý\ 6N\ 6`sþH\ 5N\ 2`uGþH\eN\ 3`GýH\ ehúG\15`Hý\ 4N\ 3wGþH$FJN\11`Gó"ELN\ 2`b\19N\ 4`j\11N\ 3`hHûG\ 4`h\ 5N\ 5eû
+JN\11wø\bLN\ 2`yHû\ 3FhGù\14EN\ 2|HýG6N\ayHü\ 6hGü\ 5N\ 1`rü\ 4hHø\ eJN\10|Gô\15BLhüH\ fAN\b`x\ 6hýG\15N\ 3``HýG\19N\ 1cû\ 3QJN\10sø\17RLN\b`gHüG\ 6N\ 3`ûH\ eN\ 2`mû\bhGü\ 6JN
+qù\bLN\ 2`mHþG N\ 1`rýH
+`pGüH\ 3N\ 5eú\15N\ 3`wG.`pû\19JN\12`rö\1dLN\afHûG\bN\ 6`wü\bN\ 1rHþ\19`hý\bQGJN\11`}ø\ 2BRLN\ 1`iûH\19A`hú\ 2N\ 3lG\ 5N\ 4`jHþG\bN\ 3wù\19N\ 5`eHþ.JN\v`lGü3LN\ 2|ü\17N\ 5`müH\ 5húG%QJN\10sö\eRLN\ 1aû\19N\ 1rHþ\ 1hûG\ 5N\ 2`yHþ\17hGý\19N\ 3`oüH\19N\ 2`uû\bN\ 3wGù\11N\ 1`rHüG\11hH\19N\ 2`uG\ 5JN        gú\bLN\ 3``\15hùH\15`p\ 5`hû\ 3N\ 2`mþG\ 1BJN\11`wøH\1dALN\ 1rGþ\eN\a}û\eN\ 3`hHýG\ 3N\ 2mü\19N\ 3``HýG\eQJN\14u÷
+RLN\ 5oHýG\15hH\eN\ esGýH\ 1JN\11``GõH$LN\ 6søG\ 6`hü\ 6N\ 1`zþH\ 2hýG\19N\ 3``ü\ 3N\ 1zHú)N\ 1jGû\ 6hHý\fJN\ e`hGùH\15LN\ eGùH\ 2N\ 2`mþG\ eJN\10eù\15LN\ 2`bþ\fN\ 2|HüG\b`hü\bN\ 1rü\ 4BCN\ 2mHü\18ADN\ 1`zGü\ 2N\ 2mHýG    ``\ 5N\ 3þ!QJN\14uý\19RLN\ 1aü\bN\ 4vþH\ eN\ 4yý\ 6`pý\ 1N\ 5|Gû\ 2N\ 2|Hû\ eJN\ e`hGóH\ 2LN\bxûG\ 4N\ 4jøH\ 4N\ 1`zú\19`Gû\15N\ 2`uHù\19JN\10`mGð  LN\ 2`bHúG\eN\ 2|\11N\ 1`rþH\ 3N\ 2`uþ1N\ 1`zGþ'`hHüG)QJN\ e`n÷\1dRLN\ 1aû\15N\ 3`lý\ 1N
+qHùG\eN\ 3``\bJN\r`iðH\ 5LN\ 4`jû\19N\ 5eGýH\ 3N\ 1`rý\ 5JN\ f`rGøH6LN\ e`hý  `Gý\ 2N\ 3HþG$JN\ esõ\eLN\ 2`eþ\ e`hýH\1fhýG\11N\ 6wý\ 2QFJN\10sú\vRELN\ 1aHüG\ 2N\ 1rýH\ehýG\19N\ 2`yH  N\ 5tGú
+N\ 3wHýG!N\ 3oü\ 6N\ 2`uHþ\19JN\11``GüH\ 2LN\ 3dGþ\ eN\ 2`mù\15N\ 4jHú\eN\ 2eGú%hHü\eJN\r`uG÷\ 6LN\ eý\15hHù\15hGý\e``ú\ehHù!QGJN\11`}ô'RLN\ 3}ý  N\ 2`bHýG$N\ 2`eü\b`hH\ehüG\ 6JN\b`xö\bLN\ 1rHý
+N\a`n\ 2hGü\ 5N\ 5`eHþ)N\ 3wý\ 3JN\ e`{Gö\ 4L`pþ\vN\ 2|HýG\ 3N\ 2|ý\ 5N\ 2mHý\ 2N\ 1`zGü\ 1`hHþG\ 6hH\1f`pþ\ 4CFN\ 5`büG       DEJN\13`b÷H\ 4LN\ 3`lGúH\17N\ 4`jGþH\19hG\19N\ 4`rHúG\ 5N\ 4`rú.QFJN\14uú     RLN\ 1aý\14EN\afHùG\19N\ 1rù\19N\ 2mþH\19N\ 2eþG\1fN\ 2eHùG\ 3hûH\ 1JN\ e`hG÷H\rLN\a}û\ fN\ 5`mGü\ 5N\ 1rH\19N\ 3wGüH\ 2JN\v`lG÷    LN\ayH\ 6N\ 1züG\ 2CFN\ 5`yHýG
+DQJN\15`mó\11RELN\ 2`sHý\19N\ 2`bý\15N\ 3oGú\fN\ 1`zHþ\ 4N\ 3`ûG\ 6N\ 1`zü\eJN\fcø\ 6LN\a}þ\1dBCN\ 2mþH\18ADN\ 2eGý\19hH\ 3N\ 1zG\ 1``HûG$hûH\19N\ 2mú\ 6hGú\ 1JN\12`rý\19LhúH\15N\ 3dúG\15N\ 4bH\19N\ 4rGþ\17N\ 1`cHþ\19`h\ 2QGFJN\10`sò\10RELN\ 3}HýG\ 3N\ 2`yþH\ 5N\ 3oþG\ eN\ 1`cHýG\ 6N     ~þH\1dCN\ 1``ýG DJN\13y÷H\17LN\ 3lGú\ 6N\ 4yHüG\1aN\ 2mH\1aN\ 3wGý!N\ 1r$JN\ frõ  LN\ 3`lHýG\ 3hþH\ 5N\ 4yGþH     N\ 1zûG\ 2N\ 3wý\ 1`h\ 3N\ 1zýH     N\ 1`rýG\ 3QFJN\11`}õ\bRELN\ 1`iHúG)N\ 4vú\bN\ 2|HüG\15N\ 2|ü\bN\ 2m\bN\ 2`mHúG%N\ 1z\19N\ 3`w\19h\19CFN\ 1`wHýG\rDEJN\13yóH\ 2LhGü$N\ 2`y$N\ 3o\ 5N\ 1`zHú hGú$BCN\f`\80\80\80ËH1Gý1JN\18`pMhïH1GýH1ADQGN\15`c\80¸H  L`p\16CRGN\13`q3DQJN\14dä\1dL`pHüG\16J`pé\19CRLN\14dHûG\ 6DQJN\13`qù\16CRLN\13`qñ\bDQJN\14d÷\bL`pý\16J`pí\bCRFLN\ 6`jH EN\r`wG\aDQJN\13`qù\16CRLN\13`qé\ 2DQFJN\14d÷\14EL`pHùG\16CRFN\ 6yý
+DXJN\ 6døH\1fBQGEyëH-ALdúG\16J`põ\19CRLN\ 6`j$N\r`wù DQJN\13`q÷\16CRFLN\ 6yù\ fDQEJN\ 6`jû\ 5RLN\ 5oýH\ 2h\ eh\fBN\ 3d\ 2N\ 1`z\eN\ 1`c\ 3A`\ 6h\ 2h\ 6h\ 2h\ 2h\17h!h\ 2h!h\fh\ 2d\ 2h\ 2Fh\ 4N\ 1r\1cQGEJN\13lô    BLlHùG\ 5ó\ 6AdHúG\16RN\f`uúH\b`p\ 3JN\b`iGüH\ 1L`pGýH\ eC`hGû$DN\ 6`dHùG\ 1`p\ 1hH\ 6hGø\e`pHøG\ 6`pý\ehHý\15dG\ 1hH\ 1FN\ 1`zGüH
+CEN\ 1wG\ 2BDQJN\14wù\ 3ARLN\ 5kù\bBN\ 5iHú\ 3N\ 1`cGý\ 6AQJN\fuû\16RLN\ ezþH\e`pGùH\ 6hùG\ehùH\ 6BJN\ 3hGû\ 5ALN\ 4zþH
+CN\ 3aüG\ 1DQJN\14dö\eBLl\ fARN\ 4`aþH\19`pGýH\ 3N\a`nýG\19hHü\ 2hGü\15N\ 2u\1d`l\15hH\19FN\ 1`z\1dQGEJN\12`yú\16RLN\ 4`e\ 6N\a`nýH\ 2N\ 1`kýG\ 4hH\ 5`p\ 5N\ 1`gG\ 1JN\ 4~óH\19L`pý\ 3N\ 1zG\ 3QJN\ f`fô\fBLlHýG\19ARN\ 5kHýG\ 3N\a`núH\eN\ 1zGþ\ 2N\ 1zHù\ 5`p\ 5hGþ\ 4hüH\ 5dGý\ 2CN\ 3|HþG\19DQJN\13`qý\16CRFLN\ 6yý\ 1DEJ`hùH\17LN
+``~GùH\19N\ 1vüG\19BQJN\11`kú\1dARLN\ 4`aúH\fN\b`iü\1dQGJN\ ezó\ 2L`pHùG\16RN\ 4`eû%N\bxHüG\fN\ 1cû\11hýH%N\ 2qü\ 2JN\v`mGøH\ 2LN
+nGþH\ 4QGJN\10põ\ 1RLN\ 5oHü\ eCN\ 1`züG\ 6DN\ 6`dø\15hHù\15`pGûH\ 6BN\ 1züG\fAPFN\ 1rý\1fBRElHüG\fA`p\ 3CN\ 2jú\ 5DQJN\14wû LdHýG\16RN\ 5oøH\ 6N\afû\ eN\ 1zGý\ 6N\ 3lHú\1dCJN
+`cGó\vDLN\a``~ýH\bhþG\ 6hH\eBhþG\eN\ 1`~HþG\eAJN\v|øH.LN\ 2i\ 6hG
+hH.`\bFh\ 1EhG!hH.`\15BFh\1aAEh!Bh"AFhG\ 3EN\ 1rüH\17hGþ\fN\ 2u\ 2hHü$`lGûH\15N\ 1`zú\fCN\ 1wG\ 6DQJN\14d÷\19Llü\edHúG\16RN\ 4`|ùH\ 3`pù\eN\a`nGü\bN\ 1cü\ 5BJN     `{ù\15ALN\ 3{Hþ\bN\ 4`rGüH\bCN\a{G\bJN\r`wö\ 3DLN\ 3{HûG\ 6N\ 1`zü\ 3BhHü\bAN\ 3hGû\19B`pHúG\eAhHþ\ehGþ\ 1B`lHþG\eAN\ 1`cHþ\ eQGJN\12`y÷\16RLN\bkü\19BN\ 3`Hü\ 5AN\ 1rGû\ 2hHû\ 2N\ 3`tGüH\ 3hGý\15QJN\11`kü\19RLN\ 5`sþH\ 3hGþ\ 1N\ 3{H\ 1`Gý\ 2hHû\ ehGú\ 1hHü\ 1N\ 1rGü\ 6BhýH\ 6A`h\19N\ 1c\ 5BQGJN\ e`kü\17ARLN\ 5oHþ\17BhGü   N\ 6sHý\ 2AN\ 1zG\ 5N\ 1rýH\ 6N\ 1cþ  CN\ 4`dþG\11DQJN\13`qù\16RLN\vcù\ 5BhH\ 3AN\ 1`cþG)`p  `pHúG$hýH       hGü\19N\ 2`qHý\ 3BQGJN\13lô\15ALlHùG\bCRN\ 6`}û\ eDN\ 1`gHû\17N\ 1rG\ eN\ 1`zþ   BhýH\15AN\ 1zG\ 5N\ 1rýH\1f`pú\19N\ 2uGþH6`lGúH\bJN\f`GùH\ 2L`p\bhGþ\19N\ 3{H\ 6`hý\1d`pGýH\ 6N\ 1rGý\ 5N\ 5qHýG!QJN\10`tü\16BRLN\ 4`eý  AN\ 4``~HýG\19N\ 3w\ 5N\ 1`kûH\ 6N\ 1cGüH\fBQGJN\10`a÷\ 5ARLN\b`sHû\ehýG\ 3húH\bN\ 1`z\bBN\ 1`z\ fAN\ 1`cüG\ehüH\fN\ 1cü\ 6N\ 1`~GûH\fhúG\17N\ 1rûH\17QGJN\13ø\ 2RLN\ 4`aHú\ 6CN\ 1`zGø\ 4DN\ 3{HûG\15hHþ\ 2BN\ 1`zGþH\ 2FN\ 1`zý\1aAEhG\ 6húH\19N\ 1cþ\1dCN\ 4`dGý\17BDQJN\14dû\ 5AL`pHüG\16RN     `fù\1dN\ 2mHþG\ 2N\ 3hHþ\fBQGJN\10pô\bALlHýG\ 1RN\ 4`aHû\ehþG'N\ 4`vùH\ 1N\ 1rG\ 2BhHý\ eAN\ 1`cýG\ 3N\ 1zýH\ 2hG\17F`pHýG\ 1E`p\fN\ 1vüH\19hG\15JN\fwøH\ 6LN\ 2`q\ 4hG\e`hü\ 2BN\ 2`uHþ\19`hû\bAN\ 1zGý\ eN\ 1zH\19N\ 1`gûG\15N\ 1`cþH\ 2QGJN\12`yø\16RLN\ 5`wü\17N\ 4ný\19N\ 2mHûG\1dN\ 1rüH\ 5N\ 2uý)`pGûH\ 2CN\ 3aûG\eDJN\ ebôH\ 3LN\ 5aüG\ 1`pHþG\ 5N\ 3ù\eN\ 1cHøG\ eN\ 2`qúH\ 6QGJN\13û\ 6RLN\ 4`aþH\ 3N\ 4v\e`Gþ\ 6N\ 1zH\17B`hGþH\bN\ 1`zü\bAhGû\ fhH)N\ 3lþG\bhHþ\1dhýG\ 5QJN\12yö\17Llû\bdHùG\16BRN\ 4`eù        A`p\eN\ 2`qHþG\ 3N\ 1rHû\19N\ 1`cGþ\eBhHþ\1dAhþG\15N\ 2`uýH\17hýG\ 6N\ 1zýH\ 1N\ 2iGûH\eJN   dGù\eL`pHþG\1fN\ 4rHü\eN\ 3lGý\ 5CN\ 2jHýG\ 4DQJN\14dð\eRLN
+`aHþ\15`þG\19N\ 1zýH$B`hø\ 2AN\ 2`}Gþ\ 3`pý\ 3QJN\ f`fú\16RLN\ 4`|úH\b`pú\17C`hG\fDN\ 1`gþH\11`pGýH\1d`hGûH\1dN\ 2`uüG\ 3`hý\ 6N\ 1cHùG        húH\ 2BJN `dGø\ 6AL`pü\ 4BN\ 5aH\ 2AhûG\eBN\ 1rHý\15AN\ 2`fGþH\ 2`pGüH\19N\ 2iGýH\ 3QGJN\13û
+CRLN\ 6`}ü\ eDN\ 3{HþG\ 3`pHþG\19N\ 3wü\ 3`pHøG\1dhþH\ 3N\ 2`yGý\ 2hýH\ 2QGJN\11`oú\ 3L`pHýG\16BRFN\ 4`eü\16AEhH\ 5N\ 4nGüH\ 4`pû\ eN\ 3wGûH       N\ 1cú\ 5hGü\15hýH\ 1hG\17N\ 1`~HýG\ 6JN      dúH\ 6BLN\ 3wþ\1dAN\ 1zGø\bN\ 1`z\19`pHùG\19N\ 2qù\ 1CN\ 3|HýG\11DQJN\14wö)RLN\ 5`sHý\ eN\ 3{ûG\ 3N\ 2eø\f`pHüG\ fBN\ 1rHü\ 2AN\ 2uGþH)N\ 2qþ\15hGû\bQJN\12yö\ 2L`pHùG\16RN\ 4`|ýH\15N\ 3d\ 5`pGüH\15N\ 1rüG\1dBN\ 1rûH\15JN\ 6sG÷\19ACLN\ 1rHúG\ 3DN\ 4vûH\bN\ 1`zû.B`hGþH\ eAhG%húH\19N\ 1`køG\ 5`pþ\ 2QJN\10`xò\15RLN\ 6jHýG\11N\ 2iHþ\19N\ 2`mGý\ eN\ 1cHúG\fN\ 1`zú     N\ 1`kHû\19`pGüH\f`lGþH
+N\ 1`zGþH\ 3CN\ 1wG\ 6DQJN\13`qý\16RLN\ 4`|ùH\1d`pGþH  N\ 3{ûG\ 6`hþ\15N\ 4`cH\ 2N\ 1züG\ 5`pû\ 6`lHüG\19QJN\11zò\ 2RLN      yHù\ 3`hGýH\e`pGüH\19B`h\ 3AN\ 1zG\19N\ 2mHþG\ 2QJN\ fu÷\ 6BRLN\ 5`wHûG\1dACN\ 1rú\17DN\ 2qHýG\ 5BN\ 4jHý\bAF`pGüH\14EN\ 1c\ 2hüG)`pû\ehHû\ eN\ 1vGú\ 4CN\ 2jHúG\ 5DQJN\14wò\1dLdHøG\16RN\ 4`|úH\19N\ 1zþG\ 6N\ 2iHü       N\ 1`cG\11N\ 1`cH\ 1N\ 1`cGú\19hHù\ 1N\ 2`bGùH\ 5QGJN\11`oû\ 3BRLN\ 5`wú\19AN\ 3dHýG'`hHúG\1dN\ 1`z\ 3N\ 3`pþ\eN\ 4vH\15CN\ 1wGú\19DJN\ ebýH\19LhGú\ 5N\ 3{Hþ)`h\1d`p\bB`hGýH\bAhG\15`pHýG\1d`hHûG   N\ 1`kþH\eN\ 2qGùH\19QGJN\11cü\15LdHýG\16CRN\ 6yþ\ 2DN\ 3{ù\ 6N\ 6hHù\fhGù\ 3hHý\ 3dGþ\fQJN\11g÷\bRLN\ 6j\19N\ 2iHû$N\ 1`cþG\eN\ 1`cüH\ 6B`hGþH\ 2A`pú\ 3FhGû\14EhHþ\19N\ 4`~GýH\ 4BJN\r`rGú\ 3ACLN\ 1rú\ 6DN\ 3dHû\19N\ 1rG\17BhýH\ 5N\ 4zG"AhýH\ eCN\ 4súG\1dDQJN\14wø\17LdHþG\16RFN\ 4`|øH\14EN\ 4`vøG\bN\ 2mý\ 2hüH\bB`hGþH\1dAhúG\19N\ 3`tü\ e`p\15JN    {ú\15BLN\ 2`müH\ 6AN\ 3hGü\17QJN\ e`gø\ 6BCRFLN\ 5`sHþ+ADEhþG\1dC`HþG\eDN\ 3`lHþG\b`hû\ 2N\ 1cHýG\ 2N\ 1rHþ\ 6hGû\ 3BN\ 1zH\fAN\ 1cø\17QGJN\10`aõ\ 2L`pHýG\16BRN\ 4`eý\17AN\ 3`lüH\e`ûG\19N\ 1zH\ 2B`hGýH\ 3N\ 1`zGþH\15AhGü\bBN\ 2uHûG\ 5AQJN\ f`y÷\ 3RLN\b`oý\ 3N\ 5|Hþ\ 3N\ 2uý\ 3N\ 1vGú\ 3hHø\19hG     QJN\12yõ\ 1RLN\ 5oH\vN\ 4``~GûH\bhüG\bhýH\ 1`üG\ 6N\ 1cHýG\15N\ 1`cþH\bhGþ\eBhHþ\ehGþ\ 6A`pHþG\17hýH\ 2N\ 2iþ\19QGJN\12`yù\16BRLN\ 4`eü\19ACN\ 1rHýG\ 3DN\ 3{ù\bN\ 2`uHû\ 4QGJN\fqó%RLN       yHþ\ 2N\ 2|üG\eBhH\ fAhGû\ 2BN\ 1rHü\ 3AhûG\17`pý\19BN\ 1cHþG\ 3AN\ 1zùH\ 6`lþ\ 3QGJN\11`o÷\19RLN\ 5``Hû'hGþ!N\ 3`dûH\ 6hüG\ 6N\ 2m
+N\ 1rüH%`pú\ 2B`pGúH\eA`pý\17hþG\15N\ 1`~HüG\19QJN\11gø\16RLN\ 4`|üH\ 3hGü'N\ 3dHùG   N\ 6wü\ 4N\ 2qHþG\17CJN
+`zó\bDLN\ 2`yHû\ 1N\ 1rGü
+hHú\19N\ 1rGü\ 1N\ 1`z\1dN\ 1züH\15N\ 2uù\eJN\ 6`pG÷H\ 3LN\ 1rGû\ 3BFhHþ\eEN\ 1`zGþH\bN\ 2`}üG\ fAFN\ 3düH\13QGEJN\12`yû\16RFLN uû\1aEN\ 3þ\ 5N\ 3hHú\ 2hG\ 5`lú\ 2hHû\ 2QGJN\11`oò\15LlHùG
+RN\ 4`aùH\ eBC`pþ4ADhGþ\ 6N\ 6sHù\19N\ 1rGý\ 6JN\ 4jôH\19LN\ 1rGþ\ 5N\ 1`z\19`p\19B`Hü\ 5AN\ 1cþ\17N\ 1cGýH\ 6hüG\ 5hH\ 3`lGûH\1dQGJN\11~ü\16RLN\ 4`eû\19`pü\ 5N\ 3`{!hHû\17N\ 3`G
+`pHýG\15N\ 1zþH\15BhþG\19AN\ 1`~\ 6`pHþG\ 2QJN\12yò    LlHýG\15RN\b`oHýG\15N\ 1`zù\19N\ 1`cHþ\15B`hû\ 6A`pý\ 6N\ 1zG\11N\ 1zúH\ehüG$JN\ 5`u÷H\ 5L`h!N\ 3GüH\ fN\ 2`yüG\ehýH)hG\eQJN\11gû\16RLN\ 4`|þH\ 4N\ 1zþG\ 5N\ 3{üH\1d`hGüH\19N\ 1rüG    N\ 1cþ\bB`Hü\ 3A`p\ 2N\ 1cGúH\ 3BhýG\1dAQJN\ f`yù\17RLN\ 5k\ 2hH'N\ 3{Gü\bN\ 1`cHý\ 6N\ 2`mGþ\19QJN\r`pû RLN
+`xú$N\ 1`cHü\ 3N\ 1`zGüH'N\ 1zúG\ 6N\ 1zùH\ 3QGJN\ f`bö\ fLdHøG\16RN\ 4`eù\17N\ 4nHûG\ 1N\ 1zýH\bN\ 3`hGýH'N\ 2uþ
+dýG\ 3N\ 1`cþH.JN\a`gG÷\19LhþH\ 6BN\ 1`zû\ fAN\ 1zGú\17`pHúG\ 5QJN\ fuõ\1dRLN\ 6jHýG%N\ 5`iû\17N\ 1`zHüG      N\ 1`kHþ  hGù!`pHþG6QJN\ f`fý\16RLN\ 4`|ùH\bF`pþ\12EN\ 3d\1fN\ 1`z\11`hGþH\ 5`pþ\bhG!N\ 2mHüG\19N\ 2`yüH\15hGþ\ 2QJN\12y÷\19RLN\ 5`wHúG$N\ 3dú\15`hHþG\ 6BFhHû\1aAEN\ 6`pGúH\19JN
+`vGö\19FLN\ 5xHúG\14EhúH\ 5N\ 2mü\ 2hüG\eN\ 2uü\fN\ 2`qH\ 1QGJN\13ø\ 2RLN\ 4`aûH$N\ 4`vþG\17N\ 2mHùG\ eN\ 2`uýH\bN\ 3lG\ 1QJN\12yó\bRLN\ 5``Hù'N\ 3dGùH\15B`hû\bAhG.BN\ 2`müH\1fAN\ 1`kúG       N\ 1züH\15N\ 1vGþ
+hHü\ 3QGJN\11cõ\ 1RLN\r`lHü\ 1N\ 1cGøH\ 3húG\ 6N\ 1zýH\ 6JN
+`vGö\ 3LN\ 5x\ 3N\ 1zHý\ 2hüG\ 6`hü\15`pHþG\ 4hþH\eN\ 4`~GûH\ 6QGJN\13lü\bRLN  `fHþG\ 1BhH\ 2AN\ 1`zGûH
+hýG\1dN\ 3`p\ 5hûH   `pý\ 3N\ 1vG\19QJN\11`kõ\19RLN\b`oHúG\1dhH\ 5N\ 1`zý\bN\ 1`zGøH\ 1hùG\ 5B`Hþ\15N\ 3pGþ\fA`lû\19hHþ     JN\fwGû0BLN\ 4`výH\15AhG\ 1N\ 3wú
+hHû\19N\ 1`kGþ\ 5N\ 3dHû\bJN    `dGôH\ eLN\ 2`mþG\1d`p\ 5N\ 2mû\17hHû\eBN\ 1zGþ\eAQJN\10`xô\eRLN\ 5oHù1`pGøH#høG\19N\ 2`qþ\19N\ 1`cH)`þG\ 6hùH\19BN\ 1`zGýH\ 5AN\ 1zGø\11N\ 1`kHø  `p%dGü\ 6BJN\avøH\ 2ALhGü\ 6`hHûG\ 2`p\19hþH\15B`hGúH\ eA`pù\ 3B`pGüH\bAQGJN\ e`~û\17RLN\ 6}ù\1dN\ 2`qþ\bhHþ\19`ùG\ 6N\ 1zøH\bN\ 2`møG\eN\ 1cþ\ehýH\ 2hþG\17B`pHþG\eA`lü\ 3`p\fN\ 1rþH\ 6QGJN\13lû\fRLN\ 5`wHþG\ehüH'BN\ 4n\ eAhGü\b`hHþG\ 6N\ 1cHýG
+QJN\f`yõ\15RLN    `yHûG\bN\ 2mù\ 3hHþ\ 2N\ 1`cGþ\ 6BhHû\ 1AN\ 1cý\1dN\ 1`~þ!N\ 1`zGùH\bJN\ e|GýH\eLN\ 1zGú\15N\ 5xþ\eBN\ 1`cþH\19AN\ 2`}ýG\15N\ 2qHüG\ eJN    {ù\ eLN\ 1`cH\ 2`hGþH\ 3N\ 1`cG\1fN\ 1cþ      N\ 1`kúH\17dG%QJN\11gü\ 2Llý\ 5RN\ 5kHüG!N\ 4nþ\ 3BhþH\bAN\ 2`uGþ\19N\ 1`zHûG\ 5N\ 1zûH\ 2`pû\19FJN
+nGñH   ELN\ 4``~ý\19N\ 3wGüH\ 2B`pû\eAN\ 1`kGü\ 6QJN\10`xû\ 1LlHþG\ 5RN\ 6}\ 2N\ 3{ùH\ 3N\ 1rG\ 6`h\ 3`pHúG\ 2húH\ 2BF`hú\eAEN\ 1zþG\19N\ 1c\ 5N\ 1`gýH\ 6hGý\ 3JN {ù\ 5LN\ 2`mþH\ 6N\ 1`cýG\19N\ 1cþ\19hHü\ 1`pGùH\bhGþ\bhHú\15N\ 2iGþH\15JN\ e|GõH\ 2LN\ 1zG\19N\ 3`{\1aN\ 4rHý\ 1N\ 1`kþG\ 5N\ 1`gýH\ 5QGJN\11`oõ\19Llþ\bRN\ 5kHüG\19BCFhýH+ADEN\ 3{ýG\ 2BN\ 1rýH\ 2AhùG\bhýH\ 4`hGüH\ 5`pý\ 1`h$N\ 1zGû  BhHù!AN\ 1cGñH\b`pþ\ 5düG\17hýH\ 5JN\f`GûH)LN\ 4vGþH\e`þG\ 2BhùH\1dAN\ 1`zþ$N\ 1zûG\17N\ 2`uþH\1dN\ 2`yüG\17QJN\11`kô\ 2RLN\r`lüH\19N\ 2`fGþH\ 5JN\viGü\1fLN\ 5`iû\15`pþ hHþ\19N\ 2`uG\ 2B`pHùG\fA`pø\17`lHþG\15N\ 1`cHü\11QGJN\13lô\ 2LlHüG\15RN\ 4`aûH\11BN\ 4``~ý\15AN\ 2`uG\ 5`hHúG\ 1BN\ 1zþH\bA`pGþH\eN\ 2`yGþ\ 2JN\v`m÷\ 6LN\ 2`qHüG\fhüH\ 2N\ 1rýG\ 3BN\ 5mþ\eAN\ 1zHý\19QGJN\10`añ\1dRLN  `fHúG\ 5N\ 3ú\19`Hý6N\ 1`kýG\1dN\ 2`yHþ\19hGù\ 6QJN\11`kü\17RLN\ 5kþ\19`pþ\ 3N\ 2`qý\15N\ 2eHûG\ 2BN\ 3hHý\ 2AN\ 1cGýH\11hG\e`l\ 5N\ 1`cþH\eJN\ e|GóH\19L`pú\15N\ 3`dG\ 6BhüH\ 3AN\ 1`cúG\19N\ 1`zü\15`pHýG\fN\ 1zýH\ eN\ 1cGüH    QGJN\10`aü\15Llù\ fRN
+lHüG\ehHý\ 2`hý.N\ 1`zGýH\f`pGúH\eB`pù\15AhG\15B`pHþG\eAN\ 1`~ü\ 5hûH\ 3høG\eJN\bqô\ fLN\ 2`uHý\ 3hGü\15N\ 1`zü\ eJN\b`iý\1dLhúH\ 3hGþ\ 5N\ 2`qHúG\bhH\11N\ 1`zGûH\eFN\ 1rG\14EN\ 1`zþ\bN\ 2`}Hú\15hGþ\ 4`lþ\19N\ 1`cH\ 6QGJN\13lû\ 3BRLN
+púH\bAN\ 1rüG\ 2N\ 3`pü\ 3hþH%JN\ 4`cGø\1dBLN\ 4rHû\17AN\ 3lG\ 3N\ 1rûH\ 3JN\f``Gü\ 6LN\ 2`qü\ 2`hþ\19N\ 1`zý\ 1hHù\ 1`pGûH\19hûG\1d`ûH\1f`pû\ 5N\ 2uGùH\1dN\ 1`~û   QGJN\11`oõ\bLlHþG\ eRN\ 4`aHý\17N\ 4vGþH\1dB`hGýH\ 5AN\ 4rýG\ 3N\ 1cþ        N\ 1`~HþG JN\veøH  LhG\ 3N\ 4nü\ 4N\ 1`zHüG\ 3`pù\19N\ 1rHù      B`pGþH\ fA`pGýH\ 1N\ 1cû\ 6JN\viGõ\ 6BLN\ 4`vþH\ 6AN\ 4`cüG\bN\ 1zúH\ 2QGJN\10pü\fLlø\ 3RN\ 4`aHü\ 1N\ 4vü\19`Gþ\ 5N\ 1`cþH\19`pþ\v`hGüH\15húG\15N\ 2`f\11hþH\bN\ 2iþ\ 2JN\r`rGô\ 2LN\ 3dû\ 5BN\ 1rHú\ 3A`p%`þG\19N\ 3û\17N\ 1cHþG\ 6QJN\ f`fú\19RLN\ 6jü\19N\ 3`{HþG)N\ 2mþ\ 6`pþ        N\ 2mHûG\fBN\ 2`bû\fAN\ 1rHþ\19JN `dGôH\1fLN\ 4jüG\ 5N\ 2uþ\1dN\ 1`gþH\ eQGJN\11cú\ 2RLN\ 4`aûH\19N\ 3`løG\ 6N\ 3wú\ 2hHý\ 2`hý\ 5N\ 1`kGù\19N\ 1cHøG\ 6`lþ
+B`pù\eAQJN\12yý\1dRFLN\ 5``H  BEN\ 4nGþH\ fAhþG\15hHþ\eN\ 2`mGú\1dhH\1fhúG\ 2hýH\15B`pGýH"A`pþ\eQGJN\ f`b÷\ 6RLN\b`oHýG\ 3N\ 2`múH\19N\ 1zG'`Hû\ eN\ 2`}Gý\19`pHüG\ 5hýH\ 3N\ 2iþ\1dJN\r`rGø!LN\ 5`iý\ 2`pHýG\ 6N\ 2mü\ 6QJN\ evû\ 5RLN\ 4`aúH\17N\ 4vú\ 6`Gú\ e`p\ 5N\ 3wHþG\19N\ 1zýH\ 3hþG\1dN\ 1cHüG\19`l)hHþ\11BhGû\eAQJN\12yø\ 2RFLN\ 5``Hü\13EhGþ\15BFN\ 3`dH\eAEN\ 1rGú\ 6`pHúG\ehýH\ 2N\ 1`zGýH\19hþG\eBN\ 1zHü\ 5A`pGýH\fJN\arG÷\ fLhHü\eN\ 1rGú\ 5N\ 1rHý\ 3N\ 1`zGþH\19N\ 2`}üG\17N\ 1zûH\eQGJN\10`aù\15Llý\ 6RN\ e`gHýG\bBhHü\ 6AN\ 3`lGûH\ 2JN\ e|GüH\ fLhGû\ 6`pý\1dN\ 4nþ)hHü\ 2`ûG\ 4N\ 1zH\ 6hGý\ 6`h\15N\ 2`fHýG        QJN\10lô\ 2RLN      `yHüG\ 3N\ 2mü\ 3N\ 1`cþH\1dhGý\ 3hHú       B`pþ\ 3AhGú\ 2QJN\ f`fù
+RLN\ 5`wý\ 5N\ 3d\bhHü\ eN\ 2eGúH `pù\ 4hGý$N\ 2mý$N\ 1`kýH\ 2dþG\ 5N\ 1`cHú\eJN\f``Gó\ 6LN\ 3`dHú\ 6`p\ 1N\ 2`mGù        N\ 2`}Hü\ 2N\ 1`~GþH\ 6hG\ 2JN\f`húH\ 6LhGú\ 5hHþ$N\ 6`dþG\19`üH\ 6`pû\bN\ 1`kýG\ 5N\ 1`~ù\eQJN\11gø\ 5FLlHýG\14REN\ 6}ý\ 2N\ 3`{HüG\ 5hHý\bN\ 1`cGú$BN\ 3hHù\ fA`pGøH\ 1N\ 1`~ý\ 3JN\f`GúH\ 3LN\ 4vGüH\bN\ 2|G\19N\ 4cHüG)N\ 2qHýG\ 1QJN\12yô\19RLN        `fþ\19`pþ\ ehHý\1dN\ 2eü\bhGø)hHü\ 6N\ 2`}ûG\15JN
+nõ\ 1LN\ 2`qû!N\ 3`H\19hûG$BN\ 1`cH
+AN\ 2uGýH\17N\ 2iGýH\ 2QGJN\13ý\ 3RLN      yùH\ 5N\ 2eþ\1dN\ 2m\eFN\ 1zGý\ 3BEhHø\19AN\ 1`gG\17JN\fwòH%LhûG\eN\ 4`vùH\ 3`pú\eN\ 3`G\19N\ 1`kH\19hGý\ 3N\ 1`~HþG\19JN\b`qóH)L`úG\bN\azúH\eN\ 2iú\ 1QGJN\13lö\19Llþ      RN\ 5`sHü.hGû\ 4N\ 4nHúG\b`hø\ehHü\19BN\ 3û\15`pGüH\1dAhGý$N\ 1`~HýG\15JN\ 4`~÷\15LN\ 1rüH\ 3N\ 3`tü\ 2JN\fwGø\ 3LN\ 3dHþG\ 6`hý\bN\ 1zH\ eN\ 2`mGý
+`pHúG\ 6N\ 2uø     QJN\10`xû\ 3Llû\bRN  `bHú\ehþG\19FN\ 1`zü\ 3EhHü\15N\ 3$N\ 1`gGù\ 2hH\ 1N\ 1`zý\19JN\ e|GõH\ 6LN\ 3`lúG\ 5N\ 2`mH\bN\ 1zGú\ 5N\ 1`zHùG\ 2BhHþ\ fAN\ 2u\ 4JN
+``~GöH\ 1LN\ 5aþG\fN\ 4`kþH\ 2N\ 1`gGþ\17QJN\12yò\ 2RLN\ 5`wHýG\ 5N\ 3dHýG\ 5N\ 1`zû      hHþ%N\ 2`mG\19`pHþG\ 1`pHþG   N\ 2qHþG\ 6JN\fwúH\bLN\ 1zGý\19N\ 3{Hý\ 4`hGüH\ 2N\ 1`z\ eN\ 1züG\ 5N\ 3ø.hHý\1dQGJN\10põ\1dLlHüG\ 2RN\ 5ký)N\ 4nHùG)BN\ 4`cH\ 2AN\ 2`yGû\ 3hHý\19hGü\15JN\fwøH\19LN\ 6sG\ 5hHý\fN\ 1`zGýH\ 4N\ 2`}Gü\ 6N\ 2`qH\bQGJN\13ú\ 1RLN
+`tH\ 1`ýG\17N\ 2mý\19BN\ 1zHü\1dAhGû\ 6hHý.`pGþH\15`pGþH\11QGJN\10`aú)RLN\ 6jHýG\ 2N\ 2`qû
+`hý\eN\ 1`cH\ 5hþG\bN\ 2mHúG\19JN        sòH     LN\ 4``~þ\ 3N\ 2mû\ ehGþ\fBN\ 1`cùH\15AhþG\b`pþ\ 1`pHøG\f`lø%`pHùG\ 5JN\v`mô\ 6LN\ 3{þH\19N\ 2|G\15hýH\ 2N\a`~ø)QGJN\13lõ$LlHýG\19RN
+l\15N\ 1`zù\e`pþ\ e`hHúG\ 3`pû\1dN\ 1`kHù\ 3`pGúH\ 6N\ 1vüG\ 5JN\f`ó!L`pHþG\17N\ 2`q\19`hý\ eN\ 5m\15hHû\ 1BN\ 2q"AJN\f`GôH\eL`pú\17N\ 4nGùH\ 6N\ 2mû\ 3N\ 1`zý\15B`pGùH\17AN\ 2uþ\ 5N\ 2i\ 4JN        `dGúH\ 3LN\ 1rGþ\f`hHüG\ 5N\ 4cþ\19BF`pü\1aAEJN\ 5`uúH\15LN\ 1rGú'N\ 4zHû\b`pGûH\19BQGJN\10`tþ\17ARLN\ 5`sûH\eN\ 4nû\ 5N\ 1rGý\ 5hHý\ 6N\ 1zGý\ 3N\ 1rüH)N\ 1zýG hüH\ 6N\ 1`gûG\ 2BhHþ\ 5AhGü!JN\f`hôH\ 3LN\ 5iúG\ 2N\ 1`cûH\17BN\ 2mù\19N\ 1`kGù\bQJN\10lù\15ARLN\ 5kHüG\eN\ 3`lúH\ 2`hú'`pGúH\ 5`hú\bN\ 1`cGû    `pþ\ 2N\ 1zþH\b`pü\fN\ 1vGý\ 1BhHù\ 6AJN\veG÷\17LN\ 2`qý\ 4B`hû\fA`p\19N\ 6hHþ  B`lGýH\ 3AJN\v`mGùH        LN\ 4``~GýH\ 5`G!N\ 1cHýG\17N\ 2mHþG\1f`pþ\ 3B`p\ 2AN\ 2`qHý
+BQGJN\13õ\ 5ARLN   yHü\ 6N\ 3wþ\ 2N\ 1`cGþ\ 1N\ 1`kH\19N\ 1`gGú\ 6JN\f`hüH\19LhG\1d`pþ\eBN\ 3`{HüG\15AN\ 3`hù\eBN\ 2`f\15QJN\10lü\ 5ARLN  yýH\eB`hþ"AhGý\1dN\ 1rüH\ 2hüG\ 3hþH\ 6N\ 1`zGþH\b`pü\15N\ 2`yýG\19BhùH\ fQGJN\11cù\bARLN\ 5`sþH\19N\ 6`dùG\ 2N\ 2mú\15hHþ!N\ 2`yûG\ 5N\ 1rûH\eJN\r`rGú\ fLN\ 3dù\15N\ 3`Hþ\eN\ 1`cþG\1dN\ 1cHúG\19hH\1dJN
+``~G÷H$LN\ 1zGû  BN\ 3`{HûG\bAN\ 1züH\ 2`þG\ 6hþH\ 1N\ 1zGþ\ 6`hü\ 3hH\ 2`p\1dBN\ 1`kþG\ 2AhþH\ 2N\ 1vùG\ 5JN\b`qôH\ 3BL`hû\ 5AN\ 1`cGø\eBN\ 5`yH\19JN\a`gG÷\ 5LhH\ 6A`p\1d`ûG\ 5N\ 1cý\eN\ 1`zHþG\e`pHüG\ 3`pú\vB`pþ\ eAN\ 2`qHý\ 5QGJN\13ü\ 4RLN\b`oü  N\ 1`z)N\ 1`cûH\ 3N\ 1`zû\ 6`pGüH\19`pGþH\ 6N\ 1cû\ 1dGþ\fJN\v|ö\19BLN\ 3`dþH\ 3AN\ 1rýG\ 5hýH\15JN\ 5`iGûH%LN\ 3dGúH\19N\ 1`zþ\15N\ 2`mûG\19hýH\ 5N\ 2uû\ 2BN\ 1`~GýH\1dAhGþ\15JN\f`ö\ 6LN\aný\ 3N\ 1`zHþG\ e`pHþG\ 2hHû\ 5hGø\ 2B`p\bA`lHúG\ eJN\biõ\19L`hHýG\ 6`pHþG\eN\ 3`ûH\ 5N\ 2uþ\15`pGýH\19BN\ 2iû\fAQGJN\13ö\15RLN\ 5ký\fBN\ 4`vþH\ fAN\ 1`zû\ 2N\ 3`pþ\ 5N\ 2`yGù\17JN\fwþH\19LN\ 3dGúH  `ýG\ 3N\ 1zHþ\ 3`þG\15N\ 2mHþG$N\ 1c\15BN\ 4vûH\eAJN\ 6`lGôH\ 6LN\ 2mü\ eN\ 2`yGþ\ 3QJN\11zú\17RLN\ 6}þ\fN\ 4nHþG\ eN\ 1`zHþG\fN\ 2mHþG%N\ 1`kH
+`pGûH\ 3`lþ\fJN\v`mGôH\ 3BLN\ 4n\19AN\ 1rþG\ 5N\ 3`pHþG%hýH\1dhùG\ 2B`pý\ 2AN\ 1`~\ 2QJN\11`kò\ 1RLN
+`tHý\bB`hý\bAhGû\15hHø\bN\ 1`z
+BN\ 5qGýH\eAJN\r`rGõ\ 2L`pHüG\eN\ 5xú!N\ 1cHúG\15N\ 1`zú\ 1hþH\bN\ 1züG\ 6B`pHþG\1dAN\ 1vHý\ ehGú\ eJN\ 2`yøH\19L`pû\ 5N\ 1vþG\17JN\biò
+L`hHüG\15BhHþ\1dA`pGúH\fB`hû\ 1AN\ 1`cGü.N\ 1cHüG\19`pü\ 4QJN\ f`yù\ 6RLN\ 5kHüG\ 1hþH\19N\ 3d!N\ 2`mGý\b`pý N\ 1rHû\19N\ 2uGþH\19BhþG\15AN\ 2`qHþ$JN\f``Gõ\1dLN\ 4nü\ 1N\ 1`cþH\17N\ 2mù\19N\ 2`yGü\ 2hþH\ 3QGJN\11cû\ 3RLN      `yù\ 3N\ 1zHý\19N\ 4`zþ\bBN\ 1cü"AN\ 1vGþ\15JN\fwñH\1dLN\ 3{þG)N\ 2eHúG\15BhþH\eAhGý\ 2N\ 5qü\ 6JN\v`mû\19LN\ 4`vþH!N\ 2`uGý  `hHþG\ 1N\ 1zþH\ 5BN\ 1`kúG\ 3AQJN\10lô\19RLN yH\ 6N\ 3wü\15N\ 2`uGû\ 6hHþ\ eBN\ 1cGýH\ 5A`lGþH\17hýG\ 5JN\fwöH\15LN\ 4`vùG\15hýH\1d`Gü)N\ 3HüG\ 5húH\19N\ 1zúG\19N\ 1`~HýG\eFJN\v|ö\14ELN\ 3{ûH\ 5`ûG\eBN\ 1`cHþ!AN\ 2mGþH\17N\ 1zGú\bN\ 1zHú\ 2B`pGûH\ 6AN\ 1vGþ\ 5N\ 1rHú.JN\ 6`lGóH\ 5LhGý\1dN\ 1`zHûG\eBN\ 2uHýG\bAJN\aròH\ 5L`hGþH\ 6hüG\1fN\ 3wHûG\19N\ 1`køH\ 5`pý\eB`pþ\ 3A`lý\ 2hGú)QJN\11`kú\ 6RLN\ 5`sHý\ 2BN\ 3{Gþ"AN\ 2e\bN\ 1züH\ 5N\ 1`zý\15`pGþH\bN\ 2`yûG\ 3JN\v`mö\15L`pý\vN\ 3`{HýG\ 2N\ 2mHýG\ 5`pù\19BN\ 3`pHùG\ 5AN\ 1vùH\ 6QGJN\11cü\ 3RLN\ 5`súH\19N\ 4nù\ 5`pGûH\ 2B`hû\bA`pGøH\19N\ 1`cüG\15N\ 1zHû\ 2hGû\15B`pü\ 6AN\ 2`qHù\ 1JN  dGò\ 1L`pHþG\19N\ 1`zHûG\ 6N\ 2`uúH\bhýG\ 2BN\ 1`kH\ fA`lGüH\eJN\fwGø\1dBLN\ 3dHúG\ 5AN\ 1rH\ 5BN\ 1`zGùH\ 2AN\ 2mø\ 5BN\ 2`}Gù\ 3AQJN\10lø\bRLN\ 6}\ 3N\ 3{Hü\rN\ 1`zý\15N\ 1rGý\ 3`pý\b`hþ\bJN\a`nøH        BLN\ 3{ûG\ 6AN\ 2e
+N\ 1zúH  N\ 1`zû\ 5hþG       høH$høG\ 1N\ 1zøH\11N\ 1`gþG
+N\ 1rHý\ 6JN\r`rGö%BLN\ 3dý\ 3AhHù\ eBN\ 2eþ\15AN\ 3`p\ 6BN\ 1cGûH\19AdüG\ 3QJN\11z÷\ 2RLN  `y\19húH\ 4`pý
+N\ 1`cGþ\b`hþ\ehHû\19N\ 1`kGý\17B`pý\ fAN\ 1vHù\ 3N\ 1`zGúH\bJN\avG÷\ fLN\ 3hHû\ 3QGJN\ fq÷\1dRLN\ 6}HþG\ eBN\ 4nü\fA`hHýG\19N\ 3\ 6`pý\15N\ 1zûH\eB`p\1dAN\ 1vG\19JN\f`û\ eBLN\ 3dû\ fAhHü\b`Gü\1dBN\ 1`cHø\17AN\ 1zGù\19N\ 3þ\15N\ 1`~HüG\15QJN\11z÷\ eBRLN
+lþ\15AhH\ 5N\ 2`mGý\ 5hHø      hGý\ 3BFN\ 2uû\eAEN\ 1vHü$JN\v`mG÷H!LN\ 6sGü\bBhHü"AN\ 2`uGû\ 2JN\b`iû\ 4LN\ 3{ýH\ 2N\ 1`zGþH\19B`hú\ fAFN\ 3GüH\ 3EN\ 4`~ý!JN\r`rGó\ 4BLN\ 3dþ\19AN\ 1rHû\15N\ 2`uGþ\b`hHûG\ eN\ 2uü\ 5hHü\ 6N\ 1vG\ 4QJN\11z÷\17BRLN
+lú\bA`hHýG\ eN\ 3ý%N\ 1zHú\15N\ 1cGùH\rFJN\azGû\14BELN\ 2`uHþ\ 5AN\ 3hGü\ 5hHü\ 3N\ 1`gGû\ 4QJN\11`k÷\ 2RLN\ 5`sþH\ 6N\ 4nGþH\ f`pü\bN\ 5`uGý\ 6hHþ\ eBJN\a`cGú\1dLN\ 1`zý\ 5N\ 1`cHû\ 6AN\ 1rGü\ 2hH\fN\ 1züG\ 3N\ 4vúH\ 6QGJN\13÷\ 6RLN\ 5`sýH\ 5N\ 3dü\ 4N\ 2|Gý\bhH\15B`pGþH\ 3AN\ 2mü\ 3N\ 1`kGü\bBN\ 1vHû-AJN\a`gGõ\ 5L`pHýG\19N\ 1`zû!`pHýG!`hý\ 6N\ 2`}Hü\ 2N\ 1vGþ\19N\ 1`cþH\ 5QGJN\13û\eRLN\ 5kþ\19N\baHý\1dN\ 1cþ\bhGþ\ 6JN        `døH\ 5LhGø\eN\ 3`{HþG\19hHù\19N\ 1rGø\19N\ 3`pHûG\eN\ 1`kHü\bN\ 2iGøH\ 5JN
+nG÷\ 6LN\ 2`mHú\ 3B`pGúH\ fAN\ 1røG\e`pû\ 6hüH\eN\ 1zúG\bN\ 2q\15QJN\11`kô\ 3RLN
+lHûG   hHþ\15N\ 3w\eN\ 1cGþH\ eJN       `dG÷\ 3LN\b`iû\ 3N\ 2uý\ 3hHù\ 2B`lþ\ 5AJN\v`mGðH
+LN\ 3{øG\fhþH\15F`Gü\eEN\ 1`zþ `pHüG\ 6`pHýG\ 6N\ 3hþH       BN\ 1`~GùH\ 6AhþG   JN\v`mý\ 3LN\ 4`vûH\ 3`hGþH    B`pGýH\19AN\ 1rùG\ 3N\ 3`tHþG\19N\ 1`cûH
+JN     {GùH\ 3LN\ 1`cGþ\ 5`pHýG\ 5N\ 1rH\ 4`pþ\ 2`pGûH
+hGü\ 4BN\ 1`gHþ\ 3AQGJN\13zý7RLN\ 6`aû\ 2N\ 3`lþH\ f`Gý$N\ 5mHùG QJN\ e`g÷!RLN\vvú$`pHýG\ 5`pHýG\ 5N\ 1`cýH\ 1N\ 1cý\ 6hG\ehüH\17dGþ\ 3`pþ\19JN\fwþH\19LhGü\ 5N\ 2`qý\ 2N\ 1`zHüG\ 6húH     BN\ 1`zú\1dAN\ 6`lGüH\19QGJN\14`u÷\1dRLN\ 6`aHúG\bN\ 4`vúH\19N\ 5m\b`pý\1dBN\ 1`~GüH\ fAJN\veGù)LN\ 3{ýH\19N\ 1rüG\ 3N\ 4`zHþG\19QJN\ e`gõ\ 1RLN\b`oHüG\ 1BN\ 2`mýH
+AN\ 1`cG\ 2`pHýG\15hùH\19N\ 1`kûG\ 3hHü\15QGJN\12l÷\ 6RLN\ eqü
+N\ 2`uüH\ 2hýG\15hHý\19N\ 1vþG\ 2QJN\12`pó\ 3RLN\v`yHý!N\ 2mGýH!N\ 1rGý\eBN\ 4~Hþ\19AJN\v`mGùH\ 4LN\ 6sGþ
+N\ 3HúG
+N\ 1`kûH\ 5dGþ\1d`p\ 2N\ 1rýH\ eQGJN\13þ\ 6RLN\ 5ký\ 2N\ 3dý\19BN\ 2`mHü\15AN\ 2mþ\17`pGúH\1d`pü\15QGJN\ fqô\17RLN
+`tHý\bN\ 1`cGþ\19N\ 3HûG      hH\17`pGúH\ 5QGJN\12lû\ 2RLN\ 6`aú\e`pHúG\fBFN\ 3{úH\1aAEN\ 1rG\15N\ 6`lHýG)BhHü\1dAhG\eJN\ 5`bò\19LN\ 1`cHü\ehGü\ 3`pHúG\ ehúH\ 3N\ 1zþG\ 3hþH\bQGJN\12lü\19LN\ 1`uþ\ 1RN\ 6}ú\ eN\ 4`vHü\19B`hü\ fA`pþ\ 6N\ 3`pGüH\ 2N\ 3{þ\bBJN    `dGòH\bALN\ 4jG\ 2N\ 2uHùG\19JN  `d÷H\ eLN\ 4nGþH\fhG\ 5N\ 1`cHþ\ 5N\ 2mGýH   N\ 1cGûH\ 5QGJN\11`yý RLN
+g\17N\ 5|üH\ 4N\ 1zG%N\ 4vHþ\19BJN `dGôH\ 2ALN\ 1rüG\ 5hHþ\ 2B`hþ\ 2A`pGþH\ 5hG\b`hþ\ 1`pHýG\19N\ 1zH\ 2N\ 1zþG\ 6`lø\ 6hHù!QGJN\11cò\17RLN\ 6}HûG\ 3N\ 3`dHý\15N\ 6)B`pGøH\fAN\ 1vúG\ 2QFJN\13cõ"RELN\ 6`aHûG\15hûH\17N\ 3{G\15BhüH\15N\ 2eú\1dAN\ 3GýH\ 6`pGþH\ 6N\ 1zûG\ 5JN\ 3`põ\19LN\ 1`zû!`pHúG%`pþ\ 2N\ 1`~HüG\ 3`pù\ 1N\ 1rHú       QGJN\13õ\15RLN      `bþH\bN\ 1`cG\bN\ 1`zý\19N\ 1zHþ\b`pGþH\15N\ 1zûG'BhHþ\ eAJN\viGô\ 3LhüH\ 1hýG\17N\ 4nHþG\eBN\ 1rHû\15A`p
+N\ 3hGø\eN\ 1`gHü\ 6QGJN\13zú/RLN
+gHþG\ 5BhøH\ 2AN\ 1`zù\ eN\ 3w\11QGJN\r`lö\ 5RLN      `büH\ 2N\ 1`cG\19`pHûG\ 2N\ 1`cúH\15hùG\ 6N\ 1zøH\ 2N\ 1`~ý\ 5QGJN\11cõ\ 5RLN\b`oHùG\ 5N\ 4`rü\bN\ 1`kHý\ 5BN\ 1cþ\ 3AN\ 1vG\19JN\f`ñ        L`pHøG\ 2BN\ 3{H\ eAN\ 1rGú\fBN\ 1rHú\17A`pGþH\19N\ 2`uG\ 3N\ 1cû\ 2N\ 1vþH\ 5N\ 1`z
+QGJN\14`uø\17LN\ 1`uHþG\19RN\b`oHýG\19N\ 1`cýH\11N\ 3wü\ 6N\ 2uGýH\eN\ 1vüG\ 2JN\v|ó\ 6LN\ 5`iHþG\ 2N\ 1`zý\19N\ 1zHü JN\ 4`zGôH\ 5BLN\ 1`zû\19AN\ 1zGû\ 2N\ 1rHü\ 5N\ 1cGúH\bBhüG\fA`pHüG\ 1BhH\17AdGü\ 1QJN\12`pù\ 2LN\ 1`uý        RN\ 5`sHû\fhGú\eBN\ 3{Hú\bAN\ 5|Gü\1f`pþ%N\ 4vüH)JN
+nGþ    LN\ 1rùH\ 6N\ 3`hü\19BN\ 1`kGü\eAN\ 2qþ\15QJN\13cü\eRLN\akûH\15N\ 4`vüG)N\ 1`cþH\17hüG\eN\ 1`cýH\1fBN\ 2uþ\15A`lþ   JN\a`~GñH\ 3LN\ 5mø\11N\ 1zGû\19`lü\19JN\v`mý\1dL`pú\ 3N\ 4`vþH\fN\ 3`üG\19N\ 1`kþH\ 2QGJN\11`y÷
+LN\ 1`uý\ 6BRN     yHû\ 2AN\ 2eý!hGù\ ehH\15N\ 1rúG\11hHþ      BN\ 1`kGü\eAN\ 2qHþG JN\fwøH\bLN\ 4`vþG\eN\ 4rüH\15hGü\ 6BN\ 1`kHú\ 5A`l\19QGJN\11cõ\ 2RLN\ 5kHûG\19BN\ 3`lûH\1dAN\ 1`zGþH\15N\ 4`zú\19`pGþH\ 1hGþ\ 3BN\ 2`qHþ"AJN
+nGø\fLN\ 1rýH\ fN\ 4rG\1dBN\ 2`}Hþ\ 5AQGJN\12lø\19LN\ 1`uû$RN\ 5`sHþ\ 2hýG\bN\ 6sýH\ 5hþG\11`h\1dN\ 1cHýG\ 3N\ 2`bû  JN\f`õ\bLN\ 3d\ eBhHû\15AN\ 1rG\ eN\ 1rýH\ 6hýG\11N\ 2`uHý\ 3`pGùH\19N\ 1`gûG\ 2hHý\ 2BN\ 1`zGøH\ 5AJN\rjG÷H\19LN\ 4``~ù\bN\ 1`zGüH\ 5N\ 1`cüG\bN\ 1cú\ 2hHý\19QGJN\11`yû\1dRLN\a`sý$N\ 3`dþH\bN\ 1`zGýH\ 5N\ 1`cûG\ehüH\17N\ 3lGý\1dhHý\19BN\ 1`zGýH\ 6AJN\r`rGö\ eLN\ 6`dHý\19hüG\eN\ 2mþ\fN\ 1`kHü\ 2N\ 1vGú\1dBJN\b`qúH\ 3ALN\ 1rGü\1dhHü\ 2`hGûH\ 5N\ 2`uûG\ 6hþH\ 2`pGþH      hýG\ 1B`pþ"N\ 2`qýH\ 3AQGJN\13û.RLN\ 5`sûH\1dN\ 3{ûG\ 3N\ 5|ùH\eN\ 2`fü\edGþ\15QFJN\12`pù\vRELN\ f{HþG
+`pþ\ehûH\15hùG\eN\ 2`yþH\1dhGý\19JN\ 5`yøH LhG\ 6JN\anø\ 5BLN\ 3`lH\bA`hý\ 6N\ 5mGúH\ ehG\19hHý\fBhýG\ 5N\ 2`qûH\ fAQGJN\14`uø'LN\ 1`uHüG\ 1RN\ 6}ú>N\ 2`qHýG\17N\ 2`mH!hýG\b`pý\ 3N\ 4`~HüG\ 3hH\ 4JN\fwGõ\ 2LN\ 4`vHý\fFhGü\14EhHü\ 5N\ 2`mGý\ 5hHü  hGû\ 3hHþ%hþG\1dBN\ 1cHýG\ 6AN\ 1`~ý\bJN\fw÷H\ 2BLN\ 3dþ\ 5AN\ 6`h\ eBhGù\ 3ACFN\ 3`iHùG  DQEJN\14wó\19RLN\ 5ký\bN\ 3d\ 2N\ 1`cHú\ 6N\ 1rGþ\ 6N\ 1`zþ\19N\ 3pþH\11BN\ 2i\19AQGFJN\14`uø    RELN\akýH\ 1hGþ\ eBN\ 3{Hø\ 6AN\ 3`Gø\ 2N\ 2mHùG\ 4hHþ\11N\ 1`gGû\b`pHþG\bBJN\b`qóH\ 3ALN\ 1rG\ 5hHû\ 3`hGûH\ehüG\ 3hHû\15N\ 1`zGþH\19`p\19N\ 1zGù\17JN\ 6`hû\ 6LN\ 1rH\ 2N\ 6GþH\ 3BhGü\ fAN\ 1vHþ\ 6CFN\ 2`rúG
+DQJN\15`mó\11RELN\ f{HüG\ 4N\ 3püH\19dG\fBN\ 1`cHú\1dAQGJN\13ò\15RLN\b`oHþG\eN\ 1rüH\ 1høG\19N\ 1`cûH\ 3N\ 5qGüH\ 3JN\v`mGýH\15LhGþ\17BN\ 3{úH\ fAN\ 1`zþ\ fN\ 1rGþ\17N\ 3`pHúG\15BN\ 3dûH$AQGFJN\14`u÷\10RELN\ 6`aHúG\eN\ 6sHþ\1dN\ 1zGü\ 2N\ 1`zHüG\e`pù\15hHý\ 6`pGüH\17BhG\19A`lHûG\19`pþ\ 6CN\ 2jHüG DQJN\14wô  RLN
+lý\bN\ 4rH\ 6N\ 2uü\1dJN
+``~Gõ\ 3Lh\ 1N\ 2`q\ 3N\ 2`mýH\ f`pG       h\eN\ 1rHù\ 6N\ 1cGûH\ 3hGþ\ 5N\ 2qHþG\ 3QFJN\13cõ\bBRLN
+`o\eAE`hHú\19`pGú\bN\ 1rHúG\19N\ 1`zú\bN\ 1zH\bN\ 2`búG\19CFN\ 2`rHýG\ eDQEJN\14wð RLN\ 5kHúG\fN\ 4``~ú$N\ 3`HúG\fhHþG\1d`pþ `pú\ 5hHúG Bh\1dAh dHþG\1dBCN\ 4`{\80\80\80Ã…H1Gý1JN\18`pMjïH1G\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80\80Ãœ1N\18`qM
\ No newline at end of file
diff --git a/usr/doc/lisp/ch2.n b/usr/doc/lisp/ch2.n
new file mode 100644 (file)
index 0000000..735bc74
--- /dev/null
@@ -0,0 +1,814 @@
+.Lc Data\ Structure\ Access 2
+.\".ch 2
+.pp
+The following functions allow one to create and manipulate the various types
+of lisp data structures.
+Refer to \(sc1.3 for details of the data structures known to 
+.Fr .
+.sp 3v
+.Lf *array "'s_name 's_type 'x_dim1 ... x_dim\fIn\fP"
+.Wh
+s_type may be one of t, nil, fixnum, flonum, fixnum-block and 
+flonum-block.
+.Re
+an array of type s_type with n dimensions of extents given by the 
+x_dim\fIi\fP.
+.Se
+If s_name is non nil, the function definition of s_name is
+set to the array structure returned.
+.No
+The 
+.i *array
+function creates a Maclisp compatible array.
+Arrays are fully described in \(sc9.
+In 
+.Fr
+arrays of type t, nil, fixnum and flonum are equivalent and the elements
+of these arrays can be any type of lisp object.
+Fixnum-block and flonum-block arrays are restricted to fixnums and flonums
+respectively and are used mainly to communicate with 
+foreign functions (see \(sc8.4).
+.Lf aexplode "'s_arg"
+.Re
+a list of single character symbols which 
+.i print 
+would use to print out
+g_arg, that is the list returned will contain quoting characters if
+.i print
+would have used them to print s_arg.
+.No
+this is restricted to symbols and is mainly for use by explode.
+.Lf aexplodec "'s_arg"
+.Re
+a list of symbols whose pnames are the characters 
+in s_arg's pname.
+.\".pg
+.Lf aexploden "'s_arg"
+.Re
+a list of fixnums which represent the characters of s_arg's
+pname.
+.Eb
+-> \fI(setq x '|quote this \e| ok?|)\fP
+|quote this \e| ok?|
+-> \fI(aexplode x)\fP
+(q u o t e |\e\e| | | t h i s |\e\e| | | |\e\e| |\e|| |\e\e| | | o k ?)
+; note that |\e\e| just means the single character: backslash.
+; and |\e|| just means the single character: vertical bar
+
+-> \fI(aexplodec x)\fP
+(q u o t e | | t h i s | | |\e|| | | o k ?)
+-> \fI(aexploden x)\fP
+(113 117 111 116 101 32 116 104 105 115 32 124 32 111 107 63)
+.Ee
+.Lf alphalessp "'s_arg1 's_arg2"
+.Re
+t iff the print name of s_arg1 is alphabetically less than the 
+print name of s_arg2.
+.Lf append "'l_arg1 'l_arg2"
+.Re
+a list containing the elements of l_arg1 followed by l_arg2.
+.No
+To generate the result, the top level list cells of l_arg1 are duplicated
+and the cdr of the last list cell is set to point to l_arg2.
+Thus this is an expensive operation if l_arg1 is large.
+See the description of nconc for a cheaper way of doing the append.
+.Lf append1 "'l_arg1 'g_arg2"
+.Re
+a list like l_arg1 with g_arg2 as the last element.
+.No
+this is equivalent to (append 'l_arg1 (list 'g_arg2)).
+.Eb
+; A common mistake is using append to add one element to the end of a list
+-> \fI(append '(a b c d) 'e)\fP
+(a b c d . e)
+; better is append1
+-> \fI(append1 '(a b c d) 'e)\fP
+(a b c d e)
+-> 
+.Ee
+.Lf array "s_name s_type x_dim1 ... x_dim\fIi\fP"
+.No
+this is the same as *array except the arguments are not evaluated.
+.Lf arraycall "s_type 'as_array 'x_ind1 ... "
+.Re
+the element selected by  the indicies from the array a_array
+of type s_type.
+.No
+if as_array is a symbol then the function binding of this symbol should
+contain an array object.
+.br
+s_type is ignored by
+.i arraycall
+but is included for compatibility with Maclisp.
+.Lf arraydims "'s_name"
+.Re
+a list of the type and bounds of the array s_name.
+.Lf arrayp "'g_arg"
+.Re
+t iff g_arg is of type array.
+.Lf arrayref "'a_name 'x_ind"
+.Re
+the x_ind\fIth\fP element of the array object a_name.
+x_ind of zero accesses the first element.
+.No
+.i arrayref
+used the data, length and delta fields of a_name to determine which
+object to return.
+.Eb
+; We will create a 3 by 4 array of general lisp objects
+-> \fI(array ernie t 3 4)\fP
+array[12]
+
+; the array header is stored in the function definition slot of the
+; symbol ernie
+-> \fI(arrayp (getd 'ernie))\fP
+t
+-> \fI(arraydims (getd 'ernie))\fP
+(t 3 4)
+
+; store in ernie[2][2] the list (test list)
+-> \fI(store (ernie 2 2) '(test list))\fP
+(test list)
+
+; check to see if it is there
+-> \fI(ernie 2 2)\fP
+(test list)
+
+; now use the low level function \fIarrayref\fP to find the same element
+; arrays are 0 based and row-major (the last subscript varies the fastest)
+; thus element [2][2] is the 10th element , (starting at 0).
+-> \fI(arrayref (getd 'ernie) 10)\fP
+(ptr to)(test list)    ; the result is a value cell (thus the (ptr to))
+.Ee
+.Lf ascii "x_charnum"
+.Wh
+x_charnum is between 0 and 255.
+.Re
+a symbol whose print name is the single character whose fixnum 
+representation is x_charnum.
+.Lf assoc "'g_arg1 'l_arg2"
+.Re
+the first top level element of l_arg2 whose
+.i car
+is 
+.i equal
+to g_arg1.
+.No
+the test is make with the lisp function equal.
+Usually l_arg2 has an
+.i a-list
+structure and g_arg1 acts as key.
+.Lf assq "'g_arg1 'l_arg2"
+.Re
+the first top level element of l_arg2 whose
+.i car
+is
+equal to g_arg1 using the
+lisp function
+.i eq.
+.No
+This is faster than assoc since eq is faster than equal but 
+lisp objects which print alike are not always 
+.i eq.
+See the description of eq for more details.
+.Eb
+; an `assoc list' (or alist) is a common lisp data structure.  It has the
+; form ((key1 . value1) (key2 . value2) (key3 . value3) ... (keyn . valuen))
+; \fIassoc\fP or \fIassq\fP is given a key and an assoc list and returns
+; the key and value item if it exists, they differ only in how they test
+; for equality of the keys.
+
+-> \fI(setq alist '((alpha . a) ( (complex key) . b) (junk . x)))\fP
+((alpha . a) ((complex key) . b) (junk . x))
+
+; we should use \fIassq\fP when the key is an atom
+-> \fI(assq 'alpha alist)\fP
+(alpha . a)
+
+; but it may not work when the key is a list
+-> \fI(assq '(complex key) alist)\fP
+nil
+
+; however \fIassoc\fP will always work
+-> \fI(assoc '(complex key) alist)\fP
+((complex key) . b)
+.Ee
+.Lf atom "'g_arg"
+.Re
+t iff g_arg is not a list or hunk object.
+.No
+(atom '()) returns t.
+.Lf bcdad "'s_funcname"
+.Re
+a fixnum which is the address in memory where the function 
+s_funcname begins.
+If s_funcname is not a machine coded function (binary) then 
+bcdad returns nil.
+.Lf bcdp "'g_arg"
+.Re
+t iff g_arg is a data object of type binary.
+.No
+the name of this function is a throwback to the PDP-11 Lisp system.
+.Lf bigp "'g_arg"
+.Re
+t iff g_arg is a bignum.
+.Lf c\.\.r "'lh_arg"
+.Wh 
+the .. represents any positive number of \fBa\fP's and \fBd\fP's.
+.Re
+the result of accessing the list structure in the way determined by
+the function name.
+The \fBa\fP's and \fBd\fP's are read from right to left, a 
+.b d
+directing the access down the cdr part of the list cell and an
+.b a
+down the car part.
+.No
+lh_arg may also be nil, and it is guaranteed that the car and cdr of nil
+is nil.
+.br
+Currently one may dissect hunks and bignums with c..r as well although this is
+subject to change.
+.Lf concat "['stn_arg1 ... ]"
+.Re
+a symbol whose print name
+is the result of concatenating the print names,
+string characters or numerical representations
+of the sn_arg\fIi\fP.
+.No
+If no arguments are given, a symbol with a null pname is returned.
+Concat places the symbol created on the oblist, the function uconcat
+does the same thing but does not place the new symbol on the oblist.
+.Ex
+\fI(concat 'abc (add 3 4) "def")\fP ==> abc7def
+.Lf cons "'g_arg1 'g_arg2"
+.Re
+a new list cell whose car is g_arg1 and whose cdr is g_arg2.
+.Lf copy "'g_arg"
+.Re
+A structure 
+.i equal
+to g_arg but with new list cells.
+.Lf copysymbol "'s_arg 'g_pred"
+.Re
+an uninterned symbol with the same print name as s_arg.
+If g_pred is non nil, then the value, function binding
+and property list of the new symbol are made 
+.i eq 
+to those of s_arg.
+.Lf cpy1 "'xvt_arg"
+.Re
+a new cell of the same type as xvt_arg with the same value as xvt_arg.
+.Lf cxr "'x_ind 'h_hunk"
+.Re
+element x_ind (starting at 0) of hunk h_hunk.
+.Lf defprop "ls_name g_val g_ind"
+.Re
+g_val.
+.Se
+The property list of ls_name is updated by adding g_val as the value
+of indicator g_ind.
+.No
+this is similar to putprop except that the arguments to defprop
+are not evaluated.
+ls_name may be a disembodied property list, see \fIget\fP.
+.Lf delete "'g_val 'l_list ['x_count]"
+.Re
+the result of splicing g_val from the top level of
+l_list no more than x_count times.
+.No
+x_count defaults to a very large number, thus if x_count is not given, all
+occurances of g_val are removed from the top level of l_list.
+g_val is compared with successive 
+.i car 's
+of l_list using the function
+.i equal .
+.Se
+l_list is modified using rplacd, no new list cells are used.
+.Lf delq "'g_val 'l_list ['x_count]"
+.Re
+the result of splicing g_val from the top level of l_list no more than
+x_count times.
+.No
+.i delq 
+is the same as 
+.i delete 
+except that 
+.i eq
+is used for comparison instead of 
+.i equal .
+.Eb
+; note that you should use the value returned by \fIdelete\fP or \fIdelq\fP
+; and not assume that g_val will always show the deletions.
+; For example
+
+-> \fI(setq test '(a b c a d e))\fP
+(a b c a d e)
+-> \fI(delete 'a test)\fP
+(b c d e)         ; the value returned is what we would expect 
+-> \fItest\fP
+(a b c d e)       ; but test still has the first a in the list!
+.Ee
+.Lf dtpr "'g_arg"
+.Re
+t iff g_arg is a list cell.
+.No
+that (dtpr '()) is nil.
+.Lf eq "'g_arg1 'g_arg2"
+.Re
+t if g_arg1 and g_arg2 are the exact same lisp object.
+.No
+.i Eq
+simply tests if g_arg1 and g_arg2 are located in the exact same
+place in memory.
+Lisp objects which print the same are not necessarily 
+.i eq .
+The only objects guaranteed to be 
+.i eq
+are interned symbols with the same print name.
+[Unless a symbol is created in a special way (such as with
+uconcat or maknam)
+it will be interned.]
+.Lf equal "'g_arg1 'g_arg2"
+.Re
+t iff g_arg1 and g_arg2 have the same structure as described below.
+.No
+g_arg and g_arg2 are 
+.i equal
+if
+.np
+they are eq.
+.np
+they are both fixnums with the same value
+.np
+they are both flonums with the same value
+.np
+they are both bignums with the same value
+.np
+they are both strings and are identical.
+.np
+they are both lists and their cars and cdrs are
+.i equal .
+.Eb
+; \fIeq\fP is much faster than \fIequal\fP, especially in compiled code,
+; however you cannot use \fIeq\fP to test for equality of numbers outside
+; of the range -1024 to 1023.  \fIequal\fP will always work.
+-> \fI(eq 1023 1023)\fP
+t
+-> \fI(eq 1024 1024)\fP
+nil
+-> \fI(equal 1024 1024)\fP
+t
+.Ee
+.Lf explode "'g_arg"
+.Re
+a list of single character symbols which 
+.i print 
+would use to print g_arg.
+.Lf explodec "'g_val"
+.Re
+the list of characters which print would use to print g_val except that
+special characters in symbols are 
+not escaped (just as if patom were used to print them).
+.Lf exploden "'g_val"
+.Re
+a list of fixnums which print would use to print g_val except that
+special characters in symbols are not escaped
+(just as if patom were used to print them).
+.Lf fillarray "'s_array 'l_itms"
+.Re
+s_array
+.Se
+the array s_array is filled with elements from l_itms.
+If there are not enough elements in l_itms to fill the entire array,
+then the last element of l_itms is used to fill the remaining parts
+of the array.
+.Lf gensym "'s_leader"
+.Re
+a new uninterned atom beginning with the first character of s_leader's
+pname, or beginning with g if s_leader is not given.
+.No
+The symbol looks like x0nnnnn where x is s_leader's first character and
+nnnnn is the number of times you have called gensym.
+.Lf get "'ls_name 'g_ind"
+.Re
+the value under indicator g_ind in ls_name's property list if ls_name
+is a symbol.
+.No
+If there is no indicator g_ind in ls_name's property list nil is returned.
+If ls_name is a list of an odd number of elements then it is a disembodied
+property list. 
+\fIget\fP searches a disembodied property list by  starting at its 
+\fIcdr\fP and looking at every other element for g_ind.
+.Eb
+-> \fI(putprop 'xlate 'a 'alpha)\fP
+a
+-> \fI(putprop 'xlate 'b 'beta)\fP
+b
+-> \fI(plist 'xlate)\fP
+(alpha a beta b)
+-> \fI(get 'xlate 'alpha)\fP
+a
+-> \fI(get '(nil fateman rjf sklower kls foderaro jkf) 'sklower)\fP
+kls
+.Ee
+.Lf get_pname "'s_arg"
+.Re
+the string which is the print name of s_arg.
+.\".pg
+.Lf getaccess  "'a_array"
+.Re
+the access function for the array a_array.
+.Rm
+.Lf getaddress "'s_entry1 's_binder1 'st_discipline1 [... ...]"
+.Re
+the binary object  which s_binder1's  function field is set to.
+.No
+This looks in the running lisp's symbol table for a symbol with the same
+name as s_entry\fIi\fP.
+It then creates a binary object
+whose entry field points to s_entry\fIi\fP 
+and whose discipline is st_discipline\fIi\fP.
+This binary object is stored in the function field of s_binder\fIi\fP.
+If st_discipline\fIi\fP is nil, then "subroutine" is used by default.
+This is especially useful for 
+.i cfasl
+users.
+.Lf getaux "'a_array"
+.Re
+the auxiliary field for the array a_array.
+.Rm
+.Lf getchar "'s_arg 'x_index"
+.Re
+the x_index'th character of the print name of s_arg or nil if x_index
+is less than 1 or greater than the length of s_arg's print name.
+.Lf getcharn "'s_arg 'x_index"
+.Re
+the fixnum representation of the x_index'th character 
+of the print name of s_arg or nil if x_index
+is less than 1 or greater than the length of s_arg's print name.
+.Lf getd "'s_arg"
+.Re
+the function definition of s_arg or nil if there is no function definition.
+.No
+the function definition may turn out to be an array header.
+.Lf getdelta "'a_array"
+.Re
+the delta field for a_array.
+.Rm
+.Lf getentry "'y_funchd"
+.Re
+the entry field of the binary y_funchd.
+.Rm
+.Lf getlength "'a_array"
+.Re
+the length field of the array a_array.
+.Rm
+.Lf hunk "'g_val1 ['g_val2 ... 'g_val\fIn\fP]"
+.Re
+a hunk of length n whose elements are initialized to the g_val\fIi\fP.
+.No
+the maximum size of a hunk is 128.
+.Ex
+\fI(hunk 4 'sharp 'keys)\fP ==> {4 sharp keys}
+.Lf hunksize "'h_arg"
+.Re
+the size of the hunk h_arg.
+.Ex
+\fI(hunksize (hunk 1 2 3))\fP ==> 3
+.Lf implode "'l_arg"
+.Wh
+l_arg is a list of symbols and small fixnums.
+.Re
+The symbol whose print name is the result of concatenating the print names
+of the symbols in the list.
+Any fixnums are converted to the equivalent ascii character.
+.Lf intern "'s_arg"
+.Re
+s_arg
+.Se
+s_arg is put on the oblist if it is not already there.
+.Lf last "'l_arg"
+.Re
+the last list cell in the list l_arg.
+.Ex
+\fIlast\fP does NOT return the last element of a list!
+.br
+\fI(last '(a b))\fP ==>  (b)
+.Lf length "'l_arg"
+.Re
+the number of elements in the top level of list l_arg.
+.Lf list "['g_arg1 ... ]"
+.Re
+a list whose elements are the g_arg\fIi\fP.
+.Lf makhunk "'xl_arg"
+.Re
+a hunk of length xl_arg initialized to all nils if xl_arg is a fixnum.
+If xl_arg is a list, then we return a hunk of size \fI(length\ 'xl_arg)\fP
+initialized to the elements in xl_arg.
+.No
+\fI(makhunk\ '(a\ b\ c))\fP is equivalent to \fI(hunk\ 'a\ 'b\ 'c)\fP.
+.Ex
+\fI(makhunk 4)\fP ==> {nil nil nil nil}
+.Lf *makhunk "'x_arg"
+.Re
+a hunk of size 2\*[x_arg\*] initialized to EMPTY.
+.No
+This is only to be used by such functions as \fIhunk\fP and \fImakhunk\fP
+which create and initialize hunks for users.
+.Lf maknam "'l_arg"
+.Re
+what implode would return except the resulting symbol is uninterned.
+.Lf makunbound "'s_arg"
+.Re
+s_arg
+.Se
+the value of s_arg is made `unbound'.
+If the interpreter attempts to evaluate s_arg before it is again 
+given a value, an unbound variable error will occur.
+.Lf marray  "'g_data 's_access 'g_aux 'x_length 'x_delta"
+.Re
+an array type with the fields set up from the above arguments
+in the obvious way (see \(sc 1.3.9).
+.Lf member "'g_arg1 'l_arg2"
+.Re
+that part of the l_arg2 beginning with the first occurrence
+of g_arg1.
+If g_arg1 is not in the top level of l_arg2, nil is returned.
+.No
+the test for equality is made with
+.i equal .
+.Lf memq "'g_arg1 'l_arg2"
+.Re.
+that part of the l_arg2 beginning with the first occurance
+of g_arg1.
+If g_arg1 is not in the top level of l_arg2, nil is returned.
+.No
+the test for equality is made with
+.i eq .
+.Lf nconc "'l_arg1 'l_arg2 ['l_arg3 ...]"
+.Re
+A list consisting of the elements of l_arg1 followed by the elements of
+l_arg2 followed by l_arg3 and so on.
+.No
+The 
+.i cdr 
+of the last list cell of l_arg\fIi\fP is changed to point to 
+l_arg\fIi+1\fP.
+.Eb
+; \fInconc\fP is faster than \fIappend\fP because it doesn't allocate new list
+; cells.
+-> \fI(setq lis1 '(a b c))\fP
+(a b c)
+-> \fI(setq lis2 '(d e f))\fP
+(d e f)
+-> \fI(append lis1 lis2)\fP
+(a b c d e f)
+-> \fIlis1\fP
+(a b c)       ; note that lis1 has not been changed by \fIappend\fP
+-> \fI(nconc lis1 lis2)\fP
+(a b c d e f) ; \fInconc\fP returns the same value as \fIappend\fP
+-> \fIlis1\fP
+(a b c d e f) ; but in doing so alters lis1
+.Ee
+.Lf ncons "'g_arg"
+.Re
+a new list cell with g_arg as car and nil as cdr.
+.Lf not "'g_arg"
+.Re
+t iff g_arg is nil.
+.Lf nreverse "'l_arg"
+.Re
+the reverse of l_arg.
+.No
+The reverse is done in place, that is the list structure is modified.
+No new list cells are allocated.
+.Lf nthelem "'n_arg1 'l_arg2"
+.Re
+The n_arg1'\fIst\fP element of the list l_arg2.
+.No
+If n_arg1 is non-positive or greater than the length
+of the list, nil is returned. 
+.Lf null "'g_arg"
+.Re
+t iff g_arg is nil.
+.Eq
+not.
+.Lf plist "'s_name"
+.Re
+the property list of s_name.
+.Lf ptr "'g_arg"
+.Re
+a value cell initialize to point to g_arg.
+.Lf putaccess "'a_array 's_func"
+.Re
+s_func.
+.Se
+replaces the access field of a_array with s_func.
+.Rm
+.Lf putaux "'a_array 'g_aux"
+.Re
+s_aux.
+.Se
+replaces the auxillary field of a_array with g_aux.
+.Rm
+.Lf putdelta "'a_array 'x_delta"
+.Re
+x_delta.
+.Se
+replaces the delta field of a_array with x_delta.
+.Rm
+.Lf putdisc "'y_func 's_discipline"
+.Re
+s_discipline
+.Se
+the discipline field of y_func is set to s_discipline.
+.Lf putlength "'a_array 'x_length"
+.Re
+x_length
+.Se
+replaces the length field of a_array with x_length.
+.Rm
+.Lf putprop "'ls_name 'g_val 'g_ind"
+.Re
+g_val.
+.Se
+Adds to the property list of ls_name the value g_val under the indicator
+g_ind.
+.No
+this is similar to 
+.i defprop 
+except the arguments are evaluated to 
+.i putprop .
+ls_name may be a disembodied property list, see \fIget\fP.
+.Lf quote "g_arg"
+.Re
+g_arg.
+.No
+the reader allows you to abbreviate (quote foo) as 'foo.
+.Lf rematom "'s_arg"
+.Re
+t if s_arg is indeed an atom.
+.Se
+s_arg is put on the free atoms list, effectively reclaiming an
+atom cell.
+.No
+This function does 
+.i not
+check to see if s_arg is on the oblist or is referenced anywhere.
+Thus calling 
+.i rematom
+on an atom in the oblist may result in disaster when that atom cell
+is reused!
+.Lf remob "'s_symbol"
+.Re
+s_symbol
+.Se
+s_symbol is removed from the oblist.
+.Lf remprop "'ls_name 'g_ind"
+.Re
+the portion of  ls_name's property list beginning with the 
+property under the indicator g_ind.
+If there is no g_ind indicator in ls_name's plist, nil is returned.
+.Se
+the value under indicator g_ind and g_ind itself is removed from 
+the property list of ls_name.
+.No
+ls_name may be a disembodied property list, see \fIget\fP.
+.Lf replace "'g_arg1 'g_arg2"
+.Wh
+g_arg1 and g_arg2 must be the same type of lispval and not symbols or hunks.
+.Re
+g_arg2.
+.Se
+The effect of
+.i replace 
+is dependent on the type of the g_arg\fIi\fP although one will notice 
+a similarity in the effects.
+To understand what 
+.i replace
+does to fixnum and flonum arguments you must first understand that 
+such numbers are `boxed' in 
+.Fr .
+What this means is that if the symbol x has a value 32412, then in
+memory the value element of x's symbol structure contains the address of
+another word of memory (called a box) with 32412 in it.
+Thus there are two ways of changing the value of x, one is to change
+the value element of x's symbol structure to point to a word of memory
+with a different value.
+Another way is to change the value in the box which x points to.
+The former method is used almost all of the time, the latter is
+used very rarely and has the potential to cause great confusion.
+The function
+.i replace
+allows you to do the latter, that is to actually change the value in
+the box.
+You should watch out for these situations.
+If you do \fI(setq\ y\ x)\fP then both  x and y will point to the
+same box.
+If you now \fI(replace\ x\ 12345)\fP then y will also have the value
+12345.
+And in fact there may be many other pointers to that box.
+Another problem with replacing fixnums is that some boxes are read only.
+The fixnums between -1024 and 1023 are stored in a read only area
+and attempts to replace them will result in an "Illegal memory reference"
+error (see the description of 
+.i copyint*
+for a way around this problem)..
+For the other valid types, the effect of 
+.i replace 
+is easy to understand.
+The fields of g_val1's structure are made eq to the corresponding fields of
+g_val2's structure.
+For example, if x  and  y have lists as values then the effect of
+\fI(replace\ x\ y)\fP is the same as 
+\fI(rplaca\ x\ (car\ y))\fP and \fI(rplacd\ x\ (cdr\ y))\fP.
+.Lf reverse "'l_arg"
+.Re
+the reverse of the list l_arg.
+.No
+The 
+.i reverse 
+is performed by allocating new list cells to duplicate
+the top level of l_arg. This can be expensive if l_arg is large.
+The function nreverse will reverse the list without allocating 
+new list cells.
+.Lf rplaca "'lh_arg1 'g_arg2"
+.Re
+the modified lh_arg1.
+.Se
+the car of lh_arg1 is set to  g_arg2.
+If lh_arg1 is a hunk then the second element of the hunk is set to g_arg2.
+.Lf rplacd "'lh_arg1 'g_arg2"
+.Re
+the modified lh_arg1.
+.Se
+the cdr of lh_arg2 is set to g_arg2.
+If lh_arg1 is a hunk then the first element of the hunk is set to g_arg2.
+.Lf rplacx "'x_ind 'h_hunk 'g_val"
+.Re
+h_hunk
+.Se
+Element x_ind (starting at 0) of h_hunk is set to g_val.
+.Lf *rplacx "'x_ind 'h_hunk 'g_val"
+.Re
+h_hunk
+.Se
+Element x_ind (starting at 0) of h_hunk is set to g_val.
+.No
+This is the same as \fIrplacx\fP except you may replace uninitialized
+hunk entries. 
+This is only to be used by functions such as \fIhunk\fP and \fImakhunk\fP
+which create hunks of sizes which are not powers of two.
+.Lf sassoc "'g_arg1 'l_arg2 'sl_func"
+.Re 
+the result of \fI(cond\ ((assoc\ 'g_arg\ 'l_arg2)\ (apply\ 'sl_func\ nil)))\fP
+.No
+sassoc is written as a macro.
+.Lf sassq "'g_arg1 'l_arg2 'sl_func"
+.Re 
+the result of \fI(cond\ ((assq\ 'g_arg\ 'l_arg2)\ (apply\ 'sl_func\ nil)))\fP
+.No
+sassq is written as a macro.
+.Lf set "'s_arg1 'g_arg2"
+.Re
+g_arg2.
+.Se
+the value of s_arg1 is set to g_arg2.
+.Lf setplist "'s_atm 'l_plist"
+.Re
+l_plist.
+.Se
+the property list of s_atm is set to l_plist.
+.Lf setq "s_atm1 'g_val1 [ s_atm2 'g_val2 ... ... ]"
+.Wh
+the arguments are pairs of atom names and expressions.
+.Re
+the last g_val\fIi\fP.
+.Se
+each s_atm\fIi\fP is set to have the value g_val\fIi\fP.
+.Lf stringp "'g_arg"
+.Re
+t iff g_arg is a string.
+.Lf symbolp "'g_arg"
+.Re
+t iff g_arg is a symbol.
+.Lf type "'g_arg"
+.Re
+a symbol whose pname describes the type of g_arg.
+.\".pg
+.Lf typep "'g_arg"
+.Eq
+type.
+.Lf uconcat "['s_arg1 ... ]"
+.Re
+a symbol whose pname is the result of concatenating the print names (pnames)
+of the s_arg\fIi\fP.
+.No
+If no arguments are given, a symbol with a null pname is returned.
+\fIuconcat\fP does not place the symbol created on 
+the oblist, the function concat
+does the same thing but does place the new symbol on the oblist.
+.Lf valuep "'g_arg"
+.Re
+t iff g_arg is a value cell
diff --git a/usr/doc/lisp/ch3.n b/usr/doc/lisp/ch3.n
new file mode 100644 (file)
index 0000000..e1fb9bb
--- /dev/null
@@ -0,0 +1,290 @@
+.Lc Arithmetic\ Functions 3
+.sh 2 "" \n(ch 1
+This chapter describes 
+.Fr "'s"
+functions for doing arithmetic.
+Often the same function is know by many names, such as
+.i add
+which is also
+.i plus ,
+.i sum ,
+and \(pl.
+This is due to our desire to be compatible with other Lisps.
+The 
+.Fr
+user is advised to avoid using functions with names
+such as \(pl and \(** unless
+their arguments are fixnums.
+The lisp compiler takes advantage of the fact that their
+arguments are fixnums.
+.pp
+An attempt to divide by zero will cause a floating exception signal
+from the UNIX operating system.
+The user can catch and process this interrupt if he wishes (see the 
+description of the
+.i signal
+function).
+.sp 1v
+.Lf abs 'n_arg
+.Re
+the absolute value of n_arg.
+.Lf absval "'n_arg"
+.Eq
+abs.
+.Lf add "['n_arg1 ...]"
+.Re
+the sum of the arguments. If no arguments are given, 0 is returned.
+.No
+if the size of the partial sum exceeds the limit of a fixnum, the
+partial sum will be converted to a bignum.
+If any of the arguments are flonums, the partial sum will be 
+converted to a flonum when that argument is processed and the 
+result will thus be a flonum.
+Currently, if in the process of doing the 
+addition a bignum must be converted into
+a flonum an error message will result.
+.Lf add1 'n-arg
+.Re
+n_arg plus 1.
+.Lf acos "'fx_arg"
+.Re
+the arc cosine of fx_arg in the range 0 to \(*pi.
+.Lf asin "'fx_arg"
+.Re
+the arc sine of fx_arg in the range \(mi\(*p/2 to \(*p/2.
+.Lf atan "'fx_arg1 'fx_arg2"
+.Re
+the arc tangent of fx_arg1/fx_arg2 in the range -\(*p to \(*p.
+.Lf boole "'x_key 'x_v1 'x_v2 ..."
+.Re
+the result of the bitwise boolean operation as described in the following
+table.
+.No
+If there are more than 3 arguments, then evaluation proceeds left to
+right with each partial result becoming the new value of x_v1.
+That is, 
+.br
+\ \ \ \ \ \fI(boole\ 'key\ 'v1\ 'v2\ 'v3)\ \(==\ (boole\ 'key\ (boole\ 'key\ 'v1\ 'v2)\ 'v3)\fP.
+.br
+In the following table, \(** represents bitwise and, \(pl represents
+bitwise or, \o'\(ci\(pl' represents bitwise xor and \(no represents
+bitwise negation and is the highest precedence operator.
+.TS
+center box ;
+c s s s s s s s s
+c c c c c c c c c.
+(boole 'key 'x 'y)
+
+=
+key    0       1       2       3       4       5       6       7
+result 0       x \(** y        \(no x \(** y   y       x \(** \(no y   x       x \o'\(ci\(pl' y        x \(pl y
+
+_
+
+key    8       9       10      11      12      13      14      15
+result \(no (x \(pl y) \(no(x \o'\(ci\(pl' y)  \(no x  \(no x \(pl y   \(no y  x \(pl \(no y   \(no x \(pl \(no y      -1
+.TE
+.Lf cos "'fx_angle"
+.Re
+the cosine of fx_angle (which is assumed to be in radians).
+.Lf diff "['n_arg1 ... ]"
+.Re
+the result of subtracting from n_arg1 all subsequent arguments. 
+If no arguments are given, 0 is returned.
+.No
+See the description of add for details on data type conversions and
+restrictions.
+.Lf difference "['n_arg1 ...]"
+.Eq
+diff.
+.Lf Divide "'i_dividend 'i_divisor"
+.Re
+a list whose car is the quotient and whose cadr is the remainder of the
+division of i_dividend by i_divisor.
+.No
+this is restricted to integer division.
+.Lf Emuldiv "'x_fact1 'x_fact2 'x_addn 'x_divisor"
+.Re
+a list of the quotient and remainder of this operation: 
+((x_fact1\ *\ x_fact2)\ +\ (sign\ extended)\ x_addn)\ /\ x_divisor.
+.No
+this is useful for creating a bignum arithmetic package in Lisp.
+.Lf exp "'fx_arg"
+.Re
+.i e
+raised to the fx_arg power.
+.Lf expt "'n_base 'n_power"
+.Re
+n_base raised to the i_power power.
+.No
+if either of the arguments are flonums, the calculation will be done using
+.i log
+and 
+.i exp .
+.Lf fact "'x_arg"
+.Re
+x_arg factorial.
+.Lf fix "'n_arg"
+.Re
+a fixnum as close as we can get to n_arg.
+.No
+\fIfix\fP will round down.
+Currently, if n_arg is a flonum larger 
+than the size of a fixnum, this will fail.
+.Lf fixp "'g_arg"
+.Re
+t iff g_arg is a fixnum or bignum.
+.Lf float "'n_arg"
+.Re
+a flonum as close as we can get to n_arg.
+.No
+if n_arg is a bignum larger than the maximum size of a flonum,
+then a floating exception will occur.
+.Lf floatp "'g_arg"
+.Re
+t iff g_arg is a flonum.
+.\".pg
+.Lf greaterp "['n_arg1 ...]"
+.Re
+t iff the arguments are in a strictly decreasing order.
+.No
+the function difference is used to compare adjacent values. 
+If any of the arguments are non numbers, the error message will come 
+from the difference function.
+.Lf haipart "bx_number x_bits"
+.Re
+the x_bits high bits of |bx_number| if x_bits is positive, otherwise
+it returns the |x_bits| low bits of |bx_number|.
+.Lf haulong "bx_number"
+.Re
+the number of significant bits in bx_number.
+.No
+the result is equal to the least integer greater to or equal to the
+base two logarithm of |bx_number|\ +\ 1.
+.Lf lessp "['n_arg1 ...]"
+.Re
+t iff the arguments are in a strictly increasing order.
+.No
+the function \fIdifference\fP is used to compare adjacent values. 
+If any of the arguments are non numbers, the error message will come 
+from the \fIdifference\fP function.
+.Lf log "'fx_arg"
+.Re
+the natural logarithm of fx_arg.
+.Lf lsh "'x_val 'x_amt"
+.Re
+x_val shifted left by x_amt if x_amt is positive.
+If x_amt is negative, then 
+.i lsh
+returns x_val shifted right by the magnitude if x_amt.
+.Lf max "'n_arg1 ... "
+.Re
+the maximum value in the list of arguments.
+.Lf min "'n_arg1 ... "
+.Re
+the minimum value in the list of arguments.
+.Lf minus "'n_arg"
+.Re
+zero minus n_arg.
+.Lf minusp "'g_arg"
+.Re
+t iff g_arg is a negative number.
+.Lf mod "'i_dividend 'i_divisor"
+.Re
+the remainder when i_dividend is divided by i_divisor.
+.Lf numberp "'g_arg"
+.Re
+t iff g_arg is a number (fixnum, flonum or bignum).
+.Lf numbp "'g_arg"
+.Eq
+numberp.
+.Lf onep "'g_arg"
+.Re
+t iff g_arg is a number equal to 1.
+.Lf plus "['n_arg ...]"
+.Eq
+to add.
+.Lf plusp "'n_arg"
+.Re
+t iff n_arg is greater than zero.
+.Lf product "['n_arg1 ... ]"
+.Re
+the product of all of its arguments.
+It returns 1 if there are no arguments.
+.No
+See the description of the function \fIadd\fP for details and restrictions to the
+automatic data type coercion.
+.Lf quotient "['n_arg1 ...]"
+.Re
+the result of dividing the first argument by succeeding ones.
+.No
+If there are no arguments, 1 is returned.
+See the description of the function \fIadd\fP for details and restrictions
+of data type coercion.
+A divide by zero will cause a floating exception interrupt -- see 
+the description of the
+.i signal 
+function.
+.Lf random "['x_limit]"
+.Re
+a fixnum between 0 and x_limit \*(mi 1 if x_limit is given.
+If x_limit is not given, any fixnum, positive or negative, might be
+returned.
+.Lf remainder "'i_dividend 'i_divisor"
+.Eq
+mod.
+.Lf rot "'x_val 'x_amt"
+.Re
+x_val rotated left by x_amt if x_amt is positive. 
+If x_amt is negative, then x_val is rotated right by the magnitude of x_amt.
+.Lf sin "'fx_angle"
+.Re
+the sine of fx_angle (which is assumed to be in radians).
+.Lf sqrt "'fx_arg"
+.Re
+the square root of fx_arg.
+.Lf sub1 "'n_arg"
+.Re
+n_arg minus 1.
+.Lf sum "['n_arg1 ...]"
+.Eq
+add and plus.
+.Lf times "['n_arg1 ... ]"
+.Eq
+product.
+.Lf zerop "'g_arg"
+.Re
+t iff g_arg is a number equal to 0.
+.in 0
+.nr si 0       \" kill section indent so what follows will look nice
+.sh 2
+These functions are restricted to fixnum arguments in Maclisp.
+The lisp compiler will assume the arguments are fixnums and open
+code most of these functions.
+.Lf 1+ "'n_arg"
+.Eq
+add1.
+.Lf 1\(mi "'n_arg"
+.Eq
+sub1.
+.Lf \(pl "'n_arg"
+.Eq
+add.
+.Lf \(** "'n_arg"
+.Eq
+times. 
+.Lf \(mi "'n_arg"
+.Eq
+difference.
+.Lf  / "'n_arg1 'n_arg2"
+.Eq
+quotient
+.Lf < "'n_arg1 'n_arg2"
+.Eq
+lessp.
+.Lf \(eq "'g_arg1 'g_arg2"
+.Eq
+equal.
+.Lf > "'n_arg1 'n_arg2"
+.Eq
+greaterp.
diff --git a/usr/doc/lisp/ch4.n b/usr/doc/lisp/ch4.n
new file mode 100644 (file)
index 0000000..b15afc9
--- /dev/null
@@ -0,0 +1,518 @@
+.Lc    Special\ Functions 4
+.Lf and "[g_arg1 ...]"
+.Re
+the value of the last argument if all arguments evaluate
+to a non nil value, otherwise 
+.i and 
+returns nil.
+It returns t if there are no arguments.
+.No
+the arguments are evaluated left to right and evaluation will cease
+with the first nil encountered
+.Lf apply "'u_func 'l_args"
+.Re
+the result of applying function u_func to the arguments in the list l_args.
+.No
+If u_func is a lambda, then the \fI(length\ l_args)\fP should equal the
+number of formal parameters for the u_func.
+If u_func is a nlambda or macro, then l_args is bound to the single
+formal parameter.
+.Eb
+; \fIadd1\fP is a lambda of 1 argument
+-> \fI(apply 'add1 '(3))\fP
+4
+
+; we will define \fIplus1\fP as a macro which will be equivalent to \fIadd1\fP
+-> \fI(def plus1 (macro (arg) (list 'add1 (cadr arg))))\fP
+plus1
+-> \fI(plus1 3)\fP
+4
+
+; now if we \fIapply\fP a macro we obtain the form it changes to.
+-> \fI(apply 'plus1 '(plus1 3))\fP
+(add1 3)
+
+; if we \fIfuncall\fP a macro however, the result of the macro is \fIeval\fPed
+; before it is returned.
+-> \fI(funcall 'plus1 '(plus1 3))\fP
+4
+.Ee
+.Lf arg "['x_numb]"
+.Re 
+if x_numb is specified then the x_numb'\fIth\fP argument to 
+the enclosing lexpr
+If x_numb is not specified then this returns the number of arguments 
+to the enclosing lexpr.
+.No
+it is an error to the interpreter if x_numb is given and out of range.
+.Lf break "[g_message ['g_pred]]"
+.Wh
+if g_message is not given it is assumed to be the null string, and
+if g_pred is not given it is assumed to be t.
+.Re
+the value of (*break 'g_pred 'g_message)
+.Lf *break "'g_pred 'g_message"
+.Re
+nil immediately if g_pred is nil, else
+the value of the next (return 'value) expression typed in at top level.
+.Se
+If the predicate, g_pred, evaluates to non nil,
+the lisp system stops and prints out `Break '
+followed by g_message. 
+It then enters a break loop
+which allows one to interactively debug a program.
+To continue execution from a break you can use the
+.i return 
+function. 
+to return to top level or another break level, you can use
+.i retbrk 
+or 
+.i reset .
+.Lf catch "g_exp [ls_tag]"
+.Wh
+if ls_tag is not given, it is assumed to be nil.
+.Re
+the result of (*catch 'ls_tag g_exp)
+.No
+catch is defined as a macro.
+.Lf *catch "'ls_tag g_exp"
+.Wh
+ls_tag is either a symbol or a list of symbols.
+.Re
+the result of evaluating g_exp or the value thrown during the evaluation
+of g_exp.
+.Se
+this first sets up a `catch frame' on the lisp runtime stack.
+Then it begins to evaluate g_exp.
+If g_exp evaluates normally, its value is returned.
+If, however a 
+.i throw
+is done during the evaluation of g_exp we will catch the value thrown iff
+one of these cases is true:
+.nr $p 0
+.np
+the tag thrown to is ls_tag 
+.np
+ls_tag is a list and the tag thrown to is a member of this list
+.np
+ls_tag is nil.
+.No
+Errors are implemented as a special kind of throw.
+A catch with no tag will not catch an error but a catch whose tag is
+the error type will catch that type of error.
+See \(sc10 for more information.
+.Lf comment "[g_arg ...]"
+.Re
+the symbol comment.
+.No
+This does absolutely nothing.
+.Lf cond "[l_clause1 ...]"
+.Re
+the last value evaluated in the first clause satisfied.
+If no clauses are satisfied then nil is returned.
+.No
+This is the basic conditional `statement' in lisp.
+The clauses are processed from left to right.
+The first element of a clause is evaluated.
+If it evaluated to a non nil value then that clause is satisfied and
+all following elements of that clause are evaluated.
+The last value computed is returned as the value of the cond.
+If there is just one element in the clause then its value is returned.
+If the first element of a clause evaluates to nil, then the other
+elements of that clause are not evaluated and the system moves to
+the next clause.
+.Lf declare "[g_arg ...]"
+.Re
+nil
+.No
+this is a no-op to the evaluator.
+It has special meaning to the compiler.
+.Lf def "s_name (s_type l_argl g_exp1 ...)"
+.Wh
+s_type is one of lambda, nlambda, macro or lexpr.
+.Re
+s_name
+.Se
+This defines the function s_name to the lisp system.
+If s_type is nlambda or macro then the argument list l_argl must contain
+exactly one non-nil symbol.
+.Lf defun "s_name [s_mtype] ls_argl g_exp1 ... "
+.Wh
+s_mtype is one of fexpr, expr, args or macro.
+.Re
+s_name
+.Se
+This defines the function s_name.
+.No
+this exists for \s-2MAC\s0lisp compatibility, it is just a macro which
+changes the defun form to the def form.
+An s_mtype of fexpr is converted to nlambda
+and of expr to lambda. Macro remains the same.
+If ls_arg1 is a non-nil symbol, then the type is assumed to be lexpr and
+ls_arg1 is the symbol which is bound to the number of args when the
+function is entered.
+.Eb
+; \fIdef\fP and \fIdefun\fP here are used to define identical functions
+; you can decide for yourself which is easier to use.
+-> \fI(def append1 (lambda (lis extra) (append lis (list extra))))\fP
+append1
+
+-> \fI(defun append1 (lis extra) (append lis (list extra)))\fP
+append1
+.Ee
+.Lf do "l_vrbs l_test g_exp1 ..."
+.Re
+the last form in the cdr of l_test evaluated, or a value explicitly given by
+a return evaluated within the do body.
+.No
+This is the basic iteration form for
+.Fr .
+l_vrbs is a list of zero or more var-init-repeat forms.
+A var-init-repeat form looks like:
+.br
+.tl ''(s_name [g_init [g_repeat]])''
+There are three cases depending on what is present in the form.
+If just s_name is present, this means that when the do is entered,
+s_name is lambda-bound to nil and is never modified by the system 
+(though the program is certainly free to modify its value).
+If the form is (s_name\ 'g_init) then the only difference is that
+s_name is lambda-bound to the value of g_init instead of nil.
+If g_repeat is also present then s_name is lambda-bound to g_init
+when the loop is entered and after each pass through the do body
+s_name is  bound to the value of g_repeat.
+.br
+l_test is either nil or has the form of a cond clause.
+If it is nil then the do body will be evaluated only once and the
+do will return nil.
+Otherwise, before the do body is evaluated the car of l_test is 
+evaluated and if the result is non nil this signals an end to
+the looping.
+Then the rest of the forms in l_test are evaluated
+and the value of the last one is returned as the value of the do.
+If the cdr of l_test is nil, then nil is returned -- thus this is not
+exactly like a cond clause.
+.br
+g_exp1 and those forms which follow constitute the do body.
+A do body is like a prog body and thus may have labels and one may
+use the functions go and return.
+.br
+The sequence of evaluations is this:
+.nr $p 0
+.np
+the init forms are evaluated left to right and  stored in temporary
+locations.
+.np
+Simultaneously all do variables are lambda bound to the value of
+their init forms or nil.
+.np
+If l_test is non nil then the car is evaluated and if it is non nil
+the rest of the forms in l_test are evaluated and the last value is 
+returned as the value
+of the do.
+.np
+The forms in the do body are evaluated left to right.
+.np
+If l_test is nil the do function returns with the value nil.
+.np
+The repeat forms are evaluated and saved in temporary locations.
+.np
+The variables with repeat forms are simultaneously
+bound to the values of those forms.
+.np
+Go to step 3.
+.No
+there is an alternate form of do which can be used when there is
+only one do variable.
+It is described next.
+.\".pg
+.Lf do "s_name g_init g_repeat g_test g_exp1 ..."
+.nr $p 0
+.No
+this is another, less general,  form of do.
+It is evaluated by:
+.np
+evaluating g_init
+.np
+lambda binding s_name to value of g_init
+.np
+g_test is evaluated and if it is not nil the do function returns with nil.
+.np
+the do body is evaluated beginning at g_exp1.
+.np
+the repeat form is evaluated and stored in s_name.
+.np
+go to step 3.
+.Lf err "['s_value [nil]]"
+.Re
+nothing (it never returns).
+.Se
+This causes an error and if this error is caught by an 
+.i errset
+then that 
+.i errset
+will return s_value instead of nil.
+If the second arg is given, then it must be nil (\s-2MAC\s0lisp 
+compatibility).
+.Lf error "['s_message1 ['s_message2]]"
+.Re
+nothing (it never returns).
+.Se
+s_message1 and s_message2 are \fIpatom\fPed if they are given and
+then \fIerr\fP is called which causes an error.
+.Lf errset "g_expr [s_flag]"
+.Re
+a list of one element, which is the value resulting from evaluating g_expr.
+If an error occurs during the evaluation of g_expr, then the locus of control
+will return to the 
+.i errset
+which will then return nil (unless the error was caused by a call to
+.i err).
+.Se
+S_flag is evaluated before g_expr is evaluated. 
+If s_flag is not given, then it is assumed to be t.
+If an error occurs during the evaluation of g_expr, and s_flag evaluated to 
+a non nil value, then the error message associated with the
+error is printed before control returns to the errset.
+.Lf eval "'g_val"
+.Re
+the result of evaluating g_val.
+.No
+The evaluator evaluates g_val in this way:
+.br
+If g_val is a symbol, then the evaluator returns its value.
+If g_val had never been assigned a value, then this causes 
+an 'Unbound Variable' error.
+If g_val is of type value, then its value is returned.
+If g_val is a list object then g_val is either a function call or
+array reference.
+Let g_car be the first element of g_val.
+We continually evaluate g_car until we end up with a symbol with
+a non nil function binding
+or a non-symbol.
+Call what we end up with: g_func.
+g_func must be one of three types: list, binary or array.
+If it is a list then the first element of the list, which 
+we shall call g_functype, must be either
+lambda, nlambda, macro or lexpr.
+If g_func is a binary, then its discipline, which we shall call
+g_functype, is either lambda, nlambda, macro or a string "subroutine",
+"function", "integer-function" or "real-function".
+If g_func is an array then this form is evaluated specially, see
+\(sc9 on arrays.
+If g_func is a list or binary, then g_functype will determine how
+the arguments to this function, the cdr of g_val, are processed.
+If g_functype is a string, then this is a foreign function call (see \(sc8.4
+for more details).
+If g_functype is lambda or lexpr, the arguments are  evaluated
+(by calling 
+.i eval
+recursively) and stacked.
+If g_functype is nlambda then the argument list is stacked.
+If g_functype is macro then the entire form, g_val is stacked.
+Next the formal variables are lambda bound.
+The formal variables are the cadr of g_func - if g_functype is
+nlambda, lexpr or macro, there should only be one formal variable.
+The values on the stack are lambda bound to the formal variables
+except in the case of a lexpr, where the number of actual arguments
+is bound to the formal variable.
+After the binding is done, the function is invoked, either by
+jumping to the entry point in the case of a binary or 
+by evaluating the list of forms beginning at cddr g_func.
+The result of this function invocation is returned as the value 
+of the call to eval.
+.Lf eval-when "l_times g_exp1 ... g_expn"
+.Wh
+l_times is a list containing any combination of compile, eval and load.
+.Re
+nil
+if the symbol eval is not  member of l_times, 
+else returns the value of g_expn.
+.Se
+If eval is a member of l_times, then the forms g_exp\fIi\fP are
+evaluated.
+.No
+this is used mainly to control when the compiler evaluates forms.
+.Lf exec "s_arg1 ..."
+.Re
+the result of forking and executing the command named by concatenating
+the s_arg\fIi\fP together with spaces in between.
+.Lf exece "'s_fname ['l_args ['l_envir]]"
+.Re
+the error code from the system if it was unable to 
+execute the command s_fname with arguments
+l_args and with the environment set up as specified in l_envir.
+If this function is successful, it will not return, instead the lisp
+system will be overlaid by the new command.
+.Lf funcall "'u_func ['g_arg1 ...]"
+.Re
+the value of applying function u_func to the arguments g_arg\fIi\fP
+and then evaluating that result if u_func is a macro.
+.No
+If u_func is a macro or nlambda then there should be only one g_arg.
+\fIfuncall\fP is the function which the evaluator uses to evaluate
+lists.
+If \fIfoo\fP is a lambda or lexpr or array, 
+then \fI(funcall\ 'foo\ 'a\ 'b\ 'c)\fP
+is equivalent to \fI(foo\ 'a\ 'b\ 'c)\fP.
+If \fIfoo\fP is a nlambda
+then \fI(funcall\ 'foo\ '(a\ b\ c))\fP is equivalent to
+\fI(foo a b c)\fP.
+Finally, if 
+.i foo
+is a macro then
+.i (funcall\ 'foo\ '(foo\ a\ b\ c))
+is equivalent to
+.i (foo\ a\ b\ c) .
+.Lf function "u_func"
+.Re
+the function binding of u_func if it is an symbol with a function binding
+otherwise u_func is returned.
+.Lf getdisc "'t_func"
+.Re
+the discipline of the machine coded function (either lambda, nlambda
+or macro).
+.Lf go "g_labexp"
+.Wh
+g_labexp is either a symbol or an expression.
+.Se
+If g_labexp is an expression, that expression is evaluated and 
+should
+result in a symbol.
+The locus of control moves to just following the symbol g_labexp in the
+current prog or do body.
+.No
+this is only valid in the context of a prog or do body.
+The interpreter and compiler will allow non-local 
+.i go 's 
+although the compiler won't allow a \fIgo\fP to leave a function body.
+The compiler will not allow g_labexp to be an expression.
+.Lf map "'u_func 'l_arg1 ..."
+.Re
+l_arg1
+.No
+The function u_func is applied to successive sublists of the l_arg\fIi\fP.
+All sublists should have the same length.  
+.\".pg
+.Lf mapc "'u_func 'l_arg1 ..."
+.Re
+l_arg1.
+.No
+The function u_func is applied to successive elements of the argument 
+lists.
+All of the lists should have the same length.
+.Lf mapcan "'u_func 'l_arg1 ..."
+.Re
+nconc applied to the results of the functional evaluations.
+.No
+The function u_func is applied to successive elements of the 
+argument lists.
+All sublists should have the same length.
+.Lf mapcar "'u_func 'l_arg1 ..."
+.Re
+a list of the values returned from the functional application.
+.No
+the function u_func is applied to successive elements of the
+argument lists.
+All sublists should have the same length.
+.Lf mapcon "'u_func 'l_arg1 ..."
+.Re
+nconc applied to the results of the functional evaluation.
+.No
+the function u_func is applied to successive sublists of the
+argument lists.
+All sublists should have the same length.
+.Lf maplist "'u_func 'l_arg1 ..."
+.Re
+a list of the results of the functional evaluations.
+.No
+the function u_func is applied to successive sublists of the arguments
+lists.
+All sublists should have the same length.
+.Lf mfunction "entry 's_disc"
+.Re
+a lisp object of type binary composed of entry and s_disc.
+.No
+entry is a pointer to the machine code for a function, and s_disc is the
+discipline (e.g. lambda).
+.\".pg
+.Lf oblist
+.Re
+a list of all symbols on the oblist.
+.Lf or "[g_arg1 ... ]"
+.Re
+the value of the first non nil argument  or nil if all arguments 
+evaluate to nil.
+.No
+Evaluation proceeds left to right and stops as soon as one of the arguments
+evaluates to a non nil value.
+.Lf prog "l_vrbls g_exp1 ..."
+.Re
+the value explicitly given in a return form
+or else nil if no return is done by the time the last g_exp\fIi\fP is
+evaluated.
+.No
+the local variables are lambda bound to nil then the g_exp\fI\fP
+are evaluated from left to right.
+This is a prog body (obviously) and this means than 
+any symbols seen are not evaluated,
+instead they are treated as labels.
+This also means that returns and go's are allowed.
+.Lf prog2 "g_exp1 g_exp2 [g_exp3 ...]"
+.Re
+the value of g_exp2.
+.No
+the forms are evaluated from left to right and the value of g_exp2 is
+returned.
+.Lf progn "g_exp1 [g_exp2 ...]"
+.Re
+the value of the last g_exp\fIi\fP.
+.No
+the forms are evaluated from left to right and the value of the last one
+is returned.
+.Lf progv "'l_locv 'l_initv g_exp1 ..."
+.Wh
+l_locv is a list of symbols and l_initv is a list of expressions.
+.Re
+the value of the last g_exp\fIi\fP evaluated.
+.No
+The expressions in l_initv are evaluated from left to right
+and then lambda-bound to the symbols in _locv.
+If there are too few expressions in l_initv then the missing values
+are assumed to be nil.
+If there are too many expressions in l_initv then the extra ones are
+ignored (although they are evaluated).
+Then the g_exp\fIi\fP are evaluated left to right.
+The body of a progv is like the body of a progn, it is 
+.i not
+a prog body.
+.Lf putd "'s_name 'u_func"
+.Re
+this sets the function binding of symbol s_name to u_func.
+.Lf return "['g_val]"
+.Re
+g_val (or nil if g_val is not present) from the enclosing prog or do body.
+.No
+this form is only valid in the context of a prog or do body.
+.Lf setarg "'x_argnum 'g_val"
+.Wh
+x_argnum is greater than zero and less than or equal to the number of
+arguments to the lexpr.
+.Re
+g_val
+.Se
+the lexpr's x_argnum'th argument is set to g-val.
+.No
+this can only be used within the body of a lexpr.
+.Lf throw "'g_val [s_tag]"
+.Wh
+if s_tag is not given, it is assumed to be nil.
+.Re
+the value of \fI(*throw 's_tag 'g_val)\fP.
+.Lf *throw "'s_tag 'g_val"
+.Re
+g_val from the first enclosing catch with 
+the tag s_tag or with no tag at all.
+.No
+this is used in conjunction with 
+.i *catch
+to cause a clean jump to an enclosing context.
diff --git a/usr/doc/lisp/ch5.n b/usr/doc/lisp/ch5.n
new file mode 100644 (file)
index 0000000..82f652b
--- /dev/null
@@ -0,0 +1,371 @@
+.Lc Input/Output 5
+The following functions are used to read and write to and from external devices
+and programs (through pipes).
+All I/O goes through the lisp data type called the port.
+A port may be open for either reading or writing but not both
+simultaneously.
+There are only a limited number of ports (20) and they will not be reclaimed
+unless you 
+.i close
+them.
+All ports are reclaimed by a 
+.i resetio
+call but this drastic step won't be necessary if the program closes
+what it uses.
+If you don't supply a port argument to a function which requires one
+or if you supply a bad port argument (such as nil)
+then 
+.Fr
+will use the default port according to this scheme.
+If you are reading then the default port is the value of the symbol
+.i piport 
+and if you are writing it is the value of the symbol
+.i poport .
+Furthermore if the value of piport or poport is not a valid port then
+the standard input or standard output will be used, respectively.
+The standard input and standard output are usually the keyboard and
+terminal display unless your job is running in the background and its
+input or output is connected to a pipe.
+All output which goes to the standard output will also go to the 
+port
+.i ptport
+if it is a valid port.
+Output destined for the standard output will not reach it if the symbol 
+.i ^w
+is non nil (although it will still go to 
+.i ptport 
+if 
+.i ptport 
+is a valid port).
+.Lf cfasl "'st_file 'st_entry 's_funcname ['st_disc ['st_library]]"
+.Re
+t
+.Se
+This is use to load in a foreign function (see \(sc8.4).
+The object file st_file is loaded into the lisp system.
+St_entry should be an entry point in the file just loaded.
+The function binding of the symbol s_funcname will be set to point
+to st_entry, so that when the lisp function s_funcname is called,
+st_entry will be run.
+st_disc is the discipline to be given to s_funcname. 
+st_disc defaults to "subroutine" if it is not given or if it is given as nil.
+If st_library is non nil, then after st_file is loaded, the libraries
+given in st_library will be searched to resolve external references.
+The form of st_library should be something like "-lS -lm".
+The c library  (" -lc " ) is always searched so when loading in a C
+file you probably won't need to specify a library.
+For Fortran files, you should specify "-lF77" and if you are doing 
+any I/O that should be "-lF77 -lIf77".
+For Pascal files "-lpc" is required.
+.No
+This function may be used to load the output of the assembler, C compiler,
+Fortran compiler, and Pascal compiler  but NOT the lisp compiler (use 
+.i fasl 
+for that).
+If a file has more than one entry point, then use 
+.i getaddress 
+to locate and setup other foreign functions.
+.Lf close "'p_port" 
+.Re t
+.Se
+the specified port is drained and closed, releasing the port.
+.No
+The standard defaults are not used in this case since you probably never
+want to close the standard output or standard input.
+.Lf cprintf "'st_format 'xfst_val ['p_port]"
+.Re
+xfst_val
+.Se
+The UNIX formatted output function printf is called with arguments st_format
+and xfst_val.
+If xfst_val is a symbol then its print name is passed to printf.
+The format string may contain characters which are just printed literally
+and it may contain special formatting commands preceded by a percent
+sign.
+The complete set of formatting characters is described in the UNIX manual.
+Some useful ones are %d for printing a fixnum in decimal, %f or %e for printing
+a flonum, and %s for printing a character string (or print name of a symbol).
+.Ex
+\fI(cprintf "Pi equals %f" 3.14159)\fP prints `Pi equals 3.14159'
+.Lf drain "['p_port]"
+.Re
+nil
+.Se
+If this is an output port then
+the characters in the output buffer are all sent to the device.
+If this is an input port then all pending characters are flushed.
+The default port for this function is the default output port.
+.Lf fasl "'st_name ['st_mapf ['g_warn]]"
+.Wh
+st_mapf and g_warn default to nil.
+.Re
+t if the function succeeded, nil otherwise.
+.Se
+this function is designed to load in an object file generated by
+the lisp compiler Liszt.
+File names for object files usually end in `.o', so 
+.i fasl
+will append  `.o' to st_name (if it is not already present).
+If st_mapf is non nil, then it is the name of the map file to 
+create.
+.i Fasl 
+writes in the map file the names and addresses of the functions
+it loads and defines.
+Normally the map file is created (i.e. truncated if it 
+exists), but if \fI(sstatus\ appendmap\ t)\fP is done then the map file
+will be appended.
+If g_warn is non nil and if  a function is loaded from  the file which
+is already defined, then a warning message will be printed.
+.Lf ffasl "'st_file 'st_entry 'st_funcname ['st_discipline]"
+.Re
+the binary object created.
+.Se
+the fortran object file st_file is loaded into the lisp system.
+St_entry should be an entry point in the file just loaded. 
+A binary object will be created and its entry field will be set to point 
+to st_entry.
+The discipline field of the binary will be set to st_discipline or
+"subroutine" by default.
+After st_file is loaded, the standard fortran libraries will be
+searched to resolve external references.
+.No
+in F77 on Unix, the entry point for the fortran function foo
+is named `_foo_'.
+.Lf flatc "'g_form ['x_max]"
+.Re
+the number of characters required to print g_form using \fIpatom\fP.
+If x_max is given, and the \fIflatc\fP determines that it will return a value
+greater than x_max, then it gives up and returns the current value it
+has computed.
+This is useful if you just want to see if an expression is larger than
+a certain size.
+.Lf flatsize "'g_form ['x_max]"
+.Re
+the number of characters required to print g_form using \fIprint\fP.
+The meaning of x_max is the same as for flatc.
+.No
+Currently this just 
+.i explode 's
+g_form and checks its length.
+.Lf fseek "'p_port 'x_offset 'x_flag"
+.Re
+the position in the file after the function is performed.
+.Se
+this function position the read/write pointer before a certain byte
+in the file.
+If x_flag is 0 then the pointer is set to x_offset bytes from the 
+beginning of the file.
+If x_flag is 1 then the pointer is set to x_offset bytes from the
+current location in the file.
+If x_flag is 2 then the pointer is set to x_offset bytes from the 
+end of the file (the bytes between the end of the file and 
+the new position will be filled with zeroes).
+.Lf infile "'s_filename"
+.Re
+a port ready to read s_filename.
+.Se
+this tries to open s_filename and if it cannot or if there are no
+ports available it gives an error message.
+.No
+to allow your program to continue on a file not found error you can
+use something like:
+.br
+\fI(cond ((null (setq myport (car (errset (infile name) nil))))
+.br      
+\ \ \ \ \ \ \ \ \ \ \ \ (patom '"couldn't open the file")))\fP
+.br
+which will set myport to the port to read from if the file exists
+or will print a message if it couldn't open it and also set myport to nil.
+.Lf load "'s_filename ['st_map ['g_warn]]"
+.Re
+t
+.No
+The function of 
+.i load
+has changed since previous releases of 
+.Fr 
+and the following description should be read carefully.
+.Se
+.i load 
+now serves the function of both
+.i fasl
+and the old 
+.i load .
+.i Load
+will search a user defined search path for a lisp source or object file
+with the filename s_filename (with the extension .l or .o added as
+appropriate).
+The search path which
+.i load
+uses is the value of \fI(status\ load-search-path)\fP.
+The default is (|.|\ /usr/lib/lisp) which means look in the current
+directory first and then /usr/lib/lisp.
+The file which 
+.i load
+looks for depends on the last two characters of s_filename.
+If s_filename ends with ".l" then 
+.i load 
+will only look for a file name
+s_filename and will assume that this is a
+.Fr
+source file.
+If s_filename ends with ".o" then 
+.i load
+will only look for a file named s_filename and will assume that this is
+a 
+.Fr 
+object file to be 
+.i fasl ed
+in.
+Otherwise, 
+.i load
+will first look for s_filename.o, then s_filename.l and finally
+s_filename itself.
+If it finds s_filename.o it will assume that this is an object file,
+otherwise it will assume that it is a source file.
+An object file is loaded using
+.i fasl
+and a source file is loaded by reading and evaluating each form in the
+file.
+The optional arguments st_map and g_warn are passed to 
+.i fasl
+should 
+.i fasl
+be called.
+.No
+\fIload\fP requires a port to open the file s_filename.
+It then lambda binds the symbol piport to this port and reads and
+evaluates the forms.
+.Lf makereadtable "['s_flag]"
+.Wh
+if s_flag is not present it is assumed to be nil.
+.Re
+a readtable equal to the original readtable if s_flag is non nil, or else
+equal to the current readtable.
+See chapter XX for a description of readtables and their uses.
+.Lf nwritn "['p_port]"
+.Re
+the number of characters in the buffer
+of the given port but not yet written out to the file or device.
+The buffer is flushed 
+automatically after the buffer (of 512 characters) is filled
+or when 
+.i terpr
+is called.
+.Lf outfile "'s_filename"
+.Re
+a port or nil
+.Se
+this opens a port to write s_filename.
+The file opened is truncated by the \fIoutfile\fP if it existed beforehand.
+If there are no free ports, outfile returns nil.
+.\".pg
+.Lf patom "'g_exp ['p_port]"
+.Re
+g_exp
+.Se
+g_exp is printed to the given port or the default port.
+If g_exp is a symbol then the print name is printed without
+any escape characters around special characters in the print name.
+If g_exp is a list then \fIpatom\fP has the same effect as \fIprint\fP.
+.Lf pntlen "'xfs_arg"
+.Wh
+xfs_arg is a fixnum, flonum or symbol.
+.Re
+the number of characters needed to print  xfs_arg.
+.Lf portp "'g_arg"
+.Re
+t iff g_arg is a port.
+.Lf pp "[l_option] s_name1 ..."
+.Re
+t
+.Se
+If s_name\fIi\fP has a function binding, it is pretty printed,
+otherwise if s_name\fIi\fP has a value then that is pretty printed.
+Normally the output of the pretty printer goes to the standard
+output port poport.
+The options allow you to redirect it.
+The option \fI(F\ filename)\fP causes output to go to the file
+filename.
+The option \fI(P\ portname)\fP causes output to go to the port portname
+which should have been opened previously.
+.Lf princ "'g_arg ['p_port]"
+.Eq
+patom.
+.Lf print "'g_arg ['p_port]"
+.Re
+nil
+.Se
+prints g_arg on the port p_port or the default port.
+.Lf probef "'st_file"
+.Re
+t iff the file st_file exists.
+.No
+Just because it exists doesn't mean you can read it.
+.Lf ratom  "['p_port ['g_eof]]"
+.Re
+the next atom read from the given or default port.
+On end of file, g_eof (default nil) is returned.
+.Lf read "['p_port ['g_eof]]"
+.Re
+the next lisp expression read from the given or default port.
+On end of file, g_eof (default nil) is returned.
+.Lf readc "['p_port ['g_eof]]"
+.Re
+the next character read from the given or default port.
+On end of file, g_eof (default nil) is returned.
+.Lf readlist "'l_arg"
+.Re
+the lisp expression read from the list of characters in l_arg.
+.Lf resetio
+.Re
+nil
+.Se
+all ports except the standard input, output and error
+are closed.
+.Lf setsyntax "'s_symbol 'sx_code ['ls_func]"
+.Re
+t
+.Se
+this sets the code for s_symbol to sx_code in the current readtable.
+If sx_code is 
+.i macro
+or 
+.i splicing
+then ls_func is the associated function.
+See section \(sc7 on the reader for more details.
+.Lf terpr "['p_port]"
+.Re
+nil
+.Se
+a terminate line  character sequence
+is sent to the given port or the default port.
+This will also flush the buffer.
+.Lf terpri "['p_port]"
+.Eq
+terpr.
+.Lf tyi "['p_port]"
+.Re
+the fixnum representation of the next character read.
+On end of file, -1 is returned.
+.Lf tyipeek "['p_port]"
+.Re
+the fixnum representation of the next character to be read.
+.No
+This does not actually read the character, it just peeks at it.
+.Lf tyo "'x_char ['p_port]"
+.Re
+x_char.
+.Se
+the fixnum representation of a character, x_code, is printed as a
+character on the given output port or the default output port.
+.Lf zapline 
+.Re
+nil
+.Se
+all characters up to and including the line termination character
+are read and discarded from the last port used
+for input.
+.No
+this is used as the macro function for the semicolon character when
+it acts as a comment character.
diff --git a/usr/doc/lisp/ch6.n b/usr/doc/lisp/ch6.n
new file mode 100644 (file)
index 0000000..a3005c3
--- /dev/null
@@ -0,0 +1,461 @@
+.Lc System\ Functions 6
+This chapter describes the functions which one uses to interact
+with 
+.Fr
+running in the UNIX
+environment.
+.Lf allocate "'s_type 'x_pages"
+.Wh
+s_type is one of the 
+.Fr
+data types described in \(sc1.3.
+.Re
+x_pages.
+.Se
+.Fr
+attempts to allocate x_pages of type s_type.
+It allocates pages one at a time so that if an error occurs
+this means that all free storage has been allocated.
+The storage that is allocated is not given to the caller, instead it is 
+added to the free storage list of s_type.
+The functions
+.i segment
+and 
+.i small-segment 
+allocate blocks  of storage and return it to the caller.
+.Lf argv "'x_argnumb"
+.Re
+a symbol whose pname is the x_argnumb\fIth\fP argument (starting at 0)
+on the command
+line which invoked the current lisp.
+.No
+if x_argnumb is less that zero, a fixnum whose value is the number of arguments
+on the command line is returned.
+\fI(argv\ 0)\fP returns the name of the lisp you are running.
+.Lf baktrace 
+.Re
+nil
+.Se
+the lisp runtime stack is examined and the name of (most) of the functions
+currently in execution are printed, most active first.
+.No
+this will occasionally miss the names of compiled lisp functions due to
+incomplete information on the stack.
+If you are tracing compiled code, then \fIbaktrace\fP won't be able
+to interpret the stack unless 
+.i (sstatus\ translink\ nil)
+was done.
+See the function 
+.i showstack 
+for another way of printing the lisp runtime
+stack.
+.Lf boundp "'s_name"
+.Re
+nil  if s_name is unbound, that is it has never be given a value.
+If x_name has the value g_val, then (nil\ .\ g_val) is returned.
+.\".pg
+.Lf chdir "'s_path"
+.Re
+t iff the system call succeeds.
+.Se
+the current directory set to s_path. 
+Among other things, this will affect the default location
+where the input/output functions look for and create files.
+.No
+\fIchdir\fP follows the standard UNIX conventions, if s_path does not begin
+with a slash, the default path is changed to the current path with
+s_path appended.
+.Lf dumplisp "s_name"
+.Re
+nil
+.Se
+the current lisp is dumped to the disk with the file name s_name.
+When s_name is executed, you will be in a lisp in the
+same state as when the dumplisp was done.
+.No
+dumplisp will fail if  one tries to 
+write over the current running file. 
+UNIX does not allow you to modify the file you are running.
+.Lf eval-when "l_time g_exp1 ..."
+.Se
+l_time may contain any combination of the symbols
+.i load ,
+.i eval ,
+and
+.i compile .
+The effects of load and compile will is discussed in the section on the
+compiler.
+If eval is present however, this simply means that the expressions g_exp1
+and so on are evaluated from left to right.
+If eval is not present, the forms are not evaluated.
+.Lf exit "['x_code]"
+.Re
+nothing (it never returns).
+.Se
+the lisp system dies with exit code x_code or 0 if x_code is not
+specified.
+.Lf fake "'x_addr"
+.Re
+the lisp object at address x_addr.
+.No
+This is intended to be used by people debugging the lisp system.
+.\".pg
+.Lf gc
+.Re
+nil
+.Se
+this causes a garbage collection.
+.No
+garbage collection occurs automatically whenever internal free lists
+are exhausted.
+.Lf gcafter "s_type"
+.Wh
+s_type is one of the 
+.Fr
+data types listed in \(sc1.3.
+.No
+this function is called by the garbage collector
+after a garbage collection which was caused by running out of 
+data type s_type.
+This function should determine if more space need be allocated
+and if so should allocate it.
+There is a default gcafter function but users who want control over
+space allocation can define their own -- but note that it must be
+an nlambda.
+.Lf getenv "'s_name"
+.Re
+a symbol whose pname is the value of s_name in the current 
+UNIX environment.
+If s_name doesn't exist in the current environment, a symbol with a null pname
+is returned.
+.Lf hashtabstat
+.Re
+a list of fixnums representing the number of symbols in each bucket of
+the oblist.
+.No
+the oblist is stored a hash table of buckets.
+Ideally there would be the same number of symbols in each bucket.
+.Lf include "s_filename"
+.Re
+nil
+.Se
+The given filename is 
+.i load ed
+into the lisp.
+.No
+this is similar to load except the argument is not evaluated.
+Include means something special to the compiler.
+.Lf includef "'s_filename"
+.Re
+nil
+.Se
+this is the same as 
+.i include
+except the argument is evaluated.
+.Lf maknum "'g_arg"
+.Re
+the address of its argument converted into a fixnum.
+.Lf opval "'s_arg ['g_newval]"
+.Re
+the value associated with s_arg before the call.
+.Se
+If g_newval is specified, the value associated with s_arg is changed to
+g_newval.
+.No
+\fIopval\fP keeps track of storage allocation. If s_arg is one of the data types
+then \fIopval\fP will return a list of three fixnums representing the number of
+items of that type in use, the number of pages allocated and the number
+of items of that type per page.  
+You should never try to change the value \fIopval\fP associates
+with a data type using
+\fIopval\fP.
+.br
+If s_arg is 
+.i pagelimit
+then 
+.i opval 
+will return (and set if g_newval is given)
+the maximum amount of lisp data pages
+it will allocate.
+This limit should remain small unless you know your program requires 
+lots of space as this limit will catch programs in infinite loops which
+gobble up memory.
+.Lf process "s_pgrm [s_frompipe s_topipe]"
+.Re
+if the optional arguments are
+not present a fixnum which is the exit code when s_prgm dies.
+If the optional arguments are present, it returns a fixnum which
+is the process id of the child.
+.Se
+If s_frompipe and s_topipe are given, they are bound to 
+ports which are pipes which
+direct characters from 
+.Fr
+to the new process
+and to
+.Fr
+from the new process respectively.
+this forks a process named s_prgm and waits for it to die iff there
+are no pipe arguments given.
+.Lf ptime 
+.Re
+a list of two elements, the first is the amount of processor time used
+by the lisp system so far, the 
+second is the amount of time used by the garbage collector so far.
+.No
+the first number includes the second number.
+The amount of time used by garbage collection is not recorded
+until the first call to ptime.
+This is done to prevent overhead when the user is not interested
+garbage collection times.
+.Lf reset
+.Se
+the lisp runtime stack is cleared and the system restarts at the top level 
+by executing a \fI(funcall\ top-level\ nil)\fP.
+.Lf retbrk "['x_level]
+.Wh
+x_level is a small integer of either sign.
+.Se
+The default error handler keeps a notion of the current level
+of the error caught.  If x_level is negative, control is thrown
+to this default error handler whose level is that many less than
+the present, or to \fItop-level\fP if there aren't enough.
+If x_level is non-negative, control is passed to the handler at
+that level.  If x_level is not present, the value -1 is taken by
+default.
+.Lf segment "'s_type 'x_size"
+.Wh
+s_type is one of the data types given in \(sc1.3
+.Re
+a segment of contiguous lispvals of type s_type.
+.No
+In reality, 
+.i segment 
+returns a new data cell of type s_type and allocates
+space for x_size \- 1 more s_type's beyond the one returned.
+.i Segment 
+always allocates new space and does so in 512 byte chunks.
+If you ask for 2 fixnums, segment will actually allocate 128 of them
+thus wasting 126 fixnums.
+The function
+.i small-segment
+is a smarter space allocator and should be used whenever possible.
+.Lf shell
+.Re
+the exit code of the shell when it dies.
+.Se
+this forks a new shell and returns when the shell dies.
+.Lf showstack
+.Re
+nil
+.Se
+all forms currently in evaluation are printed, beginning with the most recent.
+For compiled code the most that 
+showstack will show is the function name and it may not show all of them.
+.Lf signal "'x_signum 's_name"
+.Re
+nil if no previous call to signal has been made, or the previously
+installed s_name.
+.Se
+this declares that the function named s_name 
+will handle the signal number x_signum.
+If s_name is nil, the signal is ignored.  Presently only
+four UNIX signals are caught, they and their numbers are:
+Interrupt(2), Floating exception(8), Alarm(14), and
+Hang-up(1).
+.Lf sizeof "'g_arg"
+.Re
+the number of bytes required to store one object of type g_arg, encoded
+as a fixnum.
+.Lf small-segment "'s_type 'x_cells"
+.Wh
+s_type is one of fixnum, flonum and value.
+.Re
+a segment of x_cells data objects of type s_type.
+.Se
+This may call
+.i segment
+to allocate new space or it may be able to fill the request on a page
+already allocated.
+The value returned by 
+.i small-segment 
+is usually stored in the data subpart
+of an array object.
+.Lf sstatus "g_type g_val"
+.Re
+g_val
+.Se
+If g_type is not one of the special sstatus codes described in the 
+next few pages
+this simply sets g_val as the value of status 
+type g_type in the system status property list.
+.Lf sstatus\ appendmap "g_val"
+.Re
+g_val
+.Se
+If g_val is non nil then when 
+.i fasl
+is told to create a load map, it will append to the file name given in
+the 
+.i fasl
+command, rather than creating a new map file.
+.Lf sstatus\ automatic-reset "g_val"
+.Re
+g_val
+.Se
+If g_val is non nil then when an error occurs which no one wants to 
+handle, a 
+.i reset
+will be done instead of entering a primitive internal break loop.
+.Lf sstatus\ chainatom "g_val"
+.Re
+g_val
+.Se
+If g_val is non nil and a 
+.i car
+or 
+.i cdr
+of a symbol is done, then nil will be returned instead of an error
+being signaled.
+This only affects the interpreter, not the compiler.
+.Lf sstatus\ dumpcore "g_val"
+.Re
+g_val
+.Se
+If g_val is nil, 
+.Fr 
+tells UNIX that a segmentation violation or 
+bus error should cause a core dump.
+If g_val is non nil then 
+.Fr
+will catch those errors and print a message advising the user to reset.
+.No
+The default value for this flag is nil, and only those knowledgeable of
+the innards of the lisp system should ever set this flag non nil.
+.Lf sstatus\ dumpmode "x_val"
+.Re
+x_val
+.Se
+All subsequent 
+.i dumplisp 's
+will be done in mode x_val.
+x_val may be either 413 or 410 (decimal).
+.No
+the advantage of mode 413 is that the dumped Lisp can be demand paged in when
+first started, which will make it start faster and disrupt other users less.
+.Lf sstatus\ feature "g_val"
+.Re
+g_val
+.Se
+g_val is added to the \fI(status\ features)\fP list, 
+.Lf sstatus\ ignoreeof "g_val"
+.Re
+g_val
+.Se
+If g_val is non nil then
+if a end of file (CNTL D on UNIX) is typed to the top level interpreter
+it will be ignored rather then cause the lisp system to exit.
+If the the standard input is  a file or pipe then this has no effect,
+a EOF will always cause lisp to exit.
+.Lf sstatus\ nofeature "g_val"
+.Re
+g_val
+.Se
+g_val is removed from the status features list if it was present.
+.Lf sstatus\ translink "g_val"
+.Re
+g_val
+.Se
+If g_val is  nil then all transfer tables are cleared and further calls
+through the transfer table will not cause the fast links to be set up.
+If g_val is the symbol 
+.i on
+then all possible transfer table entries will be linked and the flag
+will be set to cause fast links to be set up dynamically.
+Otherwise all that is done is to set the flag to cause fast links
+to be set up dynamically.
+.No
+For a discussion of transfer tables, see the Section on the compiler.
+.Lf sstatus\ uctolc "g_val"
+.Re
+g_val
+.Se
+If g_val is not nil then all unescaped capital letters 
+in symbols read by the reader will be converted to lower case.
+.No
+This allows 
+.Fr
+to be compatible with single case lisp
+systems (e.g. \s-2MAC\s0lisp).
+.Lf status "g_code"
+.Re
+the value associated with the status code g_code
+if g_code is not one of the special cases given below
+.Lf status\ ctime 
+.Re
+a symbol whose print name is the current time and date.
+.Ex
+\fI(status ctime)\fP ==> |Sun Jun 29 16:51:26 1980|
+.Lf status\ feature "g_val"
+.Re
+t iff g_val is in the status features list.
+.Lf status\ features 
+.Re
+the value of the features code, which is a list of features which
+are present in this system.
+You add to this list with \fI(sstatus\ feature\ 'g_val)\fP
+and test if feature g_feat is present with \fI(status\ feature\ 'g_feat)\fP.
+.Lf status\ isatty 
+.Re
+t iff the standard input is a terminal.
+.Lf status\ localtime
+.Re
+a list of fixnums representing the current time as described in the 
+UNIX manual under LOCALTIME(3).
+.Ex
+\fI(status localtime)\fP ==>  (20 51 16 29 5 80 0 1 nil)
+.Lf status\ syntax "s_char"
+.Re
+a fixnum which is the syntax code associated with the character s_char
+in the current readtable.
+.No
+You cannot set the syntax code with with \fI(sstatus\ syntax\ ch)\fP, 
+you must use
+.i setsyntax.
+.Lf status\ undeffunc
+.Re
+a list of all functions which transfer table entries point to but which
+are not defined at this point.
+.No
+Some of the undefined functions listed could be arrays which have yet
+to be created.
+.Lf status\ version
+.Re
+a string which is the current lisp version name.
+.Ex
+\fI(status version)\fP ==> "Franz Lisp, Opus 33b"
+.Lf syscall "'x_index ['xst_arg1 ...]"
+.Re
+the result of issuing the UNIX system call number x_index with arguments
+xst_arg\fIi\fP.
+.No
+The UNIX system calls are described in section 2 of the UNIX manual. 
+If xst_arg\fIi\fP is a fixnum, then 
+its value is passed as an argument, if it is a symbol then 
+its pname is passed and finally if it is a string then the string itself
+is passed as an argument.
+Some useful syscalls are:
+.br
+\fI(syscall\ 20)\fP returns process id.
+.br
+\fI(syscall\ 13)\fP returns the number of seconds since Jan 1, 1970.
+.br
+\fI(syscall\ 10\ 'foo)\fP will unlink (delete) the file foo.
+.Lf top-level
+.Re
+nothing (it never returns)
+.No
+This function is the top-level read-eval-print loop.
+It never returns any value.
+Its main utility is that if you redefine it, and do a (reset) then the
+redefined (top-level) is then invoked.
diff --git a/usr/doc/lisp/ch61.n b/usr/doc/lisp/ch61.n
new file mode 100644 (file)
index 0000000..4e01832
--- /dev/null
@@ -0,0 +1,5 @@
+.Lc "Local functions" 61
+.pp
+This chapter describes functions which we found 
+useful at Berkeley.
+Some of these functions may be useful at other sites
diff --git a/usr/doc/lisp/ch7.n b/usr/doc/lisp/ch7.n
new file mode 100644 (file)
index 0000000..db2be39
--- /dev/null
@@ -0,0 +1,184 @@
+.ds e \s-2\e\s0
+.Lc The\ Reader 7
+.pp
+The 
+.Fr
+reader is controlled by a 
+.i readtable.
+A readtable is an array of fixnums, one fixnum for each of the 128
+ascii characters. 
+The fixnums tell the reader what the properties of the each character
+are.
+The initial readtable is described below.
+The user may create new readtables using the
+.i makereadtable
+function.
+The current readtable is the value of the lisp
+symbol 
+.i readtable 
+which, like any lisp symbol, may be 
+lambda bound to allow the user to change the 
+reader syntax very quickly.
+The values which may appear in the readtable are:
+.TS
+center box;
+c | c | c | c
+ab | n | c |  c .
+type   value (decimal) meaning default
+=
+vnum   0       digit   0-9
+_
+vsign  1       plus or minus   + -
+_
+vchar  2       alphabetic character    T{
+A-Z a-z ^H ! $ % & * , / : ; < = > ? @ ^ _ ` { | } ~  
+T}
+_
+vsca   66      single char atom        none
+_
+vlpara 195     left paren      (
+_
+vrpara 196     right paren     )
+_
+vperd  197     period  .
+_
+vlbrkt 198     left bracket    [
+_
+vrbrkt 199     right bracket   ]
+_
+veof   200     end of file     rubout
+_
+vsq    201     single quote    \'
+_
+vdq    138     T{
+double quote, all characters between matching double
+quotes are escaped (i.e. treated as \fBvchar\fP)
+T}     |
+_
+vsd    137     T{
+string delimiter, all characters between matching
+delimiters are \fIconcat\fPed into an object of type string
+T}     "
+_
+verr   203     illegal character       T{
+null ^A-^I ^N-^Z ^\*e-^_
+T}
+_
+vsep   204     separator       ^I-^M esc space
+_
+vspl   205     splicing macro character        none
+_
+vmac   206     macro character none
+_
+vesc   143     escape character        \*e
+.TE
+.pp
+The names in the type column are not known to Franz, we are just using them
+to tag the various classes.  You must use the value in the second column.
+The default column shows the syntax values of characters in the raw lisp,
+i.e.,  the lisp which contains only machine language functions.  The lisp
+which you get when you give the lisp command to the shell is an augmented
+version of the raw lisp, with additional lisp coded functions and changes
+in the readtable.
+The syntax changes in the lisp may differ from installation to installation
+but will probably include making one character be a comment character.
+In the lisp at Berkeley, semicolon is the comment character.  This
+was done  by declaring it to be a splicing macro character which
+invokes the function 
+.i zapline 
+when seen.
+.pp
+To read the syntax of a character, you may use 
+(\fBstatus\ syntax\fP\ s_char).
+.pp
+To change the syntax bits of a character, use the 
+.i setsyntax 
+function.
+There are two forms, one when you just want to change the syntax bits,
+and the other when you want to define a character macro.
+The first form is:
+.sp 1v
+.tl ''(\fBsetsyntax\fP  \fI\'s_c  \'x_value\fP)''
+.sp 1v
+Here 
+.i s_c 
+may be the character itself or it may be the fixnum representation
+of that character.
+.i x_value 
+is one of the values given above in the second column.
+You should be careful when you change the syntax of a character
+as the change lasts until you explicitly change it back or until you
+begin with a new lisp.
+Also, some syntax changes are silly and will probably cause system
+errors (e.g. changing the syntax of an alphabetic character to be
+a 
+.b vnum
+).
+The only syntax values you will probably ever use are:
+.b vdq 
+and 
+.b vesc.
+You should not change the syntax to 
+.b vspl 
+or 
+.b vmac 
+using the above form,
+instead it will be done automatically when you use the form below.
+.pp
+To declare a character macro use:
+.sp 1v
+.tl ''(\fBsetsyntax\fP  \fI\'s_c  \'s_type  \'s_fcn\fP)''
+.sp 1v
+Where 
+.i s_c
+is again either the character itself or its fixnum equivalent,
+type is 
+.i splicing 
+or 
+.i macro,
+and 
+.i s_fcn 
+is either the name of
+a function expecting no arguments or is a lambda expression.
+The result of the setsyntax function is twofold: the readtable value
+for that character is changed to 
+.b vspl 
+or 
+.b vmac, 
+and the function
+is put on the property list of the character under the indicator "macro".
+The difference between a splicing macro and a macro is this: the value
+returned by a splicing macro is 
+.i nconc ed
+to what has been read so far
+(i.e. (\fBnconc\fP\ sofar\ justreturned)),
+while the value returned by a macro is added to what has been read,
+(i.e (\fBnconc\fP\ sofar\ (\fBlist\fP justread)).
+Thus if a splicing macro returns nil, then it isn't seen since
+(\fBnconc\fP any nil)\ ==>\ any.
+In particular, splicing macros are useful for conditional loading of 
+lisp expressions.
+.pp
+.Fr 
+treats left and right square brackets in a special way when
+building lists.
+A left bracket is just like a left parenthesis, and a right bracket
+matches a left bracket or all open left parentheses, whichever comes
+first.
+.pp
+When building atoms, a character with the syntax code 
+.b vesc
+will cause the next character to be read in and treated as a 
+.b vchar.
+To escape an entire string of characters, you surround them with matching
+characters
+having the 
+.b vdq
+syntax code.
+To escape the
+.b vdq
+character within the string of characters you use any character of class
+.b vesc.
+The standard
+UNIX
+escape character, backslash (`\*e'), is in this class by default.
diff --git a/usr/doc/lisp/ch8.n b/usr/doc/lisp/ch8.n
new file mode 100644 (file)
index 0000000..ce9c714
--- /dev/null
@@ -0,0 +1,567 @@
+.Lc Functions\ and\ Macros 8
+.sh 2 valid\ function\ objects 8
+.pp
+There are many different objects which can occupy the function field of 
+a symbol object.
+The following table shows all of the possibilities, how to recognize them
+and where to look for documentation.
+.sp 2v
+.TS
+box center ;
+c | c | c .
+informal name  object type     documentation 
+=
+interpreted    list with \fIcar\fP     8.2
+lambda function        \fIeq\fP to lambda
+_
+interpreted    list with \fIcar\fP     8.2
+nlambda function       \fIeq\fP to nlambda
+_
+interpreted    list with \fIcar\fP     8.2
+lexpr function \fIeq\fP to lexpr
+_
+interpreted    list with \fIcar\fP     8.3
+macro  \fIeq\fP to macro
+_
+compiled       binary with discipline  8.2
+lambda or lexpr        \fIeq\fP to lambda
+function
+_
+compiled       binary with discipline  8.2
+nlambda function       \fIeq\fP to nlambda
+_
+compiled       binary with discipline  8.3
+macro  \fIeq\fP to macro
+_
+foreign        binary with discipline  8.4
+subroutine     of "subroutine"\*[\(dg\*]
+_
+foreign        binary with discipline  8.4
+function       of "function"\*[\(dg\*]
+_
+foreign        binary with discipline  8.4
+integer function       of "integer-function"\*[\(dg\*]
+_
+foreign        binary with discipline  8.4
+real function  of "real-function"\*[\(dg\*]
+_
+array  array object    9
+.TE
+.sh 2 functions
+The basic lisp function is the lambda function.
+.(f
+\*[\(dg\*]Only the first character of the string is significant (i.e "s"
+is ok for "subroutine")
+.)f
+When a lambda function is called, the actual arguments are
+evaluated from left to right and are lambda-bound to the
+formal parameters of the lambda function.
+.pp
+An nlambda function is usually used for functions which are invoked
+by the user at top level.
+Some built-in functions which evaluate their arguments in special ways are
+also nlambdas (e.g \fIcond\fP, \fIdo\fP, \fIor\fP).
+When an nlambda function is called, the list of unevaluated arguments
+is lambda bound to the single formal parameter of the nlambda function.
+.pp
+Some programmers will use an nlambda function 
+when they are not sure how many arguments
+will be passed.
+Then the first thing the nlambda function does is map \fIeval\fP over
+the list of unevaluated arguments it has been passed.
+This is usually the wrong thing to do as it won't work compiled if
+any of the arguments are local variables. 
+The solution is to use a lexpr.
+When a lexpr function is called, the arguments
+are evaluated and the number of arguments is lambda-bound to the single
+formal parameter of the lexpr function.
+The lexpr then accesses the arguments using the \fIarg\fP function.
+.pp
+When a function is compiled 
+.i special 
+declaration may be needed to 
+preserve its behavior.
+An argument is not lambda-bound to the name of
+the corresponding formal parameter 
+unless that formal parameter has been declared 
+.i special 
+(see \(sc12.3.2.2).
+Lambda and lexpr functions both compile into a binary object with
+a discipline of lambda.
+However, a compiled lexpr still acts like an interpreted lexpr.
+.sh 2 macros
+An important features of Lisp 
+is its ability to manipulate programs as data.
+As a result of this, most Lisp implementations
+have very powerful macro facilities.
+The Lisp language's macro facility
+can be used to incorporate popular features of the other
+languages into Lisp.
+For example, there are macro packages 
+which allow one to create records (ala Pascal) 
+and refer to elements of those records by the key names.\*[\(dg\*]
+.(f
+\*[\(dg\*]A record definition macro package especially suited for
+.Fr
+is in the planning stages at Berkeley.
+At this time
+the Maclisp
+.i struct 
+package can be used.
+.)f
+Another  popular use for macros is to create more readable control 
+structures which expand into 
+.i cond , 
+.i or 
+and 
+.i and .
+One such example is the If macro in the jkfmacs.l package.
+It allows you to write
+.sp 1v
+.nf
+.ft I
+(If (equal numb 0) then (print 'zero) (terpr)
+\ elseif (equal numb 1) then (print 'one) (terpr)
+\ else (print '|I give up|))
+.ft P
+.sp 1v
+which expands to 
+.sp 1v
+.ft I
+(cond 
+\ \ \ \ ((equal numb 0) (print 'zero) (terpr))
+\ \ \ \ ((equal numb 1) (print 'one) (terpr))
+\ \ \ \ (t (print '|I give up|)))
+.ft P
+.sp 1v
+.fi
+.sh 3  macro\ forms
+A macro is a function which accepts a Lisp expression as input and returns
+another Lisp expression.
+The action the macro takes is called macro expansion.
+Here is a simple example:
+.sp 1v
+.nf
+-> \fI(def first (macro (x) (cons 'car (cdr x))))\fP
+first
+-> \fI(first '(a b c))\fP
+a
+-> \fI(apply 'first '(first '(a b c)))\fP
+(car '(a b c))
+.fi
+.sp 1v
+The first input line defines a macro called 
+.i first .
+Notice that the macro has one formal parameter, \fIx\fP.  
+On the second input line, we ask the interpreter to evaluate
+\fI(first\ '(a\ b\ c))\fP.
+.i Eval 
+sees that 
+.i first
+has a function definition of type macro  so it evaluates 
+.i first 's 
+definition
+passing to 
+.i first 
+as an argument, the form 
+.i eval 
+itself
+was trying to
+evaluate, \fI(first\ '(a\ b\ c))\fP.
+The 
+.i first 
+macro chops off the car of the argument with
+.i cdr ,
+cons' a 
+.i car
+at the beginning of the list and returns \fI(car\ '(a\ b\ c))\fP.
+Now 
+.i eval 
+evaluates that, and the value is
+.i a
+which is returned as the value of \fI(first\ '(a\ b\ c))\fP.
+Thus whenever 
+.i eval
+tries to evaluate a list whose car has a macro definition
+it ends up doing (at least) two operations, one is a call to the macro
+to let it macro expand the form, and the other is the evaluation of the
+result of the macro.
+The result of the macro may be yet another call to a macro, so 
+.i eval
+may have to do even more evaluations until it can finally determine
+the  value of an expression.
+One way to see how a macro will expand is to use
+.i apply
+as shown on the third input line above.
+.sh +0 defmacro
+The macro 
+.i defmacro
+makes it easier to define macros because it allows you to name the arguments
+to the macro call.
+For example, suppose we find ourselves often writing code like
+\fI(setq\ stack\ (cons\ newelt\ stack)\fP.
+We could define a macro named \fIpush\fP to do this for us.
+One way to define it is:
+.nf
+.sp 1v
+-> \fI(def push (macro (x) (list 'setq (caddr x) (list 'cons (cadr x) (caddr x)))))\fP
+push
+.fi
+.sp 1v
+then \fI(push\ newelt\ stack)\fP will expand to the form mentioned above.
+The same macro written using defmacro would be:
+.nf
+.sp 1v
+-> \fI(defmacro push (value stack) (list 'setq stack (list 'cons value stack))\fP
+push
+.fi
+.sp 1v
+Defmacro allows you to name the arguments of the macro call, and makes the 
+macro definition look more like a function definition.
+.sh +0 the\ backquote\ character\ macro
+The default syntax for 
+.Fr
+has only three characters with associated character macros.
+One is semicolon for comments.
+The other two are backquote and comma which are used by the backquote character
+macro.
+The backquote macro is used to create lists where many of the elements are
+fixed (quoted). 
+This makes it very useful for creating macro definitions.
+In the simplest case, a backquote acts just like a single quote:
+.sp 1v
+.nf
+->\fI`(a b c d e)\fP
+(a b c d e)
+.fi
+.sp 1v
+If a comma precedes an element of a backquoted list then that element is
+evaluated and its value is put in the list.
+.sp 1v
+.nf
+->\fI(setq d '(x y z))\fP
+(x y z)
+->\fI`(a b c ,d e)\fP
+(a b c (x y z) e)
+.fi
+.sp 1v
+If a comma followed by an at sign precedes an element in a backquoted list,
+then that element is evaluated and spliced into the list with 
+.i append .
+.nf
+.sp 1v
+->\fI`(a b c ,@d e)\fP
+(a b c x y z e)
+.sp 1v
+.fi
+Once a list begins with a backquote, the commas may appear anywhere in the
+list as this example shows:
+.nf
+.sp 1v
+->\fI`(a b (c d ,(cdr d)) (e f (g h ,@(cddr d) ,@d)))\fP
+(a b (c d (y z)) (e f (g h z x y z)))
+.sp 1v
+.fi
+It is also possible and sometimes even useful to use the 
+backquote macro within itself.
+As a final demonstration of the backquote macro, we shall define the 
+first and push macros using all the power at our disposal, defmacro
+and the backquote macro.
+.sp 1v
+.nf
+->\fI(defmacro first (list) `(car ,list))\fP
+first
+->\fI(defmacro push (value stack) `(setq ,stack (cons ,value ,stack)))\fP
+stack
+.fi
+.sh 2 foreign\ subroutines\ and\ functions
+.Fr 
+has the ability to dynamically load object files produced by other compilers
+and then call functions defined in those files.
+These functions are called 
+.i foreign
+functions.
+There are four types of foreign functions and they are characterized by
+the type of result they return:
+.ip subroutine  
+This does not return anything. 
+The lisp system
+always returns t after calling a subroutine.
+.ip function
+This returns whatever the function returns.
+This must be a valid lisp object or it may cause the lisp system to fail.
+.ip integer-function
+This returns an integer which the lisp system makes into a fixnum and returns.
+.ip real-function
+This returns a double precision real number which the lisp
+system makes into a flonum and returns.
+.lp
+A foreign function is accessed through a binary object just like a 
+compiled lisp function.
+The difference is that the discipline field for a binary object
+of a foreign function is a string 
+whose first character is s for a subroutine,
+f for a function, i for an integer-function and r for a real-function.
+Two functions are provided for the setting up of foreign functions.
+.i Cfasl
+loads an object file into the lisp system and sets up one foreign
+function binary object.
+If there is more than one function in an object file, 
+.i getaddress
+can be used to set up further foreign function objects.
+.pp
+Foreign  functions are called just like other functions, e.g 
+\fI(funname\ arg1\ arg2)\fP.
+When one is called, the arguments are evaluated and then examined.
+List, hunk and symbol arguments are passed unchanged to 
+the foreign function.
+Fixnum and flonum arguments are copied into a temporary location and
+a pointer to the value is passed (this is because Fortran uses call
+by reference and it is dangerous to modify the contents of a fixnum
+or flonum which something else might point to).
+If an array object is an argument the data field of the array  object is
+passed to the foreign function (this is the easiest way to send large
+amounts of data to and receive large amounts of data from a foreign
+function).
+If a binary object is an argument, the entry field of that object is
+passed to the foreign function (the entry field is the address of a function,
+so this amounts to passing a function as an argument).
+.pp
+The method a foreign function uses to access the arguments provided 
+by lisp is dependent on the language of the foreign function.
+The following scripts demonstrate how how lisp can interact with three
+languages: C, Pascal and Fortran.
+C and Pascal have pointer types and the first script shows how to use
+pointers to extract information from lisp objects.
+There are two functions defined for each language.
+The first (cfoo is C, pfoo in Pascal) is given four arguments, a 
+fixnum, a flonum-block array, a hunk of at least two
+fixnums and a list of 
+at least two fixnums.
+To demonstrate that the values were passed, each ?foo function prints
+its arguments (or parts of them).
+The ?foo function then modifies the second element of 
+the flonum-block array and returns a 3 to lisp.
+The second function (cmemq in C, pmemq in Pascal) acts just like the
+lisp
+.i memq
+function (except it won't work for fixnums whereas the lisp 
+.i memq
+will work for small fixnums).
+In the script, typed input is in 
+.b bold ,
+computer output is in roman
+and comments are in
+.i italic.
+.nf
+.sp 2v
+\fIThese are the C coded functions  \fP
+% \fBcat ch8auxc.c\fP
+/* demonstration of c coded foreign integer-function */
+
+/* the following will be used to extract fixnums out of a list of fixnums */
+struct listoffixnumscell
+{    struct listoffixnumscell *cdr;
+     int *fixnum;
+};
+
+struct listcell
+{      struct listcell *cdr;
+       int car;
+};
+
+cfoo(a,b,c,d)
+int *a;
+double b[];
+int *c[];
+struct listoffixnumscell *d;
+{
+    printf("a: %d, b[0]: %f, b[1]: %f\n", *a, b[0], b[1]);
+    printf(" c (first): %d   c (second): %d\n",
+              *c[0],*c[1]);
+    printf(" ( %d %d ... )\n ", *(d->fixnum), *(d->cdr->fixnum));
+    b[1] = 3.1415926;
+    return(3);
+}
+
+struct listcell *
+cmemq(element,list)
+int element;
+struct listcell *list;
+{   
+   for( ; list && element != list->car ;  list = list->cdr);
+   return(list);
+}
+.sp 2v
+\fIThese are the Pascal coded functions \fP
+% \fBcat ch8auxp.p\fP
+type   pinteger = ^integer;
+       realarray = array[0..10] of real;
+       pintarray = array[0..10] of pinteger;
+       listoffixnumscell = record  
+                               cdr  : ^listoffixnumscell;
+                               fixnum : pinteger;
+                           end;
+       plistcell = ^listcell;
+       listcell = record
+                     cdr : plistcell;
+                     car : integer;
+                  end;
+
+function pfoo ( var a : integer ; 
+               var b : realarray;
+               var c : pintarray;
+               var d : listoffixnumscell) : integer;
+begin
+   writeln(' a:',a, ' b[0]:', b[0], ' b[1]:', b[1]);
+   writeln(' c (first):', c[0]^,' c (second):', c[1]^);
+   writeln(' ( ', d.fixnum^, d.cdr^.fixnum^, ' ...) ');
+   b[1] := 3.1415926;
+   pfoo := 3
+end ;
+
+{ the function pmemq looks for the lisp pointer given as the first argument
+  in the list pointed to by the second argument.
+  Note that we declare " a : integer " instead of " var a : integer " since
+  we are interested in the pointer value instead of what it points to (which
+  could be any lisp object)
+}
+function pmemq( a : integer; list : plistcell) : plistcell;
+begin
+ while (list <> nil) and (list^.car <> a) do list := list^.cdr;
+ pmemq := list;
+end ;
+.sp 2v
+\fIThe files are compiled\fP
+% \fBcc -c ch8auxc.c\fP
+1.0u 1.2s 0:15 14% 30+39k 33+20io 147pf+0w
+% \fBpc -c ch8auxp.p\fP
+3.0u 1.7s 0:37 12% 27+32k 53+32io 143pf+0w
+.sp 2v
+% \fBlisp\fP
+Franz Lisp, Opus 33b
+.ft I
+.fi
+First the files are loaded and we set up one foreign function binary.
+We have two functions in each file so we must choose one to tell cfasl about.
+The choice is arbitrary.
+.ft P
+.br 
+.nf
+->\fB (cfasl 'ch8auxc.o '_cfoo 'cfoo "integer-function")\fP
+/usr/lib/lisp/nld -N -A /usr/local/lisp -T 63000 ch8auxc.o -e _cfoo -o /tmp/Li7055.0  -lc
+#63000-"integer-function"
+->\fB (cfasl 'ch8auxp.o '_pfoo 'pfoo "integer-function" "-lpc")\fP
+/usr/lib/lisp/nld -N -A /tmp/Li7055.0 -T 63200 ch8auxp.o -e _pfoo -o /tmp/Li7055.1 -lpc -lc
+#63200-"integer-function"
+.ft I
+Here we set up the other foreign function binary objects
+.ft P
+->\fB (getaddress '_cmemq 'cmemq "function" '_pmemq 'pmemq "function")\fP
+#6306c-"function"
+.ft I
+.fi
+We want to create and initialize an array to pass to the cfoo function.
+In this case we create an unnamed array and store it in the value cell of
+testarr. 
+When we create an array to pass to the Pascal program we will used a named
+array just to demonstrate the different way that named and unnamed arrays
+are created and accessed.
+.br
+.nf
+.ft P
+->\fB (setq testarr (array nil flonum-block 2))\fP
+array[2]
+->\fB (store (funcall testarr 0) 1.234)\fP
+1.234
+->\fB (store (funcall testarr 1) 5.678)\fP
+5.678
+->\fB (cfoo 385 testarr (hunk 10 11 13 14) '(15 16 17))\fP
+a: 385, b[0]: 1.234000, b[1]: 5.678000
+ c (first): 10   c (second): 11
+ ( 15 16 ... )
+ 3
+.ft I
+.fi
+Note that cfoo has returned 3 as it should.
+It also had the side effect of changing the second value of the array to
+3.1415926  which check next.
+.br
+.nf
+.ft P
+->\fB (funcall testarr 1)\fP
+3.1415926
+.sp 2v
+.fi
+.ft I
+In preparation for calling pfoo we create an array.
+.ft P
+.nf
+->\fB (array test flonum-block 2)\fP
+array[2]
+->\fB (store (test 0) 1.234)\fP
+1.234
+->\fB (store (test 1) 5.678)\fP
+5.678
+->\fB (pfoo 385 (getd 'test) (hunk 10 11 13 14) '(15 16 17))\fP
+ a:       385 b[0]:  1.23400000000000E+00 b[1]:  5.67800000000000E+00
+ c (first):        10 c (second):        11
+ (         15        16 ...) 
+3
+->\fB (test 1)\fP
+3.1415926
+.sp 1v
+\fI Now to test out the memq's
+-> \fB(cmemq 'a '(b c a d e f))\fP
+(a d e f)
+-> \fB(pmemq 'e '(a d f g a x))\fP
+nil
+.fi
+.pp
+The Fortran example will be much shorter since in Fortran 
+you can't follow pointers
+as you can in other languages.
+The Fortran function ffoo is given three arguments: a fixnum, a 
+fixnum-block array and a flonum.
+These arguments are printed out to verify that they made it and
+then the first value of the array is modified.
+The function returns a double precision value which is converted to a flonum
+by lisp and printed.
+Note that the entry point corresponding to the Fortran function ffoo is
+_ffoo_ as opposed to the C and Pascal convention of preceding the name with
+an underscore.
+.sp 1v
+.nf
+
+% \fBcat ch8auxf.f\fP
+       double precision function ffoo(a,b,c)
+       integer a,b(10)
+       double precision c
+       print 2,a,b(1),b(2),c
+2      format(' a=',i4,', b(1)=',i5,', b(2)=',i5,' c=',f6.4)
+       b(1) = 22
+       ffoo = 1.23456
+       return
+       end
+% \fBf77 -c ch8auxf.f\fP
+ch8auxf.f:
+   ffoo:
+0.9u 1.8s 0:12 22% 20+22k 54+48io 158pf+0w
+% \fBlisp\fP
+Franz Lisp, Opus 33b
+-> \fB(cfasl 'ch8auxf.o '_ffoo_ 'ffoo "real-function" "-lF77 -lI77")\fP
+/usr/lib/lisp/nld -N -A /usr/local/lisp -T 63000 ch8auxf.o -e _ffoo_ 
+-o /tmp/Li11066.0 -lF77 -lI77 -lc
+#6307c-"real-function"
+.sp 1v
+-> \fB(array test fixnum-block 2)\fP
+array[2]
+->\fB (store (test 0) 10)\fP
+10
+-> \fB(store (test 1) 11)\fP
+11
+-> \fB(ffoo 385 (getd 'test) 5.678)\fP
+ a= 385, b(1)=   10, b(2)=   11 c=5.6780
+1.234559893608093
+-> \fB(test 0)\fP
+22
diff --git a/usr/doc/lisp/ch8aux.sh b/usr/doc/lisp/ch8aux.sh
new file mode 100644 (file)
index 0000000..3452d31
--- /dev/null
@@ -0,0 +1,6 @@
+lisp
+(cfasl 'ch8auxc.o '_cfoo 'cfoo "integer-function")
+(cfasl 'ch8auxp.o '_pfoo 'pfoo "integer-function" "-lpc")
+(getaddress '_cmemq 'cmemq "function" '_pmemq 'pmemq "function")
+(cmemq 'a '(b c a d e f))
+(pmemq 'e '(a d f g a x))
diff --git a/usr/doc/lisp/ch8aux.shout b/usr/doc/lisp/ch8aux.shout
new file mode 100644 (file)
index 0000000..c56a060
--- /dev/null
@@ -0,0 +1,115 @@
+% \fBcat ch8auxc.c\fP
+/* demonstration of c coded foreign integer-function */
+
+/* the following will be used to extract fixnums out of a list of fixnums */
+struct listoffixnumscell
+{    struct listoffixnumscell *cdr;
+     int *fixnum;
+};
+
+struct listcell
+{      struct listcell *cdr;
+       int car;
+};
+
+cfoo(a,b,c,d)
+int *a;
+double b[];
+int *c[];
+struct listoffixnumscell *d;
+{
+    printf("a: %d, b[0]: %f, b[1]: %f\n", *a, b[0], b[1]);
+    printf(" c (first): %d   c (second): %d\n",
+              *c[0],*c[1]);
+    printf(" ( %d %d ... )\n ", *(d->\fBfixnum), *(d->cdr->fixnum));\fP
+    b[1] = 3.1415926;
+    return(3);
+}
+
+struct listcell *
+cmemq(element,list)
+int element;
+struct listcell *list;
+{   
+   for( ; list && element != list->\fBcar ;  list = list->cdr);\fP
+   return(list);
+}
+% \fBcat ch8auxp.p\fP
+type   pinteger = ^integer;
+       realarray = array[0..10] of real;
+       pintarray = array[0..10] of pinteger;
+       listoffixnumscell = record  
+                               cdr  : ^listoffixnumscell;
+                               fixnum : pinteger;
+                           end;
+       plistcell = ^listcell;
+       listcell = record
+                     cdr : plistcell;
+                     car : integer;
+                  end;
+
+function pfoo ( var a : integer ; 
+               var b : realarray;
+               var c : pintarray;
+               var d : listoffixnumscell) : integer;
+begin
+   writeln(' a:',a, ' b[0]:', b[0], ' b[1]:', b[1]);
+   writeln(' c (first):', c[0]^,' c (second):', c[1]^);
+   writeln(' ( ', d.fixnum^, d.cdr^.fixnum^, ' ...) ');
+   b[1] := 3.1415926;
+   pfoo := 3
+end ;
+
+{ the function pmemq looks for the lisp pointer given as the first argument
+  in the list pointed to by the second argument.
+  Note that we declare " a : integer " instead of " var a : integer " since
+  we are interested in the pointer value instead of what it points to (which
+  could be any lisp object)
+}
+function pmemq( a : integer; list : plistcell) : plistcell;
+begin
+ while (list <> nil) and (list^.car <> a) do list := list^.cdr;
+ pmemq := list;
+end ;
+% \fBcc -c ch8auxc.c\fP
+1.0u 1.2s 0:15 14% 30+39k 33+20io 147pf+0w
+% \fBpc -c ch8auxp.p\fP
+3.0u 1.7s 0:37 12% 27+32k 53+32io 143pf+0w
+% \fBlisp\fP
+Franz Lisp, Opus 33b
+->\fB (cfasl 'ch8auxc.o '_cfoo 'cfoo "integer-function")\fP
+/usr/lib/lisp/nld -N -A /usr/local/lisp -T 63000 ch8auxc.o -e _cfoo -o /tmp/Li7055.0  -lc
+#63000-"integer-function"
+->\fB (cfasl 'ch8auxp.o '_pfoo 'pfoo "integer-function" "-lpc")\fP
+/usr/lib/lisp/nld -N -A /tmp/Li7055.0 -T 63200 ch8auxp.o -e _pfoo -o /tmp/Li7055.1 -lpc -lc
+#63200-"integer-function"
+->\fB (getaddress '_cmemq 'cmemq "function" '_pmemq 'pmemq "function")\fP
+#6306c-"function"
+->\fB (setq testarr (array nil flonum-block 2))\fP
+array[2]
+->\fB (store (funcall testarr 0) 1.234)\fP
+1.234
+->\fB (store (funcall testarr 1) 5.678)\fP
+5.678
+->\fB (cfoo 385 testarr (hunk 10 11 13 14) '(15 16 17))\fP
+a: 385, b[0]: 1.234000, b[1]: 5.678000
+ c (first): 10   c (second): 11
+ ( 15 16 ... )
+ 3
+->\fB (funcall testarr 1)\fP
+3.1415926
+->\fB (array test flonum-block 2)\fP
+array[2]
+->\fB (store (test 0) 1.234)\fP
+1.234
+->\fB (store (test 1) 5.678)\fP
+5.678
+->\fB (pfoo 385 (getd 'test) (hunk 10 11 13 14) '(15 16 17))\fP
+ a:       385 b[0]:  1.23400000000000E+00 b[1]:  5.67800000000000E+00
+ c (first):        10 c (second):        11
+ (         15        16 ...) 
+3
+->\fB (test 1)\fP
+3.1415926
+->\fB 3.5u 3.0s 1:44 6% 22+61k 262+92io 210pf+0w\fP
+%
diff --git a/usr/doc/lisp/ch8auxc.c b/usr/doc/lisp/ch8auxc.c
new file mode 100644 (file)
index 0000000..b97c2a9
--- /dev/null
@@ -0,0 +1,35 @@
+/* demonstration of c coded foreign integer-function */
+
+/* the following will be used to extract fixnums out of a list of fixnums */
+struct listoffixnumscell
+{    struct listoffixnumscell *cdr;
+     int *fixnum;
+};
+
+struct listcell
+{      struct listcell *cdr;
+       int car;
+};
+
+cfoo(a,b,c,d)
+int *a;
+double b[];
+int *c[];
+struct listoffixnumscell *d;
+{
+    printf("a: %d, b[0]: %f, b[1]: %f\n", *a, b[0], b[1]);
+    printf(" c (first): %d   c (second): %d\n",
+              *c[0],*c[1]);
+    printf(" ( %d %d ... )\n ", *(d->fixnum), *(d->cdr->fixnum));
+    b[1] = 3.1415926;
+    return(3);
+}
+
+struct listcell *
+cmemq(element,list)
+int element;
+struct listcell *list;
+{   
+   for( ; list && element != list->car ;  list = list->cdr);
+   return(list);
+}
diff --git a/usr/doc/lisp/ch8auxf.f b/usr/doc/lisp/ch8auxf.f
new file mode 100644 (file)
index 0000000..30c1413
--- /dev/null
@@ -0,0 +1,9 @@
+       double precision function ffoo(a,b,c)
+       integer a,b(10)
+       double precision c
+       print 2,a,b(1),b(2),c
+2      format(' a=',i4,', b(1)=',i5,', b(2)=',i5,' c=',f6.4)
+       b(1) = 22
+       ffoo = 1.23456
+       return
+       end
diff --git a/usr/doc/lisp/ch8auxf.sh b/usr/doc/lisp/ch8auxf.sh
new file mode 100644 (file)
index 0000000..58fc636
--- /dev/null
@@ -0,0 +1,9 @@
+cat ch8auxf.f
+f77 -c ch8auxf.f
+lisp
+(cfasl 'ch8auxf.o '_ffoo_ 'ffoo "real-function" "-lF77 -lI77")
+(array test fixnum-block 2)
+(store (test 0) 10)
+(store (test 1) 11)
+(ffoo 385 (getd 'test) 5.678)
+(test 0)
diff --git a/usr/doc/lisp/ch8auxp.p b/usr/doc/lisp/ch8auxp.p
new file mode 100644 (file)
index 0000000..aa57741
--- /dev/null
@@ -0,0 +1,36 @@
+type   pinteger = ^integer;
+       realarray = array[0..10] of real;
+       pintarray = array[0..10] of pinteger;
+       listoffixnumscell = record  
+                               cdr  : ^listoffixnumscell;
+                               fixnum : pinteger;
+                           end;
+       plistcell = ^listcell;
+       listcell = record
+                     cdr : plistcell;
+                     car : integer;
+                  end;
+
+function pfoo ( var a : integer ; 
+               var b : realarray;
+               var c : pintarray;
+               var d : listoffixnumscell) : integer;
+begin
+   writeln(' a:',a, ' b[0]:', b[0], ' b[1]:', b[1]);
+   writeln(' c (first):', c[0]^,' c (second):', c[1]^);
+   writeln(' ( ', d.fixnum^, d.cdr^.fixnum^, ' ...) ');
+   b[1] := 3.1415926;
+   pfoo := 3
+end ;
+
+{ the function pmemq looks for the lisp pointer given as the first argument
+  in the list pointed to by the second argument.
+  Note that we declare " a : integer " instead of " var a : integer " since
+  we are interested in the pointer value instead of what it points to (which
+  could be any lisp object)
+}
+function pmemq( a : integer; list : plistcell) : plistcell;
+begin
+ while (list <> nil) and (list^.car <> a) do list := list^.cdr;
+ pmemq := list;
+end ;
diff --git a/usr/doc/lisp/ch8errs b/usr/doc/lisp/ch8errs
new file mode 100644 (file)
index 0000000..c750032
--- /dev/null
@@ -0,0 +1,84 @@
+143pf
+147pf
+158pf
+20io
+32io
+48io
+arg
+arg1
+arg2
+backquote
+backquoted
+caddr
+cadr
+cc
+cddr
+cdr
+Cfasl
+cfasl
+cfoo
+ch8auxc
+ch8auxf
+ch8auxp
+cmemq
+cond
+def
+defintion
+Defmacro
+defmacro
+demonstate
+elseif
+eq
+Eval
+eval
+evaluted
+ffoo
+Fixnum
+fixnum
+fixnums
+flonum
+foo
+funcall
+funname
+getaddress
+getd
+int
+jkfmacs
+lc
+lexpr
+lF77
+Li11066
+Li7055
+lI77
+lib
+listcell
+listoffixnumscell
+lpc
+memq
+memq's
+newelt
+nlambda
+nlambdas
+nld
+ok
+pc
+pfoo
+pintarray
+pinteger
+plistcell
+pmemq
+preceeding
+preceeds
+printf
+realarray
+roman
+setq
+struct
+terpr
+testarr
+tmp
+unevaluted
+usr
+val
+var
+writeln
diff --git a/usr/doc/lisp/ch9.n b/usr/doc/lisp/ch9.n
new file mode 100644 (file)
index 0000000..97fe8e4
--- /dev/null
@@ -0,0 +1,211 @@
+.Lc Arrays 9
+.pp
+Arrays in 
+.Fr
+provide a programmable data structure access mechanism.
+One possible use for 
+.Fr
+arrays is to implement Maclisp style arrays which are simple vectors
+of fixnums, flonums or general lispvalues.
+This is described in more detail in \(sc9.3 but first
+we will describe how array references are handled by
+the lisp system.
+.pp
+The structure of an array object is given in \(sc1.3.9 and reproduced here
+for your convenience.
+.sp 1v
+.TS
+box center ;
+c | c | c | c .
+Subpart name   Get value       Set value       Type
+
+=
+access function        getaccess       putaccess       binary, list
+                       or symbol
+_
+auxiliary      getaux  putaux  lispval
+_
+data   arrayref        replace block of contiguous
+               set     lispval
+_
+length getlength       putlength       fixnum
+_
+delta  getdelta        putdelta        fixnum
+.TE
+.sh 2 "general arrays" \n(ch 1
+Suppose the evaluator is told to evaluate \fI(foo\ a\ b)\fP
+and the function cell of the symbol foo contains an array object
+(which we will call foo_arr_obj).
+First the evaluator will evaluate and stack the values of 
+.i a 
+and 
+.i b .
+Next it will stack the array object foo_arr_obj.
+Finally it will call the access function of foo_arr_obj.
+The access function should be a lexpr\*[\(dg\*]
+or a symbol whose 
+function cell contains a lexpr.
+.(f
+\*[\(dg\*]A lexpr is a function which accepts any number of arguments
+which are evaluated before the function is called.
+.)f
+The access function is responsible for locating and returning 
+a value from the array.
+The array access function is free to interpret the arguments as it wishes.
+The Maclisp compatible array access function which is provided 
+in the standard
+.Fr
+system interprets the arguments as subscripts in the same way as 
+languages like Fortran and Pascal.
+.pp
+The array access function will also be called up to store elements in 
+the array.
+For example, \fI(store\ (foo\ a\ b)\ c)\fP
+will automatically expand to (foo c a b) and when the evaluator is called
+to evaluate this, it will evaluate the arguments 
+.i c , 
+.i b 
+and
+.i a .
+Then it will
+stack the array object (which is stored 
+in the function cell of foo) and call the array access function
+with (now) four arguments.
+The array access function must be able to tell this is a store operation
+which it can by checking the number of arguments it has been
+given (a lexpr can do this very easily).
+.sh 2 "subparts of an array object"
+When an array is created a raw array object is allocated with
+.i marray
+and the user is responsible for filling in the parts.
+Certain lisp functions interpret the values of the subparts 
+of the array object in special
+ways as described in the following text.
+Placing illegal values in these subparts may cause
+the lisp system to fail.
+.sh 3 "access function"
+The function of the access function has been described above.
+The contents of the access function should be a lexpr, 
+either a binary (compiled function) or a list (interpreted function).
+It may also be a symbol whose function cell contains a function 
+definition.
+This subpart 
+is used by 
+.i eval , 
+.i funcall , 
+and 
+.i apply
+when evaluating array references.
+.sh 3 auxiliary
+This can be used for any purpose. If it is a list and the first element
+of that list is the symbol unmarked_array then the data subpart will
+not be marked by the garbage collector (this is used in the Maclisp
+compatible array package and has the potential for causing strange errors
+if used incorrectly).
+.sh 3 data
+This is either nil or points to a block of data space allocated by 
+.i segment 
+or 
+.i small-segment.
+.sh 3 length
+This is a fixnum whose value is the number of elements in the
+data block.  This is used by the garbage collector and by 
+.i arrayref
+to determine if your index is in bounds.
+.sh 3 delta
+This is a fixnum whose value is the number of bytes in each element of 
+the data block.
+This will be four for an array of fixnums or value cells, and eight
+for an array of flonums.
+This is used by the garbage collector and 
+.i arrayref
+as well.
+.sh 2 "The Maclisp compatible array package"
+.pp
+A Maclisp style array is similar to what are know as arrays in other
+languages: a block of homogeneous data elements which
+is indexed by one or more integers called subscripts.
+The data elements can be all fixnums, flonums or general lisp objects.
+An array is created by a call to the function 
+.i array 
+or *array .
+The only difference is that 
+.i *array
+evaluates its arguments.
+This call: 
+.i "(array foo t 3 5)"
+sets up an array called foo of dimensions 3 by 5.
+The subscripts are zero based. 
+The first element is \fI(foo\ 0\ 0)\fP, the next is \fI(foo\ 0\ 1)\fP
+and so on up to \fI(foo\ 2\ 4)\fP.
+The t indicates a general lisp object array which means each element of
+foo can be any type.
+Each element can be any type since all that is stored in the array is
+a pointer to a lisp object, not the object itself.
+.i Array 
+does this by allocating an array object
+with
+.i marray
+and then allocating a segment of 15 consecutive value cells with
+.i small-segment
+and storing a pointer to that segment in the data subpart of the array
+object.
+The length and delta subpart of the array object are filled in (with 15
+and 4 respectively) and the access function subpart is set to point to 
+the appropriate  array access function.
+In this case there is a special access function for two dimensional
+value cell arrays called arrac-twoD, and this access function is used.
+The auxiliary subpart is set to (t\ 3\ 5) which describes the type of array
+and the bounds of the subscripts.  
+Finally this array object is placed in the function cell of the symbol foo.
+Now when 
+.i "(foo 1 3)"
+is evaluated, the array access function is invoked with three arguments:
+1, 3 and the array object.  From the auxiliary field of the
+array object it gets a description of the particular array.
+It then determines which element \fI(foo\ 1\ 3)\fP refers to  and 
+uses arrayref to extract that element.
+Since this is an array of value cells, what arrayref returns is a
+value cell whose value what we want, so we evaluate the value cell
+and return it as the value of \fI(foo\ 1\ 3)\fP.
+.pp
+In Maclisp the call \fI(array\ foo\ fixnum\ 25)\fP
+returns an array whose data object is a block of 25 memory words.
+When fixnums are stored in this array, the actual numbers are be 
+stored instead of pointers to the numbers as are done in general lisp
+object arrays.
+This is efficient under Maclisp but inefficient in
+.Fr
+since every time a value was referenced from an array it had to be copied
+and a pointer to the copy returned to prevent aliasing\*[\(dg\*].
+.(f
+\*[\(dg\*]Aliasing is when two variables are share the same storage location.
+For example if the copying mentioned weren't done then after 
+\fI(setq\ x\ (foo\ 2))\fP was done, the value of x and 
+(foo\ 2) would share the same 
+location.
+Then should the value of (foo\ 2) change, x's value would change as well.
+This is considered dangerous and as a result pointers are never returned
+into the data space of arrays.
+.)f
+Thus t, fixnum and flonum arrays are all implemented in the same 
+manner.
+This should not affect the compatibility of Maclisp
+and 
+.Fr .
+If there is an application where a block of fixnums or flonums is required,
+then the exact same effect of fixnum and flonum arrays in Maclisp
+can be achieved by using fixnum-block and flonum-block arrays.
+Such arrays are required if you want to pass a large number of arguments to a 
+Fortran or C coded function and then get answers back.
+.pp
+The Maclisp compatible array package is 
+just one example of how a general array scheme can be implemented.
+Another type of array you could implement would be hashed arrays.
+The subscript could be anything, not just a number.
+The access function would hash the subscript and use the result to
+select an array element.
+With the generality of arrays also comes extra cost; if you just
+want a simple vector of (less than 128) general lisp objects
+you would be wise to look into using hunks.
+
diff --git a/usr/doc/lisp/chb.n b/usr/doc/lisp/chb.n
new file mode 100644 (file)
index 0000000..215b1c5
--- /dev/null
@@ -0,0 +1,146 @@
+.Ap 2 Special\ Symbols
+.pp
+The values of these symbols  have a predefined meaning.
+Some values are counters 
+while others are simply flags whose value the user can change to affect
+the operation of lisp system.
+In all cases, only the value cell of the symbol is important, the function
+cell is not.
+The value of some of the symbols (like \fBER%misc\fP) 
+are functions - what this means is that the value cell of those symbols
+either contains a lambda expression,
+a binary object,
+or symbol with a function binding.
+.pp 
+The values of the special symbols are:
+.in .5i
+.de Sa
+.sp 1v
+.ti -.5i
+\fB\\$1\fP\ \-\ \\
+..
+.Sa $gccount$
+The number of garbage collections which have occurred.
+.Sa $gcprint
+If bound to  a non nil value, then after each garbage collection and 
+subsequent storage allocation a summary of storage allocation will
+be printed.
+.Sa ER%all
+The function which is the error handler for all errors (see \(sc10)
+.Sa ER%brk
+The function which is the handler for the 
+error signal generated by the evaluation of the 
+.i break 
+function (see \(sc10).
+.Sa ER%err
+The function which is the handler for the error 
+signal generated by the evaluation of the
+.i err
+function (see \(sc10).
+.Sa ER%misc
+The function which is the handler of the error 
+signal generated by one of the unclassified errors (see \(sc10).
+Most errors are unclassified at this point.
+.Sa ER%tpl
+The function which is the handler to be called
+when an error has occurred which 
+has not been handled (see \(sc10). 
+.Sa ER%undef
+The function which is the handler for the 
+error signal generated when a call to an undefined function
+is made.
+.Sa ^w
+When bound to a non nil value this will prevent output to the standard
+output port (poport) from reaching the standard output (usually a terminal).
+Note that ^w is a two character symbol and should not be confused
+with ^W which is how we would denote control-w.
+The value of ^w is checked when the standard output buffer is flushed
+which occurs after a 
+.i terpr , 
+.i drain 
+or when the buffer overflows.
+This is most useful in conjunction with ptport described below.
+System error handlers rebind ^w to nil when they are invoked to assure
+that error messages are not lost.
+(This was introduced for Maclisp compatibility).
+.Sa defmacro-for-compiling
+The has an effect during compilation.  
+If non-nil it causes macros defined by defmacro to be 
+compiled and included in the
+object file.
+.Sa environment
+The UNIX environment in assoc list form.
+.Sa errlist
+When a 
+.i reset
+is done, the value of errlist is saved away and control is thrown to
+the top level.
+\fIEval\fP
+is then mapped over the saved away 
+value of this list.
+.Sa errport
+This port is initially bound to the standard error file.
+.Sa ibase
+This is the input radix used by the lisp reader.
+It may be either eight or ten. 
+Numbers followed by a decimal point are assumed to be decimal regardless
+of what ibase is.
+.Sa linel
+The line length used by the pretty printer, pp.
+This should be used by 
+.i print 
+but it is not at this time.
+.Sa nil
+This symbol represents the null list and thus can be written ().
+Its value is always nil.
+Any attempt to change the value will result in an error.
+.Sa piport
+Initially bound to the standard input (usually the keyboard).
+A read with no arguments reads from piport.
+.Sa poport
+Initially bound to the standard output (usually the terminal console).
+A print with no second argument writes to poport.
+See also: ^w and ptport.
+.Sa ptport
+Initially bound to nil.
+If bound to a port, then all output sent to the standard output will
+also be sent to this port as long as this port is not also 
+the standard output (as this would cause a loop).
+Note that ptport will not get a copy of whatever is sent to poport
+if poport is not bound to the standard output.
+.Sa readtable
+The value of this is the current readtable.
+It is an array but you should NOT try to change the value of the elements
+of the array using the array functions.
+This is because the readtable is an array of bytes and the smallest 
+unit the array functions work with is a full word (4 bytes).
+You can use 
+.i setsyntax 
+to change the values and
+.i "(status syntax ...)"
+to read the values.
+.Sa t
+This symbol always has the value t.
+It is possible to change the value of this symbol for short
+periods of time but you are strongly advised against it.
+.Sa top-level
+In a lisp system without /usr/lib/lisp/toplevel.l loaded, after a 
+.i reset
+is done, the lisp system will 
+.i funcall 
+the value of top-level if it is
+non nil.
+This provides a way for the user to introduce his own top level interpreter.
+When /usr/lib/lisp/toplevel.l is loaded, it sets top-level to franz-top-level
+and changes the 
+.i reset 
+function so that once franz-top-level starts, it cannot
+be replaced by changing top-level.
+Franz-top-level  does provide a way of changing 
+the top level however, and that is 
+through user-top-level.
+.Sa user-top-level
+If this is bound then after a 
+.i reset ,
+the value of this variable will be 
+.i funcall ed.
diff --git a/usr/doc/lisp/chc.n b/usr/doc/lisp/chc.n
new file mode 100644 (file)
index 0000000..f9f622b
--- /dev/null
@@ -0,0 +1,128 @@
+.Ap 3 Short\ Subjects.
+.sp 2v
+.tl ''\fB\s+2The Garbage Collector\s0\fP'
+.pp
+The garbage collector is invoked automatically whenever a collectable
+data type runs out.
+All data types are collectable except strings and atoms are not.
+After a garbage collection finishes, the collector will call the function 
+.i gcafter
+which should be a lambda of one argument.
+The argument passed to 
+.i gcafter
+is the name of the data type which ran out and caused the garbage collection.
+It is 
+.i gcafter 's
+responsibility to 
+allocate more pages of free space.
+The default 
+.i gcafter 
+makes its decision based on the percentage of space still in 
+use after the garbage collection.
+If there is a large percentage of space still in use, 
+.i gcafter
+allocates a larger amount of free space than if only a small percentage of
+space is still in use.
+The default 
+.i gcafter
+will also print a summary of the space in use if the variable 
+.i $gcprint
+is non nil.
+The summary always includes the state of the list and fixnum space and 
+will include another type if it caused the garbage collection.
+The type which caused the garbage collection is preceded by an asterisk.
+.sp 4v
+.tl ''\s+2\fBDebugging\fP\s0''
+.pp
+There are two built-in functions to help you debug your programs:
+.i baktrace 
+and 
+.i showstack .
+When an error occurs (or when you type the interrupt character),
+you will be left at a break level with the state of the computation
+frozen in the stack.
+At this point, calling  the function
+.i showstack
+will cause the contents of the lisp evaluation stack to be printed in
+reverse chronological order (most recent first).
+When the programs you are running are interpreted or traced, the output
+of 
+.i showstack 
+can be very verbose.
+The function
+.i baktrace
+prints a summary of what 
+.i showstack 
+prints.
+That is, if showstack would print a list, 
+.i baktrace
+would only print the first element of the list.
+If you are running compiled code with the \fI(status\ translink)\fP non
+nil, then fast links are being made.
+In this case, 
+there is not enough information on the stack for 
+.i showstack
+and 
+.i baktrace .
+Thus, if you are debugging compiled code you should probably do 
+\fI(sstatus\ translink\ nil)\fP.
+.pp
+If the contents of the stack don't tell you enough about your problem, the
+next thing you may 
+want to try is to run your program with
+certain functions traced.
+You can direct the trace package to stop program execution when it enters
+a function, allowing you to examine the contents of variables or 
+call other functions.
+The trace package is documented in \(sc11.
+.pp
+It is also possible to single step the evaluator and to look at stack
+frames within lisp.
+The programs which take advantage of these things are in /usr/lib/lisp
+and are called step and fixit.
+They are maintained by the people at Carnegie-Mellon (currently Lars Ericson
+is in charge of the code there).
+There are documentation files for these programs in /usr/lib/lisp as well.
+We run compiled lisp almost exclusively at Berkeley.
+Sites which run a mostly interpreted code should examine these
+files.
+.bp
+.tl ''\fB\s+2The Interpreter\'s Top Level\s0\fP''
+.pp
+The top level interpreter for Franz, named 
+.i franz-top-level
+is defined in /usr/lib/lisp/toplevel.l
+It is given control when the lisp system starts up because the 
+variable top-level is bound to the symbol
+.i franz-top-level .
+The first action 
+.i franz-top-level 
+takes is to print out the name of the current
+version of the lisp system.
+Then it loads the file .lisprc from the HOME directory of the person
+invoking the lisp system if that file exists.
+The .lisprc file allows you to set up your own defaults, read in files,
+set up autoloading  or anything else you might want to do to personalize
+the lisp system.
+Next, the top level goes into a prompt-read-eval-print loop.
+Each time around the loop, before printing the prompt it checks 
+if the variable user-top-level is bound.
+If so, then the value of user-top-level will be 
+.i funcall ed.
+This provides a convenient way for a user to introduce his own top level
+(Liszt, the lisp compiler, is an example of a program which uses this).
+If the user types a ^D (which is the end of file character), and  the
+standard input is not from a keyboard, the lisp system will exit.
+If the standard input is a keyboard and if the value of 
+.i "(status\ ignoreeof)"
+is nil, the lisp system will also exit.
+Otherwise the end of file will be ignored.
+When a 
+.i reset 
+is done
+the current value of 
+.i errlist
+is saved away and control is thrown back up to the top level where 
+.i eval
+is mapped over the saved value of 
+.i errlist.
diff --git a/usr/doc/lisp/foo.sh b/usr/doc/lisp/foo.sh
new file mode 100644 (file)
index 0000000..5dfd3de
--- /dev/null
@@ -0,0 +1,8 @@
+# shell script to test some things
+set echo
+set prompt='% '
+date
+lisp << 'EOF'
+(status ctime)
+'EOF'
+date
diff --git a/usr/doc/lisp/franzf b/usr/doc/lisp/franzf
new file mode 100644 (file)
index 0000000..43441f0
--- /dev/null
@@ -0,0 +1,222 @@
+*A["1+"
+*A"[1-"
+*D[*array
+*A[-
+*A[/
+*A[//
+*A[<
+*A[=
+*A[>
+*A[Divide
+*A[Emuldiv
+*A[abs
+*A[absval
+*A[add
+*A[add1
+*Y[allocate
+M[alphalessp
+*D[and
+*D[append
+*D[append1
+*F[apply
+*F[arg
+*Y[argv
+arracfcnsimp
+R[arracfun
+*D[array
+*D[arraycall
+*D[arraydims
+*D[arrayp
+*D[arrayref
+arrcomputeind
+M[ascii
+*D[assoc
+*D[assq
+*D[atom
+back=quotify
+*Y[baktrace
+bcdad
+*D[bcdp
+*D[bigp
+*Y[bindstack
+*A[boole
+*Y[boundp
+*F[break
+*D[caar
+*D[caddddr
+*D[caddr
+*D[cadr
+*D[car
+*F[catch
+*D[cdar
+*D[cddddr
+*D[cdddr
+*D[cddr
+*D[cdr
+*Y[chdir
+*I[close
+*D[concat
+*D[concatl
+*F[cond
+*D[cons
+*Y[cont
+*D[copy
+*F[declare
+*F[def
+*D[defprop
+*F[defun
+*A[diff
+*A[difference
+*F[do
+*I[drain
+*D[dtpr
+*Y[dumplisp
+*Y[exit
+M[exl
+*D[explode
+*D[explodea
+*D[explodec
+*D[exploden
+*A[expt
+*A[fact
+*Y[fake
+R[fasl
+*D[fillarray
+*A[fix
+*A[fixp
+*I[flatsize
+*A[floatp
+*F[funcall
+*F[function
+*Y[gc
+*Y[gcafter
+*D[gensym
+*D[get
+*D[get_pname
+*D[getaccess
+*D[getaux
+*D[getd
+*D[getdelta
+*F[getdisc
+*D[getentry
+*Y[getenv
+*D[getlength
+*F[go
+*A[greaterp
+*D[implode
+*D[implodeck
+*Y[include
+*I[infile
+killcopy
+*D[last
+*D[length
+*A[lessp
+*F[let
+*D[list
+*I[load
+*I[makereadtable
+*D[maknam
+*F[map
+*F[mapc
+*F[mapcan
+*F[mapcar
+*F[mapcon
+*F[maplist
+*D[marray
+*A[max
+*D[member
+*D[memq
+*F[mfunction
+*A[min
+*A[minus
+*A[minusp
+*A[mod
+*Y[namestack
+*D[nconc
+*D[ncons
+*D[not
+*D[nreverse
+*D[nthelem
+*D[null
+*A[numberp
+*A[numbp
+*I[nwritn
+*F[oblist
+od
+*A[onep
+*Y[opval
+*D[or
+*I[outfile
+*I[patom
+*D[plist
+*A[plus
+*I[pntlen
+*I[portp
+*I[princ
+*I[print
+prname
+*Y[process
+A[product
+*F[prog
+*F[prog2
+*F[progn
+*F[progv
+prtpagesused
+*Y[ptime
+*D[putaccess
+*D[putaux
+*F[putd
+*D[putdelta
+*D[putlength
+*D[putprop
+*D[quote
+*A[quotient
+*I[ratom
+*I[read
+*I[readc
+*I[readlist
+*A[remainder
+*Y[rematom
+*Y[remob
+*D[remprop
+*D[replace
+*Y[reset
+*I[resetio
+*Y[retbrk
+*F[return
+*D[reverse
+*D[rplaca
+*D[rplacd
+*Y[segment
+*D[set
+*D[setplist
+*D[setq
+*I[setsyntax
+*Y[shell
+*Y[showstack
+*Y[signal
+*Y[sizeof
+sload
+*Y[sstatus
+*Y[status
+R[store
+*D[stringp
+*A[sub1
+*A[sum
+*D[symbolp
+*Y[syscall
+*I[terpr
+*I[terpri
+*F[throw
+*A[times
+*Y[top-level
+*I[tyi
+*I[tyipeek
+*I[tyo
+*D[type
+*D[typep
+*D[uconcat
+*D[valuep
+*Y[what
+*I[zapline
+*A[zerop
diff --git a/usr/doc/lisp/indexsed b/usr/doc/lisp/indexsed
new file mode 100644 (file)
index 0000000..ed3e385
--- /dev/null
@@ -0,0 +1 @@
+/\17/ s//\\ /
diff --git a/usr/doc/lisp/lmacs b/usr/doc/lisp/lmacs
new file mode 100644 (file)
index 0000000..e2ab9ea
--- /dev/null
@@ -0,0 +1,129 @@
+."""""""
+." macros for the Franz Lisp Manual
+." 
+." first we set these global me variables
+.""""""""
+.nr ss 4v      \" space 4v between sections
+.nr si 3n      \" section indent
+."""""""""""""""
+."  A chapter is begun by
+."     .Lc chaptertitle number
+."
+." a function is introduced by a 
+."     .Lf functionname arglist
+." where the arglist must be one string, use "'s if necessary.
+." then there are these macros to begin text describing what the function
+." does:
+."     .Wh
+."     <text>                  says "WHERE" allowing you to give more
+."                             details on a function.
+."     .Re
+."     <text>                  tells what value the function returns
+."
+."     .No
+."     <text>                  begins a note, giving more detail on the fcn
+."
+."     .Se
+."     <text>                  describes a size effect of a function.
+."
+."     .Im
+."     <text>                  note to implementor. this will only be
+."                             printed out in the implementors version of
+."                             the manual.
+."     .Rm                     prints a message about this function being
+."                             likely to disappear
+."
+."     .Ex                     begin a short example
+."
+."     .Eb                     begin an large offset example
+."     .Ee                     end an example
+."
+." useful macros
+."     .Fr rest                prints out Franz Lisp and appends rest
+."                             to it.
+."
+." used in creating the index, table of contents and appendicies
+."                             
+."     .Ib                     begin index
+."     .In ch# pg# fcn-name fcn-args    this isnt inserted by hand, but
+."                             is generated by the index program. it indicates
+."                             where a function begins.
+."
+."     .Ap c T                 begin appendix c with title T
+."
+.""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.de Lc
+." .in 0
+.++ RC '\\$1''\\\\\\\\\\\\\\\\n(ch-%'
+.nr % 2
+.nr ch \\$2-1
+.+c \\$1
+.fo '''\fR\s-2Printed:\ \*(td\s0\fP'
+..
+.de Lf
+.sp 2v
+.ne 11
+.in 0
+.ie '\\$2'' (\\fB\\$1\\fP)
+.el (\\fB\\$1\\fP \\$2)
+.br
+.nr $i 5n
+.tm .In \\n(ch \\n% \\$1 "\\$2"
+..
+.de Re
+.ip \s-2RETURNS\s0: 9
+..
+.de Ex
+.ip \s-2EXAMPLE\s0: 9
+..
+.de No
+.ip \s-2NOTE\s0: 6
+..
+.de Eq
+.ip \s-2EQUIVALENT\ TO\s0: 15
+..
+.de Im
+.ip \s-2IMPLEMENTATION\s0: 20
+..
+.de Se
+.ip \s-2SIDE\ EFFECT\s0: 13
+..
+.de Wh
+.ip \s-2WHERE\s0: 9
+..
+.de Rm
+.No
+this function will most likely disappear in future releases.
+..
+.de Fr
+F\s-2RANZ\s0 L\s-2ISP\s0\\$1
+..
+.de Ib \"      beginning of index
+.Ap 1 Index\ to\ F\s-2RANZ\s0\ L\s-2ISP\s0\ Functions
+.ta 6i \" set tab stop for location column
+.tc .          \" generate dots to line up page numbers
+.nf
+..
+.de In
+.ie '\\$4'' (\\fB\\$3\\fR)\t\\$1-\\$2
+.el (\\fB\\$3\\fR\ \\$4)\t\\$1-\\$2
+..
+.de Eb
+.in 0
+.(b 
+.sp 1v
+.hl
+.sz -2
+..
+.de Ee
+.sz +2
+.hl
+.sp 1v
+.)b
+..
+.de Ap \" appendix n title  (n is 1 2 3 4  for A B C D etc)
+.++ RA '''\\\\\\\\\\\\\\\\n(ch-%'
+.nr ch \\$1-1
+.+c \\$2
+.fo '''\fR\s-2Printed:\ \*(td\s0\fP'
+..
diff --git a/usr/doc/lisp/mantags b/usr/doc/lisp/mantags
new file mode 100644 (file)
index 0000000..899a324
--- /dev/null
@@ -0,0 +1 @@
+/^\.Lf/        { print $2, FILENAME, "?^\.Lf " $2 "?" }
diff --git a/usr/doc/lisp/nfranzf b/usr/doc/lisp/nfranzf
new file mode 100644 (file)
index 0000000..551090b
--- /dev/null
@@ -0,0 +1,240 @@
+"1+"
+"1-"
+"\\"
+*
+*array
++
+-
+/
+<
+=
+>
+Divide
+Emuldiv
+FPEINT
+INT
+abs
+absval
+add
+add1
+aexplode
+aexplodec
+aexploden
+allocate
+alphalessp
+and
+append
+append1
+apply
+arg
+argv
+arracfcnsimp
+arracfun
+array
+arraycall
+arraydims
+arrayp
+arrayref
+arrcomputeind
+ascii
+assoc
+assq
+atom
+back=quotify
+baktrace
+bcdad
+bcdp
+bigp
+bind
+bindstack
+boole
+boundp
+break
+caar
+caddddr
+cadddr
+caddr
+cadr
+car
+catch
+cdar
+cddddr
+cdddr
+cddr
+cdr
+chdir
+close
+concat
+concatl
+cond
+cons
+cont
+copy
+declare
+def
+defprop
+defun
+diff
+difference
+do
+drain
+dtpr
+dumpit
+dumplisp
+eq
+equal
+err
+errset
+eval
+eval-when
+ex
+exec
+exit
+exl
+explode
+explodehelp
+expt
+fact
+fake
+fasl
+fillarray
+fillarrayarray
+fix
+fixp
+flatsize
+floatp
+funcall
+function
+gc
+gcafter
+gensym
+get
+get_pname
+getaccess
+getaux
+getd
+getdelta
+getdisc
+getentry
+getenv
+getlength
+go
+greaterp
+implode
+implodeck
+include
+infile
+killcopy
+last
+length
+lessp
+let
+list
+load
+makereadtable
+maknam
+map
+mapc
+mapcan
+mapcar
+mapcon
+maplist
+marray
+max
+member
+memq
+mfunction
+min
+minus
+minusp
+mod
+n$reverse1
+namestack
+nconc
+ncons
+not
+nreverse
+nthelem
+null
+numberp
+numbp
+nwritn
+oblist
+od
+onep
+opval
+or
+outfile
+patom
+plist
+plus
+pntlen
+portp
+princ
+print
+prname
+process
+product
+prog
+prog2
+progn
+progv
+prtpagesused
+ptime
+putaccess
+putaux
+putd
+putdelta
+putlength
+putprop
+quote
+quotient
+ratom
+read
+readc
+readlist
+remainder
+rematom
+remob
+remprop
+replace
+reset
+resetio
+retbrk
+return
+reverse
+rplaca
+rplacd
+segment
+set
+setplist
+setq
+setsyntax
+shell
+showstack
+signal
+sizeof
+sload
+sstatus
+status
+store
+stringp
+sub1
+sum
+symbolp
+syscall
+terpr
+terpri
+throw
+times
+top-level
+tyi
+tyipeek
+tyo
+type
+typep
+uconcat
+valuep
+what
+zapline
+zerop
diff --git a/usr/doc/lisp/oblistd.l b/usr/doc/lisp/oblistd.l
new file mode 100644 (file)
index 0000000..6fa1c84
--- /dev/null
@@ -0,0 +1,9 @@
+; oblist dumping program
+
+(def dumpit
+  (lambda (x)
+         (setq prt (outfile x))        
+         (do ((i (oblist) (cdr i)))
+             ((null i))
+             (setq nm (car i))
+             (cond ((getd nm) (print nm prt)(terpr prt))))))
diff --git a/usr/doc/lisp/specatms.l b/usr/doc/lisp/specatms.l
new file mode 100644 (file)
index 0000000..e68aeb0
--- /dev/null
@@ -0,0 +1,6 @@
+; program to determine the special atoms
+(setq specs (mapcan '(lambda (x) (cond ((and (not (getd x))
+                                            (boundp x))
+                                       (ncons x))
+                                      (t nil)))
+                   (oblist)))
diff --git a/usr/doc/lisp/testpk.l b/usr/doc/lisp/testpk.l
new file mode 100644 (file)
index 0000000..bd0b78c
--- /dev/null
@@ -0,0 +1,5 @@
+(cfasl 'ch8auxp.o '_pfoo 'pfoo "-lpc")
+(putdisc (getd 'pfoo) 1)
+(array test flonum-block 2)
+(store (test 0) 2.22)
+(store (test 1) 3.333)
diff --git a/usr/doc/lisp/xx.f b/usr/doc/lisp/xx.f
new file mode 100644 (file)
index 0000000..b852099
--- /dev/null
@@ -0,0 +1,16 @@
+       subroutine foo (ia)
+       i = ipat(icdr(ia))
+       print 4,i
+4      format(' ( ',i9)
+       end
+
+       function icdr(ix)
+       integer ix(2)
+       icdr = ix(2)
+       return
+       end
+
+       function ipat(ix)
+       integer ix(10)
+       ipat = ix(1)
+       end
diff --git a/usr/doc/lisp/xxx.l b/usr/doc/lisp/xxx.l
new file mode 100644 (file)
index 0000000..0a80727
--- /dev/null
@@ -0,0 +1,2 @@
+(defun xxx (i)
+  (foo2 i (getd 'test)))
diff --git a/usr/doc/mail/addenda.nr b/usr/doc/mail/addenda.nr
new file mode 100644 (file)
index 0000000..908be0c
--- /dev/null
@@ -0,0 +1,44 @@
+.(l C
+.sz 12
+.b
+ADDENDUM TO MAIL REFERENCE MANUAL
+.r
+.sz 10
+
+Version 1.3
+.)l
+.sp
+.sh 1 "Distribution groups (aliases)"
+.pp
+It is possible to create short names, or
+.i aliases
+for groups of people using the
+.b alias
+command.  For example, one might give the command
+.(l
+alias staff dmr ken root
+.)l
+after which one could mail to
+.q "staff"
+and have mail sent to
+.q "dmr,"
+.q "ken,"
+and
+.q "root."
+To print out the aliases that you currently have defined, just type
+.(l
+alias
+.)l
+.sh 1 "Startup files"
+.pp
+Whenever Mail is invoked, it reads the files
+.i /usr/lib/Mail.rc
+and
+.i .mailrc
+in the user's home directory in that order.
+Commonly, system-wide aliases are defined in
+.i /usr/lib/Mail.rc
+and personal aliases and
+.b set
+options are defined in
+.i .mailrc .
diff --git a/usr/doc/mail/mail0.nr b/usr/doc/mail/mail0.nr
new file mode 100644 (file)
index 0000000..a94d2ee
--- /dev/null
@@ -0,0 +1,24 @@
+.if n \
+.nr fs .5v
+.he 'Mail Reference Manual'\n(mo/\n(dy/\n(yr'%'
+.tp
+.sp 1.5i
+.sz 12
+.rb
+.(l C
+MAIL REFERENCE MANUAL
+.)l
+.sz 10
+.sp 2
+.i
+.(l C
+Kurt Shoens
+.)l
+.r
+.(l C
+Version 1.3
+
+
+\*(td
+.)l
+.pn 2
diff --git a/usr/doc/mail/mail1.nr b/usr/doc/mail/mail1.nr
new file mode 100644 (file)
index 0000000..b045d0a
--- /dev/null
@@ -0,0 +1,24 @@
+.sh 1 Introduction
+.pp
+Mail provides a friendly environment for sending and receiving mail
+by dividing incoming mail into
+its constituent messages and allowing the user to deal with them
+in any order.  It provides a set of
+.i ed -\c
+like commands for manipulating messages and sending mail.
+.pp
+This document describes the Mail command at an
+introductory level appropriate for the casual user as well as a
+more detailed level appropriate for those whose usage of Mail
+is sufficiently frequent to justify such familiarity.
+The reader is assumed to be familiar with the \s-2UNIX\s0\**
+.(f
+\** \s-1UNIX\s0 is a trademark of Bell Laboratories.
+.)f
+Shell, the text editor, and some of the common \s-2UNIX\s0 commands.
+If you are a neophyte Mail user, section two of this
+document should provide enough information to allow you to effectively
+use Mail.
+The balance of
+this document describes more advanced features, which are useful
+to those commonly barraged with a large volume of mail.
diff --git a/usr/doc/mail/mail2.nr b/usr/doc/mail/mail2.nr
new file mode 100644 (file)
index 0000000..b380596
--- /dev/null
@@ -0,0 +1,133 @@
+.sh 1 "Common usage"
+.pp
+The Mail command has two distinct usages, according to whether one
+wants to send or receive mail.  Sending mail is simple:  to send a
+message to a user whose login name is, say,
+\*(lqroot,\*(rq
+use the Shell
+command:
+.(l
+% Mail root
+.)l
+then type your message.  When you reach the end of the message, type
+an EOT (control\-d) at the beginning of a line, which will cause Mail
+to echo \*(lqEOT\*(rq and return you to the Shell.  When the user you sent mail
+to next logs in, he will receive the message:
+.(l
+You have mail.
+.)l
+to alert him to the existence of your message.  Incidentally, once you have
+sent mail to someone, there is no way to undo the act, so be
+careful.  The message your recipient reads will consist of the message you
+typed, preceded by a line telling who sent the message (your login name),
+the teletype from which the message was sent, and the date and time it
+was sent.
+.pp
+If you want to send the same message to several other people, you can list
+all of their login names on the command line.
+Thus,
+.(l
+% Mail sam bob john
+Tuition fees are due next Friday.  Don't forget!!
+<Control\-d>
+EOT
+%
+.)l
+will send the reminder to sam, bob, and john.
+.pp
+If, when you log in, you see the message,
+.(l
+You have mail.
+.)l
+you can read the mail by typing simply:
+.(l
+% Mail
+.)l
+Mail will respond by typing its version number and date and then listing
+the messages you have waiting.  Then it will type an underscore and await
+your command.  The messages are assigned numbers starting with 1 \*- you
+can refer to the messages with these numbers.
+.pp
+To look at a specific message, use the
+.b type
+command, which may be abbreviated to simply
+.b t .
+For example, if you had the following messages:
+.(l
+   1 root     Wed Sep 21 09:21  "Tuition fees"
+   2 sam      Tue Sep 20 22:55
+.)l
+you could examine the first message by giving the command:
+.(l
+type 1
+.)l
+which might cause Mail to respond with, for example:
+.(l
+Message  1:
+From root  tty8  Wed Sep 21 09:21:45 1978
+Subj: Tuition fees
+
+Tuition fees are due next Wednesday.  Don't forget!!
+
+.)l
+.pp
+Normally, each message you receive is saved in the file
+.i mbox
+in your login directory at the time you leave Mail.  Often,
+however, you will not want to save a particular message you
+have received because it is only of passing interest.  To avoid
+saving a message in
+.i mbox
+you can delete it using the
+.b delete
+command.  In our example,
+.(l
+delete 1
+.)l
+will prevent Mail from saving message 1 (from root) in
+.i mbox .
+In addition to not saving deleted messages, Mail will not let
+you type them, either.  The effect is to make the message disappear
+altogether, along with its number.  The
+.b delete
+command can be abbreviated to simply
+.b d .
+.pp
+When you have perused all of the messages of interest, you can leave
+Mail with the
+.b quit
+command, which saves all of the messages you have typed but not
+deleted in the file
+.i mbox
+in your login directory.  Deleted messages are discarded irretrievably,
+and messages left untouched are preserved in your system mailbox so
+that you will see them the next time you type:
+.(l
+% Mail
+.)l
+The
+.b quit
+command can be abbreviated to simply
+.b q .
+.pp
+If you wish for some reason to leave
+Mail quickly without altering either your system mailbox or
+.i mbox ,
+you can type the
+.b x
+command (short for
+.b exit ),
+which will immediately return you to the Shell without changing anything.
+.pp
+If, instead, you want to execute a Shell command without leaving Mail, you
+can type the command preceded by an exclamation point, just as in the
+text editor.  Thus, for instance:
+.(l
+!date
+.)l
+will print the current date without leaving Mail.
+.pp
+Finally, the
+.b help
+command is available to print out a brief summary of the Mail
+commands, using only the single character command abbreviations.
diff --git a/usr/doc/mail/mail3.nr b/usr/doc/mail/mail3.nr
new file mode 100644 (file)
index 0000000..ffbe09e
--- /dev/null
@@ -0,0 +1,174 @@
+.sh 1 "Tilde escapes"
+.pp
+While typing in a message to be sent to others, it is often
+useful to be able to invoke the text editor on the partial message,
+print the message, execute a shell command, or perform some other
+auxiliary function.  Mail provides these capabilities through
+.i "tilde escapes" ,
+which consist of a tilde (~) at the beginning of a line, followed by
+a single character which indicates the function to be performed.  For
+example, to print the text of the message so far, use:
+.(l
+~p
+.)l
+which will print a line of dashes, the recipients of your message, and
+the text of the message so far.  If you are dissatisfied with the message as
+it stands, you can invoke the text editor on it using the escape
+.(l
+~e
+.)l
+which causes the message to be copied into a temporary file and an
+instance of the editor to be spawned.  After modifying the message to
+your satisfaction, write it out and quit the editor.  Mail will respond
+by typing
+.(l
+(continue)
+.)l
+after which you may continue typing text which will be appended to your
+message, or type <control-d> to end the message.
+.pp
+It is often useful to be able to include the contents of some
+file in your message; the escape
+.(l
+~r filename
+.)l
+is provided for this purpose, and causes the named file to be appended
+to your current message.  Mail complains if the file doesn't exist
+or can't be read.  If the read is successful, the number of lines and
+characters appended to your message is printed, after which you may continue
+appending text.
+.pp
+As a special case of ~r, the escape
+.(l
+~d
+.)l
+reads in the file
+.q dead.letter
+in your home directory.  This is often useful since Mail copies the text
+of your message there when you abort a message with \s-2RUBOUT\s0.
+.pp
+In order to save the current text of your message on a file you may use the
+.(l
+~w filename
+.)l
+escape.  Mail will print out the number of lines and characters written
+to the file, after which you may continue appending text to your message.
+.pp
+If you are sending mail from within Mail's command mode (read about the
+.b reply
+and
+.b mail
+commands, section six), you can read a message sent to you into the message
+you are constructing with the escape:
+.(l
+~m 4
+.)l
+which will read message 4 into the current message, shifted right by
+one tab stop.  You can name any non-deleted message, or list of messages.
+This is the usual way to forward a message.
+.pp
+If, in the process of composing a message, you decide to add additional
+people to the list of message recipients, you can do so with the escape
+.(l
+~t name1 name2 ...
+.)l
+You may name as few or many additional recipients as you wish.  Note
+that the users originally on the recipient list will still receive
+the message; in fact, you cannot remove someone from the recipient
+list with ~t.
+.pp
+If you wish, you can associate a subject with your message by using the
+escape
+.(l
+~s Arbitrary string of text
+.)l
+which replaces any previous subject with
+.q "Arbitrary string of text."
+The subject, if given, is sent near the
+top of the message prefixed with
+.q "Subj:"
+You can see what the message will look like by using ~p.
+.pp
+For political reasons, one occasionally prefers to list certain
+people as recipients of carbon copies of a message rather than
+direct recipients.  The escape
+.(l
+~c name1 name2 ...
+.)l
+adds the named people to the
+.q "Cc:"
+list, similar to ~t.
+Again, you can execute ~p to see what the message will look like.
+.pp
+The recipients of the message together constitute the
+.q "To:"
+field, the subject the
+.q "Subj:"
+field, and the carbon copies the
+.q "Cc:"
+field.  If you wish to edit these in ways impossible with the ~t, ~s,
+and ~c escapes, you can use the escape
+.(l
+~h
+.)l
+which prints
+.q "To:"
+followed by the current list of recipients and leaves the cursor
+(or printhead) at the end of the line.  If you type in ordinary
+characters, they are appended to the end of the current list of
+recipients.  You can also use your erase character to erase back into
+the list of recipients, or your kill character to erase them altogether.
+Thus, for example, if your erase and kill characters are the standard
+# and @ symbols,
+.(l
+~h
+To: root kurt####bill
+.)l
+would change the initial recipients
+.q "root kurt"
+to
+.q "root bill."
+When you type a newline, Mail advances to the
+.q "Subj:"
+field, where the same rules apply.  Another newline brings you to
+the
+.q "Cc:"
+field, which may be edited in the same fashion.  Another newline
+leaves you appending text to the end of your message.  You can use
+~p to print the current text of the header fields and the body
+of the message.
+.pp
+To effect a temporary escape to the shell, the escape
+.(l
+~!command
+.)l
+is used, which executes
+.i command
+and returns you to mailing mode without altering the text of
+your message.  If you wish, instead, to filter the body of your
+message through a shell command, then you can use
+.(l
+~|command
+.)l
+which pipes your message through the command and uses the output
+as the new text of your message.  If the command produces no output,
+Mail assumes that something is amiss and retains the old version
+of your message.  A frequently-used filter is the command
+.i fmt
+which is designed to format outgoing mail.
+.pp
+If you wish (for some reason) to send a message which contains
+a line beginning with a tilde, you must double it.  Thus, for example,
+.(l
+~~This line begins with a tilde.
+.)l
+sends the line
+.(l
+~This line begins with a tilde.
+.)l
+.pp
+Finally, the escape
+.(l
+~?
+.)l
+prints out a brief summary of the available tilde escapes.
diff --git a/usr/doc/mail/mail4.nr b/usr/doc/mail/mail4.nr
new file mode 100644 (file)
index 0000000..d6eef20
--- /dev/null
@@ -0,0 +1,77 @@
+.sh 1 "Message lists"
+.pp
+The
+.b type
+and
+.b delete
+commands described in section two take a list of messages as argument,
+as do many of the commands described in section six.  This section
+describes the construction of message lists in general.
+.pp
+A
+.i "message list"
+consists of a list of message numbers, ranges, and names,
+separated by spaces or tabs.  Message numbers may be either
+decimal numbers, which directly specify messages, or one of the
+special characters
+.q \(ua
+.q "."
+or
+.q "$"
+to specify the first relevant, current, or last
+relevant message, respectively.
+.i Relevant
+here means, for most commands
+.q "not deleted"
+and
+.q "deleted"
+for the
+.b undelete
+command.
+.pp
+A range of messages consists of two message numbers (of the form
+described in the previous paragraph) separated by a dash.
+Thus, to print the first four messages, use
+.(l
+type 1\-4
+.)l
+and to print all the messages from the current message to the last
+message, use
+.(l
+type .\-$
+.)l
+.pp
+A
+.i name
+is a user name.  All of the user names given in the message list are
+collected together and each message selected by other means
+is checked to make sure it was sent by one of the named users.
+If the message consists entirely of user names, then every
+message sent by one those users which is
+.i relevant
+(in the sense described earlier)
+is selected.  Thus, to print every message sent to you by
+.q root,
+do
+.(l
+type root
+.)l
+.pp
+As a shorthand notation, you can specify simply
+.q *
+to get every
+.i relevant
+(same sense)
+message.  Thus,
+.(l
+type *
+.)l
+prints all undeleted messages,
+.(l
+delete *
+.)l
+deletes all undeleted messages, and
+.(l
+undelete *
+.)l
+undeletes all deleted messages.
diff --git a/usr/doc/mail/mail5.nr b/usr/doc/mail/mail5.nr
new file mode 100644 (file)
index 0000000..6ecc623
--- /dev/null
@@ -0,0 +1,45 @@
+.sh 1 "Command line options"
+.pp
+This section describes the alternate usages of Mail from the
+shell.
+.pp
+As you continue to receive system mail, you will most likely
+accumulate a large collection of messages in the file
+.i mbox.
+In order to help you deal with this, Mail allows you to edit
+files of messages by using the
+.rb -f
+flag.  Specifically,
+.(l
+Mail \-f filename
+.)l
+causes Mail to edit \*(lqfilename\*(rq and
+.(l
+Mail \-f
+.)l
+causes Mail to read \*(lqmbox\*(rq in your home directory.  All of
+the Mail commands except
+.b preserve
+are available to edit the messages.  When you type the
+.b quit
+command, Mail will write the updated file back.
+.pp
+Since you will usually have a large number of messages stored in
+.i mbox,
+Mail will only print out the first 18 message headers when editing
+more than 18 messages.  To display the other message headers, the
+.b headers
+command takes as an optional argument either + or \- to move forward
+or back to the next or previous 18 message group.
+.pp
+If you send mail over a noisy phone line, you will notice that many
+of the garbage characters turn out to be the \s-2RUBOUT\s0 character,
+which causes Mail to abort the message.  To deal with this annoyance,
+you can invoke Mail with the
+.rb -i
+option to causes these garbage characters to be ignored.  Unfortunately,
+as you are typing in a line of text to a program, the little gnome which
+gathers up the characters is instructed to throw them all away when
+a \s-2RUBOUT\s0 is seen.  For this reason, Mail indicates that a
+\s-2RUBOUT\s0 has been received by echoing an @ to tell you that everything
+you had typed on that line has been thrown away.
diff --git a/usr/doc/mail/mail6.nr b/usr/doc/mail/mail6.nr
new file mode 100644 (file)
index 0000000..61fa440
--- /dev/null
@@ -0,0 +1,163 @@
+.sh 1 "Additional commands"
+.pp
+This section describes additional Mail commands available when
+receiving mail.
+.pp
+The
+.b next
+command goes to the next message and types it.  If given a message list,
+.b next
+goes to the first such message and types it.  Thus,
+.(l
+type root
+.)l
+goes to the next message sent by \*(lqroot\*(rq and types it.
+The
+.b next
+command can be abbreviated to simply a newline, which means that one
+can go to and type a message by simply giving its message number or
+one of the magic characters
+.q "\(ua"
+.q "."
+or
+.q "$".
+Thus,
+.(l
+\&.
+.)l
+prints the current message and
+.(l
+4
+.)l
+prints message 4.
+.pp
+The
+.rb \-
+command goes to the previous message and prints it.  The
+.rb \-
+command may be given a decimal number
+.i n
+as an argument, in which case the
+.i n th
+previous message is gone to and printed.
+.pp
+The
+.b save
+command allows you to save messages received from others on a file
+other than
+.i mbox.
+Its syntax varies somewhat from the other commands which accept
+a message list in that the final word on the command line is taken to be
+the file on which to save the messages.  The named messages are
+appended to the file (which is created if it did not already exist)
+and are marked as saved.  Saved messages are not automatically saved in
+.i mbox
+at quit time, nor are they selected by the
+.b next
+command described above, unless explicitly specified.  The
+.b save
+command provides a facility for saving messages pertaining to a particular
+subject or from a particular person in a special place.
+.pp
+The
+.b undelete
+command causes a message which had been deleted previously to regain
+its initial status.  Only messages which are already deleted may be
+undeleted.  This command may be abbreviated to
+.b u .
+.pp
+The
+.b preserve
+command takes a message list and marks each message therein so that it
+will be saved in your system mailbox instead of being deleted or
+saved in
+.i mbox
+when you quit.  This is useful for saving messages of importance that
+you want to see again, or messages not intended for you if you are sharing
+a login name.
+.pp
+Often, one wants to deal with a message by responding to its author right
+then and there.  The
+.b reply
+command is useful for this purpose:  it takes a message list and sends mail
+to the authors of those messages.  The message is collected in the usual
+fashion by reading up to an EOT.  All of the tilde escapes described in section
+three will work in
+.b reply .
+Additionally, if there are header fields
+in the message being replied to, this information is copied into the
+new message.  The
+.b reply
+command can be abbreviated to
+.b r .
+.pp
+In order to simply mail to a user inside of Mail, the
+.b mail
+command is provided.  This sends mail in the manner described for the
+.b reply
+command above, except that the user supplies a list of recipient login
+names and distribution groups.  All of the tilde escapes described in
+section three will work in
+.b mail .
+The
+.b mail
+command may be abbreviated to
+.b m .
+.pp
+In order to edit individual messages using the text editor, the
+.b edit
+command is provided.  The
+.b edit
+command takes a list of message as described under the
+.b type
+command and processes each by writing it into the file
+Message\c
+.i x
+where
+.i x
+is the message number being edited and executing the text editor on it.
+When you have edited the message to your satisfaction, write the message
+out and quit, upon which Mail will read the message back and remove the file.
+.b Edit
+may be abbreviated to
+.b e .
+.pp
+It is often useful to be able to invoke one of two editors,
+based on the type of terminal one is using.  To invoke
+a display oriented editor, you can use the
+.b visual
+command.  The operation of the
+.b visual
+command is otherwise identical to that of the
+.b edit
+command.
+.pp
+When Mail is invoked to receive mail, it prints out the message header
+for each message.  In order to reprint the headers for remaining messages
+(those which haven't been deleted), you may type the
+.b headers
+command.  Deleted messages do not appear in the listing, saved messages are
+flagged with a
+.q "*"
+and preserved messages are flagged with a
+\*(lqP.\*(rq
+.pp
+The
+.b from
+command takes a list of messages and prints out the header lines for each one;
+hence
+.(l
+from joe
+.)l
+is the easy way to display all the message headers from \*(lqjoe.\*(rq
+.pp
+The
+.b top
+command takes a message list and prints the first five lines
+of each addressed message.  It may be abbreviated to
+.b to .
+.pp
+The
+.b dt
+command deletes the current message and prints the next message.
+It is useful for quickly reading and disposing of mail.
diff --git a/usr/doc/mail/mail7.nr b/usr/doc/mail/mail7.nr
new file mode 100644 (file)
index 0000000..123121c
--- /dev/null
@@ -0,0 +1,364 @@
+.de SF         \" Give short form of a command (from $1)
+[\\$1]
+..
+.sh 1 "Summary of commands, escapes, and options"
+.pp
+This sections describes tersely all of the Mail commands,
+escapes, and options.
+For each command,
+its most abbreviated form (in brackets) and a
+short description of the command is given below.
+.pp
+First, message lists are computed by determining the set M which
+consists of all message referenced explicitly or through ranges.
+Then, the set U is computed, which consists of all messages sent by
+.i any
+of the user names specified.  Finally, the message list is calculated
+by finding the intersection of sets M and U.
+.pp
+Each Mail command is typed on a line by itself, and may take arguments
+following the command word.  The command need not be typed in its
+entirety \*- the first command which matches the typed prefix is used.
+If the argument begins with a digit or special character, then
+no space is required following the command letter, but otherwise the space
+is required.  If a Mail command does not take arguments, they may be
+specified, even though they are ignored.  For the commands which take
+message lists as arguments, if no message list is given, then the
+next message forward which satisfies the command's requirements is
+used.  If there are no messages forward of the current message,
+the search proceeds backwards, and if there are no good messages
+at all, Mail types \*(lqNo applicable messages\*(rq and aborts the
+command.
+.nr ii 12n
+.ip \-
+.SF \-
+Goes to the previous message and prints it out.  If  given
+a numeric argument
+.i n ,
+goes to the
+.i n th
+previous message and prints it.  If there is no previous
+message, it prints
+.q "Nonzero address required."
+.ip =
+.SF =
+Prints out the current message number.  Takes no arguments.
+.ip ?
+.SF ?
+Prints out the file /usr/lib/Mail.help, which contains a brief summary
+of the commands.  Takes no arguments.
+.ip !
+.SF !
+Executes the \s-2UNIX\s0 Shell command which follows.  Unlike other commands,
+there does not need to be a space after the exclamation point.
+.ip alias
+.SF a
+With no arguments, prints out all currently-defined aliases.  With one
+argument, prints out that alias.  With more than one argument, adds the
+users named in the second and later arguments to the alias named in
+the first argument.
+.ip chdir
+.SF c
+Changes the user's working directory to that specified, if given.  If
+no directory is given, then changes to the user's login directory.
+.ip delete
+.SF d
+Takes a list of messages as argument and marks them all as deleted.
+Deleted messages will not be saved in
+.i mbox ,
+nor will they be available for most other commands.  Default messages may
+not be deleted already.
+.ip dp
+.SF dp
+Deletes the current message and prints the next message.  If there is no
+next message, types out
+.q "At EOF."
+.ip dt
+.SF dt
+Same as
+.b dp .
+.ip edit
+.SF e
+Takes a list of messages and points the text editor at each one in
+turn.  On return from the editor, the message is read back in.  The default
+message for
+.b edit
+may not be saved or deleted.
+.ip exit
+.SF ex
+Effects an immediate return to the Shell without modifying
+the user's system mailbox, his
+.i mbox
+file, or his edit file in
+.b \-f .
+.ip from
+.SF f
+Takes a list of messages and prints their message headers.  The default
+message is neither saved nor deleted.
+.ip headers
+.SF h
+Lists the current range of headers, which is an 18 message group.  If
+the 
+.q +
+argument is given, then the next 18 message group is printed, and
+if the 
+.q \-
+argument is given, the previous 18 message group is printed.
+.ip help
+.SF hel
+A synonym for ?
+.ip hold
+.SF ho
+Takes a message list and marks each message therein to be saved in the
+user's system mailbox instead of in
+.i mbox.
+Does not override the
+.b delete
+command.  The default message must not be deleted.
+.ip list
+.SF l
+The
+.b list
+command lists all of the available user commands in the order
+that the command processor sees them.  It takes no arguments.
+.ip mail
+.SF m
+Takes as argument login names and distribution group names
+and sends mail to those people.  Tilde escapes work in
+.b mail.
+.ip next
+.SF n
+Goes to the next message in sequence and types it.  If a message
+list is given, then
+.b next
+goes to the first message in the message list.
+.ip preserve
+.SF pre
+A synonym for
+.b hold.
+.ip print
+.SF p
+Takes a message list and types out each message on the user's terminal.
+The default message must not be deleted.
+.ip quit
+.SF q
+Terminates the Mail session, saving all undeleted, unsaved messages
+in the user's
+.i mbox
+file in his login directory, preserving all messages marked with
+.b hold
+or
+.b preserve
+in his system mailbox, and removing all other messages from his
+system mailbox.  If mail has arrived during the Mail session,
+the message \*(lqYou have new mail\*(rq is typed.  If executing
+while editing a mailbox file with the
+.b \-f
+flag, then the edit file is rewritten.  A return to the Shell is
+effected, unless the rewrite of edit file fails, in which case
+the user can escape with the
+.b exit
+command.
+.ip reply
+.SF r
+Takes a message list and sends mail to each message author
+just like the
+.b mail
+command.  The default message must not be deleted.
+.ip respond
+.SF r
+A synonym for
+.b reply .
+.ip save
+.SF s
+Takes a message list and a filename and appends each message in turn to
+the end of the file.  The filename in quotes, followed by the line count
+and character count is echoed on the user's terminal.  The default message
+for
+.b save
+may not be saved or deleted.
+.ip set
+.SF se
+With no arguments, prints all variable values.  Otherwise, sets option.
+Arguments are of the form
+.q "option=value"
+or
+.q option.
+.ip shell
+.SF sh
+Invokes an interactive version of the shell.
+.ip size
+.SF si
+Takes a message list and prints out the size in characters of
+each message.  The default message for
+.b size
+must not be deleted.
+.ip top
+.SF to
+Takes a message list and prints the top so many lines.  The number of lines
+printed is controlled by the variable
+.q toplines
+and defaults to five.
+.ip type
+.SF t
+A synonym for
+.b print .
+.ip unalias
+.SF una
+Takes a list of names defined by
+.b alias
+commands and discards the remembered groups of users.  The group names
+no longer have any significance.
+.ip undelete
+.SF u
+Takes a message list and marks each one as
+.i not
+being deleted.  Each message
+in the list must already be deleted.  The default message must be deleted.
+.ip unset
+.SF uns
+Takes a list of option names and discards their remembered values;
+opposite of
+.b set .
+.ip visual
+.SF v
+Takes a message list and invokes the display editor on each one.
+.ip write
+.SF w
+A synonym for
+.b save .
+.ip xit
+.SF x
+A synonym for
+.b exit .
+.pp
+Recall that tilde escapes are used when composing messages to perform
+special functions.  Tilde escapes are only recognized at the beginning
+of lines.  The name
+.q tilde\ escape
+is somewhat of a misnomer since the actual escape character can be set
+by the option
+.q escape.
+.pp
+Here is a summary of the tilde escapes:
+.nr ii 16n
+.ip ~!command
+Execute the indicated shell command, then return to the message.
+.ip "~c name ..."
+Add the given names to the list of carbon copy recipients.
+.ip ~d
+Read the file
+.q dead.letter
+from your home directory into the message.
+.ip ~e
+Invoke the text editor on the message collected so far.  After the
+editing session is finished, you may continue appending text to the
+message.
+.ip ~h
+Edit the message header fields by typing each one in turn and allowing the
+user to append text to the end or modify the field by using the current
+terminal erase and kill characters.
+.ip "~m messages"
+Read the named messages into the message being sent, shifted right one
+tab.  If no messages are specified, read the current message.
+.ip ~p
+Print out the message collected so far, prefaced by the message header
+fields.
+.ip ~q
+Abort the message being sent, copying the message to
+.q "dead.letter"
+in your home directory if
+.q save
+is set.
+.ip "~r filename"
+Read the named file into the message.
+.ip "~s string"
+Cause the named string to become the current subject field.
+.ip "~t name ..."
+Add the given names to the direct recipient list.
+.ip "~v"
+Invoke an alternate editor (defined by the VISUAL option)
+on the message collected so far.  Usually, the alternate editor will be a
+visual editor.  After you quit the editor, you may resume appending
+text to the end of your message.
+.ip "~w filename"
+Write the message onto the named file.
+.ip "~|command"
+Pipe the message through the command as a filter.  If the command
+gives no output or terminates abnormally, retain the original text
+of the message.
+.ip "~~string"
+Insert the string of text in the message prefaced by a single ~.
+If you have changed the escape character, then you should double
+.i that
+character in order to send it.
+.pp
+Options are controlled via the
+.b set
+and
+.b unset
+commands.  Options may be either binary, in which case it is only
+significant to see whether they are set or not, or string, in which
+case it's actual value is of interest.
+.pp
+The binary options include the following:
+.ip append
+Causes messages saved in
+.i mbox
+to be appended to the end rather than prepended.
+.ip ask
+Causes Mail to prompt you for the subject of each message you send.
+If you respond with simply a newline, no subject field will be sent.
+.ip askcc
+Causes you to be prompted for additional carbon copy recipients at the
+end of each message.  Responding with a newline indicates your
+satisfaction with the current list.
+.ip autoprint
+Causes the
+.b delete
+command to behave like
+.b dp
+\*- thus, after deleting a message, the next one will be typed
+automatically.
+.ip ignore
+Causes interrupt signals from your terminal to be ignored and echoed
+as @'s.
+.ip metoo
+Usually, when a group is expanded that contains the sender,
+the sender is removed from the expansion.  Setting this option causes
+the sender to be included in the group.
+.ip quiet
+Suppresses the printing of the version when Mail is first invoked.
+.ip save
+Causes the message collected prior to a \s-2RUBOUT\s0 to be saved
+on the file
+.q dead.letter
+in your home directory on receipt of the \s-2RUBOUT\s0.  Also causes
+the message to be so saved in the same fashion for ~q.
+.pp
+The following options have string values:
+.ip EDITOR
+Pathname of the text editor to use in the
+.b edit
+command and ~e escape.  If not defined, then a default editor is used.
+.ip SHELL
+Pathname of the shell to use in the
+.rb !
+command and the ~! escape.  A default shell is used if this option
+is not defined.
+.ip VISUAL
+Pathname of the text editor to use in the
+.b visual
+command
+and ~v escape.
+.ip escape
+If defined, the first character of this option gives the character to
+use in the place of ~ to denote escapes.
+.ip record
+If defined, gives the pathname of the file used to record all outgoing
+mail.  If not defined, then outgoing mail is not so saved.
+.ip toplines
+If defined, gives the number of lines of a message to be printed out
+with the
+.b top
+command; normally, the first five lines are printed.
diff --git a/usr/doc/mail/mail8.nr b/usr/doc/mail/mail8.nr
new file mode 100644 (file)
index 0000000..ff6bed9
--- /dev/null
@@ -0,0 +1,6 @@
+.sh 1 Conclusion
+.pp
+I would like to acknowledge the suggestions and criticisms of Eric
+Allman, Ken Arnold, Bob Fabry, Richard Fateman, Bob Kridle,
+Doug Merritt, David Mosher, Eric Schmidt, Polly Siegel, Michael Ubell,
+and especially Bill Joy, who sneezed nearby; I caught the bug.
diff --git a/usr/doc/mail/makefile b/usr/doc/mail/makefile
new file mode 100644 (file)
index 0000000..b446eb0
--- /dev/null
@@ -0,0 +1,10 @@
+
+vpr:
+       /bin/csh /usr/ucb/vtroff -me mail?.nr
+
+lpr:
+       nroff -me -Tlpr mail?.nr | lpr
+
+typeset:
+       /usr/ucb/nettroff -me mail?.nr
+       /usr/ucb/nettroff -me addenda.nr
diff --git a/usr/doc/memacros/intro.nr b/usr/doc/memacros/intro.nr
new file mode 100644 (file)
index 0000000..19e9e06
--- /dev/null
@@ -0,0 +1,2214 @@
+.nr si 3n
+.he 'USING NROFF AND \-ME''%'
+.ds U \s-1UNIX\s0
+.ds N \s-1NROFF\s0
+.ds T \s-1TROFF\s0
+.+c
+.(l C
+.sz 14
+.b "WRITING PAPERS WITH NROFF USING \-ME"
+.sz
+.sp 2
+.ul
+Eric P. Allman
+.sp
+Electronics Research Laboratory
+University of California, Berkeley
+Berkeley, California  94720
+.)l
+.sp 4
+.pp
+This document describes
+the text processing facilities
+available on the \*U\(dg
+.(f
+\(dg\*U, \*N, and \*T are Trademarks
+of Bell Laboratories
+.)f
+operating system
+via \*N\(dg and the
+\-me
+macro package.
+It is assumed
+that the reader
+already is generally familiar
+with the \*U operating system
+and a text editor
+such as
+.b ex .
+This is intended to be a casual introduction,
+and
+as such not all material is covered.
+In particular,
+many variations and additional features
+of the \-me macro package
+are not explained.
+For a complete discussion of this
+and other issues,
+see
+.ul
+The \-me Reference Manual
+and
+.ul
+The \*N/\*T Reference Manual.
+.pp
+\*N, a computer program
+that runs on the \*U operating system,
+reads an input file
+prepared by the user
+and outputs a formatted paper
+suitable for publication or framing.
+The input consists of
+.i text ,
+or words to be printed,
+and
+.i requests ,
+which give instructions
+to the \*N program
+telling how to format the printed copy.
+.pp
+Section 1
+describes the basics
+of text processing.
+Section 2
+describes the basic requests.
+Section 3
+introduces displays.
+Annotations,
+such as footnotes,
+are handled in
+section 4.
+The more complex requests
+which are not discussed in section 2
+are covered in section 5.
+Finally,
+section 6
+discusses things you will need
+to know
+if you want to typeset documents.
+If you are a novice,
+you probably won't want to read beyond section 4
+until you have tried some of the basic features out.
+.pp
+When you have your raw text ready,
+call the \*N formatter by typing
+as a request to the \*U shell:
+.(b
+nroff \-me \-T\c
+.i "type files"
+.)b
+where
+.i type
+describes the type of terminal
+you are outputting to.
+Common values are
+.b dtc
+for a DTC 300s
+(daisy-wheel type)
+printer and
+.b lpr
+for the line printer.
+If the
+.b \-T
+flag is omitted,
+a
+.q "lowest common denominator"
+terminal is assumed;
+this is good for previewing output
+on most terminals.
+A complete description of options
+to the \*N command can be found in
+.ul
+The \*N/\*T Reference Manual.
+.pp
+The word
+.i argument
+is used in this manual
+to mean a word or number
+which appears on the same line
+as a request
+which modifies the meaning
+of that request.
+For example,
+the request
+.(b
+\&.sp
+.)b
+spaces one line,
+but
+.(b
+\&.sp 4
+.)b
+spaces four lines.
+The number
+.b 4
+is an
+.i argument
+to the
+.b .sp
+request
+which says to space four lines
+instead of one.
+Arguments are separated from the request
+and from each other
+by spaces.
+.sh 1 "Basics of Text Processing"
+.pp
+The primary function
+of \*N
+is to
+.i collect
+words from input lines,
+.i fill
+output lines with those words,
+.i justify
+the right hand margin by inserting extra spaces
+in the line,
+and output the result.
+For example,
+the input:
+.(b
+Now is the time
+for all good men
+to come to the aid
+of their party.
+Four score and seven
+years ago,...
+.)b
+will be read,
+packed onto output lines,
+and justified
+to produce:
+.(b F
+Now is the time
+for all good men
+to come to the aid
+of their party.
+Four score and seven
+years ago,...
+.)b
+Sometimes you may want to start a new output line
+even though the line you are on
+is not yet full;
+for example,
+at the end of a paragraph.
+To do this
+you can cause a
+.i break ,
+which
+starts a new output line.
+Some requests
+cause a break automatically,
+as do blank input lines
+and input lines beginning with a space.
+.pp
+Not all input lines
+are text to be formatted.
+Some of the input lines
+are
+.i requests
+which describe
+how to format the text.
+Requests always have a period
+or an apostrophe
+(\c
+.q "\|\(aa\|" )
+as the first character
+of the input line.
+.pp
+The text formatter
+also does more complex things,
+such as automatically numbering pages,
+skipping over page folds,
+putting footnotes in the correct place,
+and so forth.
+.pp
+I can offer you a few hints
+for preparing text
+for input to \*N.
+First,
+keep the input lines short.
+Short input lines are easier to edit,
+and \*N will pack words onto longer lines
+for you anyhow.
+In keeping with this,
+it is helpful
+to begin a new line
+after every period,
+comma,
+or phrase,
+since common corrections
+are to add or delete sentences
+or phrases.
+Second,
+do not put spaces at the end of lines,
+since this can sometimes confuse the \*N
+processor.
+Third,
+do not hyphenate words at the end of lines
+(except words that should have hyphens in them,
+such as
+.q mother-in-law );
+\*N is smart enough to hyphenate words
+for you as needed,
+but is not smart enough
+to take hyphens out
+and join a word back together.
+Also,
+words such as
+.q mother-in-law
+should not be broken
+over a line,
+since then you will get a space
+where not wanted,
+such as
+.tr @-
+.nh
+.q "mother@\ in@law" .
+.br
+.tr @@
+.hy 14
+.sh 1 "Basic Requests"
+.sh 2 "Paragraphs"
+.pp
+Paragraphs are begun
+by using the
+.b .pp
+request.
+For example,
+the input:
+.(b
+\&.pp
+Now is the time for all good men
+to come to the aid of their party.
+Four score and seven years ago,...
+.)b
+produces a blank line
+followed by an indented first line.
+The result is:
+.(b F
+.ti +\n(piu
+Now is the time for all good men
+to come to the aid of their party.
+Four score and seven years ago,...
+.)b
+.pp
+Notice that the sentences
+of the paragraphs
+.i "must not"
+begin with a space,
+since blank lines
+and lines begining with spaces
+cause a break.
+For example,
+if I had typed:
+.(b
+\&.pp
+Now is the time for all good men
+      to come to the aid of their party.
+Four score and seven years ago,...
+.)b
+The output would be:
+.(b F
+.ti +\n(piu
+Now is the time for all good men
+      to come to the aid of their party.
+Four score and seven years ago,...
+.)b
+A new line begins after the word
+.q men
+because the second line began with a space character.
+.pp
+There are many
+fancier
+types of paragraphs,
+which will be described later.
+.sh 2 "Headers and Footers"
+.pp
+Arbitrary headers and footers
+can be put
+at the top and bottom
+of every page.
+Two requests
+of the form
+.b .he \ \c
+.i title
+and
+.b .fo \ \c
+.i title
+define the titles to put at the head and the foot
+of every page,
+respectively.
+The titles are called
+.i three-part
+titles,
+that is,
+there is a left-justified part,
+a centered part,
+and a right-justified part.
+To separate these three parts
+the first character of
+.i title
+(whatever it may be)
+is used as a delimiter.
+Any character may be used,
+but
+backslash
+and double quote marks
+should be avoided.
+The percent sign
+is replaced by the current page number
+whenever found in the title.
+For example,
+the input:
+.(b
+\&.he \(aa\(aa%\(aa\(aa
+\&.fo \(aaJane Jones\(aa\(aaMy Book\(aa
+.)b
+results in the page number
+centered at the top
+of each page,
+.q "Jane Jones"
+in the lower left corner,
+and
+.q "My Book"
+in the lower right corner.
+.sh 2 "Double Spacing"
+.pp
+.ls 2
+\*N will double space output text automatically if you
+use the request
+.b ".ls\ 2" ,
+as is done in this section.
+You can revert to single spaced mode
+by typing
+.b ".ls\ 1" .
+.ls 1
+.sh 2 "Page Layout"
+.pp
+A number of requests allow
+you to change the way the printed copy looks,
+sometimes called the
+.i layout
+of the output page.
+Most of these requests adjust the placing
+of
+.q "white space"
+(blank lines or spaces).
+In these explanations,
+characters in italics
+should be replaced with values you wish to use;
+bold characters
+represent characters which should actually be typed.
+.pp
+The
+.b .bp
+request
+starts a new page.
+.pp
+The request
+.b .sp \ \c
+.i N
+leaves
+.i N
+lines of blank space.
+.i N
+can be omitted
+(meaning skip a single line)
+or can be of the form
+.i N \^\c
+.b i
+(for
+.i N
+inches)
+or
+.i N \^\c
+.b c
+(for
+.i N
+centimeters).
+For example, the input:
+.(b
+\&.sp 1.5i
+My thoughts on the subject
+\&.sp
+.)b
+leaves one and a half inches of space,
+followed by the line
+.q "My thoughts on the subject" ,
+followed by a single blank line.
+.pp
+The
+.b .in \ \c
+.i +N
+request
+changes the amount of white space
+on the left of the page
+(the
+.i indent ).
+The argument
+.i N
+can be of the form
+.b + \c
+.i N
+(meaning leave
+.i N
+spaces more than you are already leaving),
+.b \- \c
+.i N
+(meaning leave less than you do now),
+or just
+.i N
+(meaning leave exactly
+.i N
+spaces).
+.i N
+can be of the form
+.i N \^\c
+.b i
+or
+.i N \^\c
+.b c
+also.
+For example,
+the input:
+.(b
+initial text
+\&.in 5
+some text
+\&.in +1i
+more text
+\&.in \-2c
+final text
+.)b
+produces
+.q "some text"
+indented exactly five spaces
+from the left margin,
+.q "more text"
+indented five spaces
+plus one inch
+from the left margin
+(fifteen spaces
+on a pica typewriter),
+and
+.q "final text"
+indented five spaces
+plus one inch
+minus two centimeters
+from the margin.
+That is,
+the output is:
+.(b
+initial text
+.in +5
+some text
+.in +1i
+more text
+.in -2c
+final text
+.)b
+.pp
+The
+.b .ti \ \c
+.i +N
+(temporary indent)
+request is used like
+.b .in \ \c
+.i +N
+when the indent
+should apply to one line only,
+after which it should revert
+to the previous indent.
+For example,
+the input:
+.(b
+\&.in 1i
+\&.ti 0
+Ware, James R.  The Best of Confucius,
+Halcyon House, 1950.
+An excellent book containing translations of
+most of Confucius\(aa most delightful sayings.
+A definite must for anyone interested in the early foundations
+of Chinese philosophy.
+.)b
+produces:
+.in 1i+\n($iu
+.ti \n($iu
+Ware, James R.  The Best of Confucius,
+Halcyon House, 1950.
+An excellent book containing translations of
+most of Confucius' most delightful sayings.
+A definite must for anyone interested in the early foundations
+of Chinese philosophy.
+.pp
+Text lines can be centered
+by using the
+.b .ce
+request.
+The line after the
+.b .ce
+is centered
+(horizontally)
+on the page.
+To center more than one line,
+use
+.b .ce \ \c
+.i N
+(where
+.i N
+is the number of lines to center),
+followed by the
+.i N
+lines.
+If you want to center many lines
+but don't want to count them,
+type:
+.(b
+\&.ce 1000
+lines to center
+\&.ce 0
+.)b
+The
+.b ".ce\ 0"
+request tells \*N to center zero more lines,
+in other words,
+stop centering.
+.pp
+All of these requests
+cause a break;
+that is,
+they always start
+a new line.
+If you want to start a new line
+without performing any other action,
+use
+.b .br .
+.sh 2 "Underlining"
+.pp
+Text can be underlined
+using the
+.b .ul
+request.
+The
+.b .ul
+request
+causes the next input line
+to be underlined when output.
+You can underline multiple lines
+by stating a count of
+.i input
+lines to underline,
+followed by those lines
+(as with the
+.b .ce
+request).
+For example,
+the input:
+.(b
+\&.ul 2
+Notice that these two input lines
+are underlined.
+.)b
+will underline those eight words in \*N.
+(In \*T they will be set in italics.)
+.sh 1 "Displays"
+.pp
+Displays are sections of text
+to be set off
+from the body of the paper.
+Major quotes,
+tables,
+and figures
+are types of displays,
+as are all the examples
+used in this document.
+All displays
+except centered blocks
+are output
+single spaced.
+.sh 2 "Major Quotes"
+.pp
+Major quotes
+are quotes which are several lines long,
+and hence are set in from the rest
+of the text
+without quote marks
+around them.
+These can be generated
+using the commmands
+.b .(q
+and
+.b .)q
+to surround the quote.
+For example,
+the input:
+.(b
+As Weizenbaum points out:
+\&.(q
+It is said that to explain is to explain away.
+This maxim is nowhere so well fulfilled
+as in the areas of computer programming,...
+\&.)q
+.)b
+generates as output:
+.lp
+As Weizenbaum points out:
+.(q
+It is said that to explain is to explain away.
+This maxim is nowhere so well fulfilled
+as in the areas of computer programming,...
+.)q
+.sh 2 "Lists"
+.pp
+A
+.i list
+is an indented,
+single spaced,
+unfilled display.
+Lists should be used
+when the material to be printed
+should not be filled and justified
+like normal text,
+such as columns of figures
+or the examples used in this paper.
+Lists are surrounded
+by the requests
+.b .(l
+and
+.b .)l .
+For example,
+type:
+.(b
+Alternatives to avoid deadlock are:
+\&.(l
+Lock in a specified order
+Detect deadlock and back out one process
+Lock all resources needed before proceeding
+\&.)l
+.)b
+will produce:
+.br
+Alternatives to avoid deadlock are:
+.(l
+Lock in a specified order
+Detect deadlock and back out one process
+Lock all resources needed before proceeding
+.)l
+.sh 2 "Keeps"
+.pp
+A
+.i keep
+is a display of lines
+which are kept on a single page
+if possible.
+An example of where you would use a keep
+might be a diagram.
+Keeps differ from lists
+in that lists may be broken
+over a page boundary
+whereas keeps will not.
+.pp
+Blocks are the basic kind of keep.
+They begin with the request
+.b .(b
+and end with the request
+.b .)b .
+If there is not room on the current page
+for everything in the block,
+a new page is begun.
+This has the unpleasant effect
+of leaving blank space
+at the bottom of the page.
+When this is not appropriate,
+you can use the alternative,
+called
+.i "floating keeps" .
+.pp
+.i "Floating keeps"
+move relative to the text.
+Hence,
+they are good for things
+which will be referred to
+by name,
+such as
+.q "See figure 3" .
+A floating keep will appear
+at the bottom of the current page
+if it will fit;
+otherwise,
+it will appear at the top
+of the next page.
+Floating keeps begin with the line
+.b .(z
+and end with the line
+.b .)z .
+For an example of a floating keep,
+see figure 1.
+.(z
+.in 1i
+.xl -1i
+.hl
+\&.(z
+\&.hl
+Text of keep to be floated.
+\&.sp
+\&.ce
+Figure 1.  Example of a Floating Keep.
+\&.hl
+\&.)z
+.sp
+.ce
+Figure 1.  Example of a Floating Keep.
+.hl
+.)z
+The
+.b .hl
+request is used
+to draw a horizontal line
+so that the figure
+stands out from the text.
+.sh 2 "Fancier Displays"
+.pp
+Keeps and lists are normally collected in
+.i nofill
+mode,
+so that they are good for tables and such.
+If you want a display
+in fill mode
+(for text),
+type
+.b ".(l\ F"
+(Throughout this section,
+comments applied to
+.b .(l
+also apply to
+.b .(b
+and
+.b .(z ).
+This kind of display
+will be indented from both margins.
+For example,
+the input:
+.(b
+\&.(l F
+And now boys and girls,
+a newer, bigger, better toy than ever before!
+Be the first on your block to have your own computer!
+Yes kids, you too can have one of these modern
+data processing devices.
+You too can produce beautifully formatted papers
+without even batting an eye!
+\&.)l
+.)b
+will be output as:
+.(b F
+And now boys and girls,
+a newer, bigger, better toy than ever before!
+Be the first on your block to have your own computer!
+Yes kids, you too can have one of these modern
+data processing devices.
+You too can produce beautifully formatted papers
+without even batting an eye!
+.)b
+.pp
+Lists and blocks are also normally indented
+(floating keeps are normally left justified).
+To get a left-justified list,
+type
+.b ".(l\ L" .
+To get a list centered
+line-for-line,
+type
+.b ".(l C" .
+For example,
+to get a filled,
+left justified list, enter:
+.(b
+\&.(l L F
+text of block
+\&.)l
+.)b
+The input:
+.(b
+\&.(l
+first line of unfilled display
+more lines
+\&.)l
+.)b
+produces the indented text:
+.(b
+first line of unfilled display
+more lines
+.)b
+Typing the character
+.b L
+after the
+.b .(l
+request produces the left justified result:
+.(b L
+first line of unfilled display
+more lines
+.)b
+Using
+.b C
+instead of
+.b L
+produces the line-at-a-time centered output:
+.(b C
+first line of unfilled display
+more lines
+.)b
+.pp
+Sometimes it may be
+that you want to center several lines
+as a group,
+rather than centering them
+one line at a time.
+To do this
+use centered blocks,
+which are surrounded by the requests
+.b .(c
+and
+.b .)c .
+All the lines are centered as a unit,
+such that the longest line is centered
+and the rest are
+lined up around that line.
+Notice that lines
+do not move
+relative to each other
+using centered blocks,
+whereas they do
+using the
+.b C
+argument to keeps.
+.pp
+Centered blocks are
+.i not
+keeps,
+and may be used
+in conjunction
+with keeps.
+For example,
+to center a group of lines
+as a unit
+and keep them
+on one page,
+use:
+.(b
+\&.(b L
+\&.(c
+first line of unfilled display
+more lines
+\&.)c
+\&.)b
+.)b
+to produce:
+.(b L
+.(c
+first line of unfilled display
+more lines
+.)c
+.)b
+If the block requests
+(\c
+.b .(b
+and
+.b .)b )
+had been omitted
+the result would have been the same,
+but with no guarantee
+that the lines of the centered block
+would have all been on one page.
+Note the use of the
+.b L
+argument to
+.b .(b ;
+this causes the centered block
+to center within the entire line
+rather than within the line
+minus the indent.
+Also,
+the center requests
+must
+be nested
+.i inside
+the keep requests.
+.sh 1 "Annotations"
+.pp
+There are a number of requests
+to save text
+for later printing.
+.i Footnotes
+are printed at the bottom of the current page.
+.i "Delayed text"
+is intended to be a variant form
+of footnote;
+the text is printed only 
+when explicitly called for,
+such as at the end of each chapter.
+.i Indexes
+are a type of delayed text
+having a tag
+(usually the page number)
+attached to each entry
+after a row of dots.
+Indexes are also saved
+until called for explicitly.
+.sh 2 "Footnotes"
+.pp
+Footnotes begin with the request
+.b .(f
+and end with the request
+.b .)f .
+The current footnote number is maintained
+automatically,
+and can be used by typing \e**,
+to produce a footnote number\**.
+.(f
+\**Like this.
+.)f
+The number is automatically incremented
+after every footnote.
+For example,
+the input:
+.(b
+\&.(q
+A man who is not upright
+and at the same time is presumptuous;
+one who is not diligent and at the same time is ignorant;
+one who is untruthful and at the same time is incompetent;
+such men I do not count among acquaintances.\e**
+\&.(f
+\e**James R. Ware,
+\&.ul
+The Best of Confucius,
+Halcyon House, 1950.
+Page 77.
+\&.)f
+\&.)q
+.)b
+generates the result:
+.(q
+A man who is not upright
+and at the same time is presumptuous;
+one who is not diligent and at the same time is ignorant;
+one who is untruthful and at the same time is incompetent;
+such men I do not count among acquaintances.\**
+.(f
+\**James R. Ware,
+.ul
+The Best of Confucius,
+Halcyon House, 1950.
+Page 77.
+.)f
+.)q
+It is important
+that the footnote
+appears
+.i inside
+the quote,
+so that you can be sure
+that the footnote
+will appear
+on the same page
+as the quote.
+.sh 2 "Delayed Text"
+.pp
+Delayed text
+is very similar to a footnote
+except that it is printed
+when called for explicitly.
+This allows a list of
+references to
+appear
+(for example)
+at the end of each chapter,
+as is the convention in some disciplines.
+Use
+.b \e*#
+on delayed text
+instead of
+.b \e**
+as on footnotes.
+.pp
+If you are using delayed text
+as your standard reference mechanism,
+you can still use footnotes,
+except that you may want to reference them
+with special characters*
+.(f
+*Such as an asterisk.
+.)f
+rather than numbers.
+.sh 2 "Indexes"
+.pp
+An
+.q index
+(actually more like a table of contents,
+since the entries are not sorted alphabetically)
+resembles delayed text,
+in that it is saved until called for.
+However,
+each entry has the page number
+(or some other tag)
+appended to the last line
+of the index entry
+after a row of dots.
+.pp
+Index entries begin with the request
+.b .(x
+and end with
+.b .)x .
+The
+.b .)x
+request may have a argument,
+which is the value to print
+as the
+.q "page number" .
+It defaults to the current page number.
+If the page number given is an underscore
+(\c
+.q _ )
+no page number
+or line of dots
+is printed at all.
+To get the line of dots
+without a page number,
+type
+.b ".)x """"" ,
+which specifies an explicitly null page number.
+.pp
+The
+.b .xp
+request prints the index.
+.pp
+For example,
+the input:
+.(b
+\&.(x
+Sealing wax
+\&.)x
+\&.(x
+Cabbages and kings
+\&.)x _
+\&.(x
+Why the sea is boiling hot
+\&.)x 2.5a
+\&.(x
+Whether pigs have wings
+\&.)x ""
+\&.(x
+This is a terribly long index entry, such as might be used
+for a list of illustrations, tables, or figures; I expect it to
+take at least two lines.
+\&.)x
+\&.xp
+.)b
+generates:
+.(x
+Sealing wax
+.)x
+.(x
+Cabbages and kings
+.)x _
+.(x
+Why the sea is boiling hot
+.)x 2.5a
+.(x
+Whether pigs have wings
+.)x ""
+.(x
+This is a terribly long index entry, such as might be used
+for a list of illustrations, tables, or figures; I expect it to
+take at least two lines.
+.)x
+.xp
+.pp
+The
+.b .(x
+request may have a single character
+argument,
+specifying the
+.q name
+of the index;
+the normal index is
+.b x .
+Thus,
+several
+.q indicies
+may be maintained simultaneously
+(such as a list of tables, table of contents, etc.).
+.pp
+Notice that the index must be printed
+at the
+.i end
+of the paper,
+rather than at the beginning
+where it will probably appear
+(as a table of contents);
+the pages may have to be physically rearranged
+after printing.
+.sh 1 "Fancier Features"
+.pp
+A large number of fancier requests
+exist,
+notably requests to provide other sorts of paragraphs,
+numbered sections of the form
+.b 1.2.3
+(such as used in this document),
+and multicolumn output.
+.sh 2 "More Paragraphs"
+.pp
+Paragraphs generally start with
+a blank line
+and with the first line
+indented.
+It is possible to get
+left-justified block-style paragraphs
+by using
+.b .lp
+instead of
+.b .pp ,
+as demonstrated by the next paragraph.
+.lp
+Sometimes you want to use paragraphs
+that have the
+.i body
+indented,
+and the first line
+exdented
+(opposite of indented)
+with a label.
+This can be done with the
+.b .ip
+request.
+A word specified on the same line as
+.b .ip
+is printed in the margin,
+and the body is lined up
+at a prespecified position
+(normally five spaces).
+For example,
+the input:
+.(b
+\&.ip one
+This is the first paragraph.
+Notice how the first line
+of the resulting paragraph lines up
+with the other lines in the paragraph.
+\&.ip two
+And here we are at the second paragraph already.
+You may notice that the argument to \c
+.b .ip
+appears
+in the margin.
+\&.lp
+We can continue text...
+.)b
+produces as output:
+.ip one
+This is the first paragraph.
+Notice how the first line of the resulting paragraph lines up
+with the other lines in the paragraph.
+.ip two
+And here we are at the second paragraph already.
+You may notice that the argument to
+.b .ip
+appears
+in the margin.
+.lp
+We can continue text without starting a new indented
+paragraph
+by using the
+.b .lp
+request.
+.pp
+If you have spaces in the label of a
+.b .ip
+request,
+you must use an
+.q "unpaddable space"
+instead of a regular space.
+This is typed as a backslash character
+(\c
+.q \e )
+followed by a space.
+For example,
+to print the label
+.q "Part 1" ,
+enter:
+.(b
+\&.ip "Part\e 1"
+.)b
+.pp
+If a label of an indented paragraph
+(that is, the argument to
+.b .ip )
+is longer than the space allocated for the label,
+.b .ip
+will begin a new line after the label.
+For example,
+the input:
+.(b
+\&.ip longlabel
+This paragraph had a long label.
+The first character of text on the first line
+will not line up with the text on second and subsequent lines,
+although they will line up with each other.
+.)b
+will produce:
+.ip longlabel
+This paragraph had a long label.
+The first character of text on the first line
+will not line up with the text on second and subsequent lines,
+although they will line up with each other.
+.pp
+It is possible to change the size of the label
+by using a second argument
+which is the size of the label.
+For example,
+the above example could be done correctly
+by saying:
+.(b
+\&.ip longlabel 10
+.)b
+which will make the paragraph indent
+10 spaces for this paragraph only.
+If you have many paragraphs to indent
+all the same amount,
+use the
+.i "number register"
+.b ii .
+For example, to leave one inch of space
+for the label,
+type:
+.(b
+\&.nr ii 1i
+.)b
+somewhere before the first call to
+.b .ip .
+Refer to the reference manual
+for more information.
+.pp
+If
+.b .ip
+is used
+with no argument at all
+no hanging tag will be printed.
+For example,
+the input:
+.(b
+\&.ip [a]
+This is the first paragraph of the example.
+We have seen this sort of example before.
+\&.ip
+This paragraph is lined up with the previous paragraph,
+but it has no tag in the margin.
+.)b
+produces as output:
+.ip [a]
+This is the first paragraph of the example.
+We have seen this sort of example before.
+.ip
+This paragraph is lined up with the previous paragraph,
+but it has no tag in the margin.
+.pp
+A special case of
+.b .ip
+is
+.b .np ,
+which automatically
+numbers paragraphs sequentially from 1.
+The numbering is reset at the next
+.b .pp ,
+.b .lp ,
+or
+.b .sh
+(to be described in the next section)
+request.
+For example,
+the input:
+.(b
+\&.np
+This is the first point.
+\&.np
+This is the second point.
+Points are just regular paragraphs
+which are given sequence numbers automatically
+by the .np request.
+\&.pp
+This paragraph will reset numbering by .np.
+\&.np
+For example,
+we have reverted to numbering from one now.
+.)b
+generates:
+.np
+This is the first point.
+.np
+This is the second point.
+Points are just regular paragraphs
+which are given sequence numbers automatically
+by the .np request.
+.pp
+This paragraph will reset numbering by .np.
+.np
+For example,
+we have reverted to numbering from one now.
+.sh 2 "Section Headings"
+.pp
+Section numbers
+(such as the ones used in this document)
+can be automatically generated
+using the
+.b .sh
+request.
+You must tell
+.b .sh
+the
+.i depth
+of the section number
+and a section title.
+The depth
+specifies how many numbers
+are to appear
+(separated by decimal points)
+in the section number.
+For example,
+the section number
+.b 4.2.5
+has a depth of three.
+.pp
+Section numbers
+are incremented
+in a fairly intuitive fashion.
+If you add a number
+(increase the depth),
+the new number starts out
+at one.
+If you subtract section numbers
+(or keep the same number)
+the final number is incremented.
+For example,
+the input:
+.(b
+\&.sh 1 "The Preprocessor"
+\&.sh 2 "Basic Concepts"
+\&.sh 2 "Control Inputs"
+\&.sh 3
+\&.sh 3
+\&.sh 1 "Code Generation"
+\&.sh 3
+.)b
+produces as output the result:
+.(b
+.b
+1.  The Preprocessor
+1.1.  Basic Concepts
+1.2.  Control Inputs
+1.2.1.
+1.2.2.
+2.  Code Generation
+2.1.1.
+.)b
+.pp
+You can specify the section number to begin
+by placing the section number after the section title,
+using spaces instead of dots.
+For example,
+the request:
+.(b
+\&.sh 3 "Another section" 7 3 4
+.)b
+will begin the section numbered
+.b 7.3.4 ;
+all subsequent
+.b .sh
+requests will number relative to this number.
+.pp
+There are more complex features
+which will cause each section to be indented
+proportionally to the depth of the section.
+For example, if you enter:
+.(b
+\&.nr si \c
+.i N
+.)b
+each section will be indented by an amount
+.i N .
+.i N
+must have a scaling factor attached,
+that is, it must be of the form
+.i Nx ,
+where
+.i x
+is a character telling what units
+.i N
+is in.
+Common values for
+.i x
+are
+.b i
+for inches,
+.b c
+for centimeters,
+and
+.b n
+for
+.i ens
+(the width of a single character).
+For example,
+to indent each section
+one-half inch,
+type:
+.(b
+\&.nr si 0.5i
+.)b
+After this,
+sections will be indented by
+one-half inch
+per level of depth in the section number.
+For example,
+this document was produced
+using the request
+.(b
+\&.nr si 3n
+.)b
+at the beginning of the input file,
+giving three spaces of indent
+per section depth.
+.pp
+Section headers without automatically generated numbers
+can be done using:
+.(b
+\&.uh "Title"
+.)b
+which will do a section heading,
+but will put no number on the section.
+.sh 2 "Parts of the Basic Paper"
+.pp
+There are some requests
+which assist in setting up
+papers.
+The
+.b .tp
+request
+initializes for a title page.
+There are no headers or footers
+on a title page,
+and unlike other pages
+you can space down
+and leave blank space
+at the top.
+For example,
+a typical title page might appear as:
+.(b
+\&.tp
+\&.sp 2i
+\&.(l C
+THE GROWTH OF TOENAILS
+IN UPPER PRIMATES
+\&.sp
+by
+\&.sp
+Frank N. Furter
+\&.)l
+\&.bp
+.)b
+.pp
+The request
+.b .th
+sets up the environment
+of the \*N processor
+to do a thesis,
+using the rules established at Berkeley.
+It defines the correct headers and footers
+(a page number in the upper right hand corner only),
+sets the margins correctly,
+and double spaces.
+.pp
+The
+.b .+c \ \c
+.i T
+request can be used
+to start chapters.
+Each chapter is automatically numbered
+from one,
+and a heading is printed at the top of each chapter
+with the chapter number
+and the chapter name
+.i T .
+For example,
+to begin a chapter called
+.q Conclusions ,
+use the request:
+.(b
+\&.+c "CONCLUSIONS"
+.)b
+which will produce,
+on a new page,
+the lines
+.(b C
+CHAPTER 5
+CONCLUSIONS
+.)b
+with appropriate spacing for a thesis.
+Also, the header is moved to the foot of the page
+on the first page of a chapter.
+Although the
+.b .+c
+request was not designed to work only with the
+.b .th
+request,
+it is tuned for the format acceptable
+for a PhD thesis
+at Berkeley.
+.pp
+If the
+title parameter
+.i T
+is omitted from the
+.b .+c
+request,
+the result is a chapter with no heading.
+This can also be used at the beginning
+of a paper;
+for example,
+.b .+c
+was used to generate page one
+of this document.
+.pp
+Although
+papers traditionally have the abstract,
+table of contents,
+and so forth at the front of the paper,
+it is more convenient to format
+and print them last
+when using \*N.
+This is so that index entries
+can be collected and then printed
+for the table of contents
+(or whatever).
+At the end of the paper,
+issue the
+.b ".++ P"
+request,
+which begins the preliminary part
+of the paper.
+After issuing this request,
+the
+.b .+c
+request will begin a preliminary section
+of the paper.
+Most notably,
+this prints the page number
+restarted from one
+in lower case Roman numbers.
+.b .+c
+may be used repeatedly
+to begin different parts of the
+front material
+for example,
+the abstract,
+the table of contents,
+acknowledgments,
+list of illustrations,
+etc.
+The request
+.b ".++ B"
+may also be used
+to begin the bibliographic section
+at the end of the paper.
+For example,
+the paper might appear
+as outlined in figure 2.
+(In this figure,
+comments begin with the sequence
+.b \e" .)
+.(z
+.hl
+.if t .in 0.5i
+.if t .ta 2i
+.if n .ta 3i
+\&.th  \e" set for thesis mode
+\&.fo \(aa\(aaDRAFT\(aa\(aa    \e" define footer for each page
+\&.tp  \e" begin title page
+\&.(l C        \e" center a large block
+THE GROWTH OF TOENAILS
+IN UPPER PRIMATES
+\&.sp
+by
+\&.sp
+Frank Furter
+\&.)l  \e" end centered part
+\&.+c INTRODUCTION     \e" begin chapter named "INTRODUCTION"
+\&.(x t        \e" make an entry into index `t'
+Introduction
+\&.)x  \e" end of index entry
+text of chapter one
+\&.+c "NEXT CHAPTER"   \e" begin another chapter
+\&.(x t        \e" enter into index `t' again
+Next Chapter
+\&.)x
+text of chapter two
+\&.+c CONCLUSIONS
+\&.(x t
+Conclusions
+\&.)x
+text of chapter three
+\&.++ B        \e" begin bibliographic information
+\&.+c BIBLIOGRAPHY     \e" begin another `chapter'
+\&.(x t
+Bibliography
+\&.)x
+text of bibliography
+\&.++ P        \e" begin preliminary material
+\&.+c "TABLE OF CONTENTS"
+\&.xp t        \e" print index `t' collected above
+\&.+c PREFACE  \e" begin another preliminary section
+text of preface
+.sp 2
+.in 0
+.ce
+Figure 2.  Outline of a Sample Paper
+.hl
+.)z
+.sh 2 "Equations and Tables"
+.pp
+Two special \*U programs exist
+to format special types of material.
+.b Eqn
+and
+.b neqn
+set equations
+for the phototypesetter
+and \*N respectively.
+.b Tbl
+arranges to print
+extremely pretty tables
+in a variety of formats.
+This document will only describe
+the embellishments
+to the standard features;
+consult the reference manuals
+for those processors
+for a description of their use.
+.pp
+The
+.b eqn
+and
+.b neqn
+programs are described fully
+in the document
+.ul
+Typesetting Mathematics \- Users' Guide
+by Brian W. Kernighan
+and Lorinda L. Cherry.
+Equations are centered,
+and are kept on one page.
+They are introduced by the
+.b .EQ
+request and terminated by the
+.b .EN
+request.
+.pp
+The
+.b .EQ
+request may take an
+equation number as an
+optional argument,
+which is printed vertically centered
+on the right hand side
+of the equation.
+If the equation becomes too long
+it should be split
+between two lines.
+To do this, type:
+.(b
+\&.EQ (eq 34)
+text of equation 34
+\&.EN C
+\&.EQ
+continuation of equation 34
+\&.EN
+.)b
+The
+.b C
+on the
+.b .EN
+request
+specifies that the equation
+will be continued.
+.pp
+The
+.b tbl
+program produces tables.
+It is fully described
+(including numerous examples)
+in the document
+.ul
+Tbl \- A Program to Format Tables
+by M. E. Lesk.
+Tables begin with the
+.b .TS
+request
+and end with the
+.b .TE
+request.
+Tables are normally kept on a single page.
+If you have a table which is too big
+to fit on a single page,
+so that you know it will extend
+to several pages,
+begin the table with the request
+.b ".TS\ H"
+and put the request
+.b .TH
+after the part of the table
+which you want
+duplicated at the top of every page
+that the table is printed on.
+For example, a table definition
+for a long table might look like:
+.ds TA \|\h'.4n'\v'-.2n'\s-4\zT\s0\v'.2n'\h'-.4n'\(ci\|
+.if n .ds TA \ \o'-T'\ \"
+.(b
+\&.TS H
+c s s
+n n n.
+THE TABLE TITLE
+\&.TH
+text of the table
+\&.TE
+.)b
+.pp
+.sh 2 "Two Column Output"
+.pp
+You can get two column output
+automatically
+by using the request
+.b .2c .
+This causes everything after it
+to be output in two-column form.
+The request
+.b .bc
+will start a new column;
+it differs from
+.b .bp
+in that
+.b .bp
+may leave a totally blank column
+when it starts a new page.
+To revert to single column output,
+use
+.b .1c .
+.sh 2 "Defining Macros"
+.pp
+A
+.i macro
+is a collection of requests and text
+which may be used
+by stating a simple request.
+Macros begin with the line
+.b ".de" \ \c
+.i xx
+(where
+.i xx
+is the name of the macro to be defined)
+and end with the line consisting of two dots.
+After defining the macro,
+stating the line
+.b . \c
+.i xx
+is the same as stating all the other lines.
+For example,
+to define a macro
+that spaces 3 lines
+and then centers the next input line,
+enter:
+.(b
+\&.de SS
+\&.sp 3
+\&.ce
+\&..
+.)b
+and use it by typing:
+.(b
+\&.SS
+\&Title Line
+(beginning of text)
+.)b
+.pp
+Macro names may be one or two characters.
+In order to avoid conflicts
+with names in \-me,
+always use upper case letters as names.
+The only names to avoid are
+.b TS ,
+.b TH ,
+.b TE ,
+.b EQ ,
+and
+.b EN .
+.sh 2 "Annotations Inside Keeps"
+.pp
+Sometimes you may want to put
+a footnote
+or index entry inside a keep.
+For example,
+if you want to maintain a
+.q "list of figures"
+you will want to do something like:
+.(b
+\&.(z
+\&.(c
+text of figure
+\&.)c
+\&.ce
+Figure 5.
+\&.(x f
+Figure 5
+\&.)x
+\&.)z
+.)b
+which you may hope
+will give you a figure
+with a label
+and an entry in the index
+.b f
+(presumably a list of figures index).
+Unfortunately,
+the
+index entry
+is read and interpreted
+when the keep is read,
+not when it is printed,
+so the page number in the index is likely to be wrong.
+The solution is to use the magic string
+.b \e!
+at the beginning of all the lines dealing with the index.
+In other words,
+you should use:
+.(b
+\&.(z
+\&.(c
+Text of figure
+\&.)c
+\&.ce
+Figure 5.
+\e!.(x f
+\e!Figure 5
+\e!.)x
+\&.)z
+.)b
+which will defer the processing of the index
+until the figure is output.
+This will guarantee
+that the page number in the index
+is correct.
+The same comments apply
+to
+blocks
+(with
+.b .(b
+and
+.b .)b )
+as well.
+.sh 1 "\*T and the Photosetter"
+.pp
+With a little care,
+you can prepare
+documents that
+will print nicely
+on either a regular terminal
+or when phototypeset
+using the \*T formatting program.
+.sh 2 "Fonts"
+.pp
+A
+.i font
+is a style of type.
+There are three fonts
+that are available simultaneously,
+Times Roman,
+Times Italic,
+and Times Bold,
+plus the special math font.
+The normal font is Roman.
+Text which would be underlined in \*N
+with the
+.b .ul
+request
+is set in italics
+in \*T.
+.pp
+There are ways of switching between fonts.
+The requests
+.b .r ,
+.b .i ,
+and
+.b .b
+switch to Roman,
+italic,
+and bold fonts respectively.
+You can set a single word
+in some font
+by typing (for example):
+.(b
+\&.i word
+.)b
+which will set
+.i word
+in italics
+but does not affect the surrounding text.
+In \*N,
+italic and bold text
+is underlined.
+.pp
+Notice that if you are setting more than one word
+in whatever font,
+you must surround that word with double quote marks
+(`\|"\|')
+so that it will appear to the \*N processor as a single word.
+The quote marks will not appear in the formatted text.
+If you do want a quote mark to appear,
+you should quote the entire string
+(even if a single word),
+and use
+.i two
+quote marks where you want one to appear.
+For example,
+if you want to produce the text:
+.(b
+.i """Master Control\|"""
+.)b
+in italics, you must type:
+.(b
+\&.i """Master Control\e|"""
+.)b
+The
+.b \e|
+produces a very narrow space
+so that the
+.q l
+does not overlap the quote sign in \*T,
+like this:
+.(b
+.i """Master Control"""
+.)b
+.pp
+There are also several
+.q pseudo-fonts
+available.
+The input:
+.(b
+\&.(b
+\&.u underlined
+\&.bi "bold italics"
+\&.bx "words in a box"
+\&.)b
+.)b
+generates
+.(b
+.u underlined
+.bi "bold italics"
+.bx "words in a box"
+.)b
+In \*N these all just underline
+the text.
+Notice that pseudo font requests
+set only the single parameter in the pseudo font;
+ordinary font requests will begin setting all text
+in the special font
+if you do not provide a parameter.
+No more than one word
+should appear
+with these three font requests
+in the middle of lines.
+This is because
+of the way \*T justifies text.
+For example,
+if you were to issue the requests:
+.(b
+\&.bi "some bold italics"
+and
+\&.bx "words in a box"
+.)b
+in the middle of a line
+\*T would produce
+.bi "some bold italics"
+and
+.bx "words in a box" ,\c
+.if t \p
+.if n \& \"
+.if t which I think you will agree does not look good.
+.if n which would look really lousy in \*T.
+.pp
+The second parameter
+of all font requests
+is set in the original font.
+For example,
+the font request:
+.(b
+\&.b bold face
+.)b
+generates
+.q bold
+in bold font,
+but sets
+.q face
+in the font of the surrounding text,
+resulting in:
+.(b
+.b bold face.
+.)b
+To set the two words
+.b bold
+and
+.b face
+both in
+.b "bold face" ,
+type:
+.(b
+\&.b "bold face"
+.)b
+.pp
+You can mix fonts in a word by using the
+special sequence
+.b \ec
+at the end of a line
+to indicate
+.q "continue text processing" ;
+this allows input lines
+to be joined together
+without a space inbetween them.
+For example, the input:
+.(b
+\&.u under \ec
+\&.i italics
+.)b
+generates
+.u under \c
+.i italics ,
+but if we had typed:
+.(b
+\&.u under
+\&.i italics
+.)b
+the result would have been
+.u under
+.i italics
+as two words.
+.sh 2 "Point Sizes"
+.pp
+The phototypesetter
+supports different sizes of type,
+measured in points.
+The default point size
+is 10 points
+for most text,
+8 points for footnotes.
+To change the pointsize,
+type:
+.(b
+\&.sz \c
+.i +N
+.)b
+where
+.i N
+is the size wanted in points.
+The
+.i "vertical spacing"
+(distance between the bottom of most letters
+(the
+.i baseline )
+between adjacent lines)
+is set to be proportional
+to the type size.
+.pp
+Warning:
+changing point sizes
+on the phototypesetter
+is a slow mechanical operation.
+Size changes
+should be considered carefully.
+.sh 2 "Quotes"
+.pp
+It is conventional when using
+the typesetter to
+use pairs of grave and acute accents
+to generate double quotes,
+rather than the
+double quote character
+(`\|"\|').
+This is because it looks better
+to use grave and acute accents;
+for example, compare
+"quote" to
+``quote''.
+.pp
+In order to make quotes compatible
+between the typesetter and terminals,
+you may use the sequences
+.b \e*(lq
+and
+.b \e*(rq
+to stand for the left and right quote
+respectively.
+These both appear as
+.b """"
+on most terminals,
+but are typeset as
+.b ``
+and
+.b ''
+respectively.
+For example,
+use:
+.(b
+\e*(lqSome things aren\(aat true
+even if they did happen.\e*(rq
+.)b
+to generate the result:
+.(b
+.q "Some things aren't true even if they did happen."
+.)b
+As a shorthand,
+the special font request:
+.(b
+\&.q "quoted text"
+.)b
+will generate
+.q "quoted text" .
+Notice that you must surround
+the material to be quoted
+with double quote marks
+if it is more than one word.
+.sh 0
+.sp 1i
+.b Acknowledgments
+.pp
+I would like to thank
+Bob Epstein,
+Bill Joy,
+and Larry Rowe
+for having the courage
+to use the \-me macros
+to produce non-trivial papers
+during the development stages;
+Ricki Blau,
+Pamela Humphrey,
+and Jim Joyce
+for their help with the documentation phase;
+and the plethora of people who have contributed ideas
+and have given support for the project.
+.sp 1i
+This document was
+.if n \*N'ed
+.if t \*T'ed
+on \*(td
+and applies to version
+1.1
+of the \-me macros.
diff --git a/usr/doc/memacros/ref.nr b/usr/doc/memacros/ref.nr
new file mode 100644 (file)
index 0000000..69dc6f6
--- /dev/null
@@ -0,0 +1,1895 @@
+.nr MO 25                      \" mod number
+.de TL                 \" *** title line
+.lp
+.di XX
+..
+.de DE                 \" *** description
+\\\\h'|\\n(DIu'\\\\c
+.br
+.di
+.in +\\n(DIu
+.ti 0
+.cu 1000
+.XX
+.rm XX
+.cu 0
+..
+.ds N \s-1NROFF\s0
+.ds T \s-1TROFF\s0
+.nr DI 1.5i
+.he '\-ME REFERENCE MANUAL''%'
+.de NR
+.b "\en\\$1" "\\$2"
+..
+.de ST
+.b "\e*\\$1" "\\$2"
+..
+.sc
+.+c
+.ce 20
+.sz 14
+.b "\-ME REFERENCE MANUAL"
+.sz
+.sp
+.i "Release 1.1/\n(MO"
+.sp 2
+.ul
+Eric P. Allman
+.sp
+Electronics Research Laboratory
+University of California, Berkeley
+Berkeley, California  94720
+.ce 0
+.sp 4
+.pp
+This document describes
+in extremely terse form
+the features
+of the
+.b \-me
+macro package
+for version seven \*N/\*T\*(dg.
+.(f
+\(dg\*N and \*T are Trademarks of Bell Laboratories.
+.)f
+Some familiarity is assumed
+with
+those programs,
+specifically,
+the reader should understand
+breaks,
+fonts,
+pointsizes,
+the use and definition of number registers
+and strings,
+how to define macros,
+and scaling factors for ens, points,
+.b v 's
+(vertical line spaces),
+etc.
+.pp
+For a more casual introduction
+to text processing
+using \*N,
+refer to the document
+.ul
+Writing Papers with \*N using \-me.
+.pp
+There are a number of macro parameters
+that may be adjusted.
+Fonts may be set to a font number only.
+In \*N font 8
+is underlined,
+and is set in bold font in \*T
+(although font
+3,
+bold in \*T,
+is not underlined in \*N).
+Font 0 is no font change;
+the font of the surrounding text
+is used instead.
+Notice that fonts 0 and 8 are
+.q pseudo-fonts ;
+that is,
+they are simulated by the macros.
+This means that although it is legal to set a font register
+to zero or eight,
+it is not legal to use the escape character form,
+such as:
+.(b
+\ef8
+.)b
+.pp
+All distances
+are in basic units,
+so it is nearly always necessary
+to use a scaling factor.
+For example,
+the request
+to set the paragraph indent
+to eight one-en spaces is:
+.(b
+\&.nr pi 8n
+.)b
+and not
+.(b
+\&.nr pi 8
+.)b
+which would set the paragraph indent to eight basic units,
+or about 0.02 inch.
+Default parameter values are given in brackets
+in the remainder of this document.
+.pp
+Registers and strings
+of the form
+.b $ \c
+.i x
+may be used in expressions
+but should not be changed.
+Macros of the form
+.b $ \c
+.i x
+perform some function
+(as described)
+and may be redefined
+to change this function.
+This may be a sensitive operation;
+look at the body of the original macro
+before changing it.
+.pp
+All names in \-me
+follow a rigid naming convention.
+The user may define number registers,
+strings,
+and macros,
+provided that s/he
+uses single character upper case names
+or double character names
+consisting of letters and digits,
+with at least one upper case letter.
+In no case should special characters
+be used in user-defined names.
+.pp
+On daisy wheel type printers
+in twelve pitch,
+the
+.b \-rx1
+flag can be stated to make lines default to
+one eighth inch
+(the normal spacing for a newline in twelve-pitch).
+This is normally too small for easy readability,
+so the default is to space one sixth inch.
+.pp
+This documentation was
+.if n \*N'ed
+.if t \*T'ed
+on \*(td
+and applies to version
+1.1/\n(MO
+of the \-me macros.
+.sh 1 "Paragraphing"
+.pp
+These macros are used
+to begin paragraphs.
+The standard paragraph macro
+is
+.b .pp ;
+the others are all variants
+to be used for special purposes.
+.pp
+The first call to one of the paragraphing macros
+defined in this section
+or the
+.b .sh
+macro
+(defined in the next session)
+.i initializes
+the macro processor.
+After initialization
+it is not possible to use any of the following requests:
+.b .sc ,
+.b .lo ,
+.b .th ,
+or
+.b .ac .
+Also,
+the effects of changing parameters
+which will have a global effect
+on the format of the page
+(notably page length and header and footer margins)
+are not well defined
+and should be avoided.
+.TL
+.b .lp
+.DE
+Begin left-justified paragraph.
+Centering and underlining
+are turned off if they were on,
+the font is set to
+.NR (pf
+[1]
+the type size
+is set to
+.NR (pp
+[10p],
+and a
+.NR (ps
+space is inserted
+before the paragraph
+[0.35v in \*T, 1v or 0.5v in \*N
+depending on device resolution].
+The indent is reset
+to
+.NR ($i
+[0]
+plus
+.NR (po
+[0]
+unless the paragraph
+is inside a display.
+(see
+.b .ba ).
+At least
+the first two lines
+of the paragraph
+are kept together
+on a page.
+.TL
+.b .pp
+.DE
+Like
+.b .lp ,
+except that it puts
+.NR (pi
+[5n]
+units of indent.
+This is the standard paragraph macro.
+.TL
+.b .ip
+.i T
+.i I
+.DE
+Indented paragraph
+with hanging tag.
+The body of the following paragraph
+is indented
+.i I
+spaces
+(or
+.NR (ii
+[5n]
+spaces
+if
+.i I
+is not specified)
+more than a non-indented paragraph
+(such as with
+.b .pp )
+is.
+The title
+.i T
+is exdented (opposite of indented).
+The result is a paragraph
+with an even left edge
+and
+.i T
+printed in the margin.
+Any spaces in
+.i T
+must be unpaddable.
+If
+.i T
+will not fit in the space provided,
+.b .ip
+will start a new line.
+.TL
+.b .np
+.DE
+A variant of .ip which numbers paragraphs.
+Numbering is reset
+after a
+.b .lp ,
+.b .pp ,
+or
+.b .sh .
+The current paragraph number
+is in
+.NR ($p .
+.sh 1 "Section Headings"
+.pp
+Numbered sections
+are similiar to paragraphs
+except that a
+section number
+is automatically
+generated for each one.
+The section numbers are of the form
+.b 1.2.3 .
+The
+.i depth
+of the section
+is the count of numbers
+(separated by decimal points)
+in the section number.
+.pp
+Unnumbered section headings are similar,
+except that no number is attached
+to the heading.
+.TL
+.b .sh
+.i +N
+.i T
+.i "a b c d e f"
+.DE
+Begin numbered section
+of depth
+.i N .
+If
+.i N
+is missing
+the current depth
+(maintained in
+the number register
+.NR ($0 )
+is used.
+The values of
+the individual parts of the section number
+are maintained in
+.NR ($1
+through
+.NR ($6 .
+There is a
+.NR (ss
+[1v]
+space before the section.
+.i T
+is printed
+as a section title
+in font
+.NR (sf
+[8]
+and size
+.NR (sp
+[10p].
+The
+.q name
+of the section may be accessed via
+.ST ($n .
+If
+.NR (si
+is non-zero,
+the base indent
+is set to
+.NR (si
+times the section depth,
+and the section title
+is exdented.
+(See
+.b .ba .)
+Also,
+an additional indent of
+.NR (so
+[0]
+is added to the section title
+(but not to the body of the section).
+The font is then set
+to the paragraph font,
+so that more information may occur
+on the line
+with the section number
+and title.
+.b .sh
+insures that there is enough room
+to print the section head
+plus the beginning of a paragraph
+(about 3 lines total).
+If
+.i a
+through
+.i f
+are specified,
+the section number is set to that number
+rather than incremented automatically.
+If any of
+.i a
+through
+.i f
+are a hyphen
+that number is not reset.
+If
+.i T
+is a single underscore
+(\c
+.q _ )
+then the section depth and numbering is reset,
+but the base indent is not reset
+and nothing is printed out.
+This is useful to automatically
+coordinate section numbers with
+chapter numbers.
+.TL
+.b .sx
+.i +N
+.DE
+Go to section depth
+.i N
+[\c
+.b \-1 ],
+but do not print the number
+and title,
+and do not increment the section number
+at level
+.i N .
+This has the effect
+of starting a new paragraph
+at level
+.i N .
+.TL
+.b .uh
+.i T
+.DE
+Unnumbered section heading.
+The title
+.i T
+is printed
+with the same rules for spacing,
+font, etc.,
+as for
+.b .sh .
+.TL
+.b .$p
+.i T
+.i B
+.i N
+.DE
+Print section heading.
+May be redefined
+to get fancier headings.
+.i T
+is the title passed on the
+.b .sh
+or
+.b .uh
+line;
+.i B
+is the section number for this section,
+and
+.i N
+is the depth of this section.
+These parameters are not always present;
+in particular,
+.b .sh
+passes all three,
+.b .uh
+passes only the first,
+and
+.b .sx
+passes three,
+but the first two
+are null strings.
+Care should be taken if this macro
+is redefined;
+it is quite complex and subtle.
+.TL
+.b .$0
+.i T
+.i B
+.i N
+.DE
+This macro is called automatically
+after every call to
+.b .$p .
+It is normally undefined,
+but may be used
+to automatically put
+every section title
+into the table of contents
+or for some similiar function.
+.i T
+is the section title
+for the section title which was just printed,
+.i B
+is the section number,
+and
+.i N
+is the section depth.
+.TL
+.b .$1
+\-
+.b .$6
+.DE
+Traps called just before printing that depth section.
+May be defined to
+(for example)
+give variable spacing
+before sections.
+These macros are called from
+.b .$p ,
+so if you redefine that macro
+you may lose this feature.
+.sh 1 "Headers and Footers"
+.ds TP \fI\(aal\|\(aam\^\(aar\^\(aa\fP
+.pp
+Headers and footers
+are put at the top and bottom
+of every page
+automatically.
+They are set in font
+.NR (tf
+[3]
+and size
+.NR (tp
+[10p].
+Each of the definitions
+apply as of the
+.i next
+page.
+Three-part titles
+must be quoted
+if there are two blanks adjacent
+anywhere in the title
+or more than eight blanks total.
+.pp
+The spacing
+of headers and footers
+are controlled by three number registers.
+.NR (hm
+[4v]
+is the distance from the top of the page
+to the top of the header,
+.NR (fm
+[3v]
+is the distance from the bottom of the page
+to the bottom of the footer,
+.NR (tm
+[7v]
+is the distance from the top of the page
+to the top of the text,
+and
+.NR (bm
+[6v]
+is the distance from the bottom of the page
+to the bottom of the text
+(nominal).
+The macros
+.b .m1 ,
+.b .m2 ,
+.b .m3 ,
+and
+.b .m4
+are also supplied for compatibility
+with
+\s-1ROFF\s0 documents.
+.TL
+.b .he
+\*(TP
+.DE
+Define three-part header,
+to be printed on the top
+of every page.
+.TL
+.b .fo
+\*(TP
+.DE
+Define footer,
+to be printed at the bottom
+of every page.
+.TL
+.b .eh
+\*(TP
+.DE
+Define header,
+to be printed at the top of every
+even-numbered page.
+.TL
+.b .oh
+\*(TP
+.DE
+Define header,
+to be printed at the top of every
+odd-numbered page.
+.TL
+.b .ef
+\*(TP
+.DE
+Define footer,
+to be printed at the bottom
+of every even-numbered page.
+.TL
+.b .of
+\*(TP
+.DE
+Define footer,
+to be printed at the bottom
+of every odd-numbered page.
+.TL
+.b .hx
+.DE
+Suppress headers and footers
+on the next page.
+.TL
+.b .m1
+.i +N
+.DE
+Set the space between the top of the page
+and the header
+[4v].
+.TL
+.b .m2
+.i +N
+.DE
+Set the space between the header
+and the first line of text
+[2v].
+.TL
+.b .m3
+.i +N
+.DE
+Set the space
+between the bottom of the text
+and the footer
+[2v].
+.TL
+.b .m4
+.i +N
+.DE
+Set the space
+between the footer
+and the bottom of the page
+[4v].
+.TL
+.b .ep
+.DE
+End this page,
+but do not begin the next page.
+Useful for forcing out footnotes,
+but other than
+that hardly every used.
+Must be followed by a
+.b .bp
+or the end of input.
+.TL
+.b .$h
+.DE
+Called at every page
+to print the header.
+May be redefined
+to provide fancy
+(e.g.,
+multi-line)
+headers,
+but doing so
+loses the function of the
+.b .he ,
+.b .fo ,
+.b .eh ,
+.b .oh ,
+.b .ef ,
+and
+.b .of
+requests,
+as well as the chapter-style title feature
+of
+.b .+c .
+.TL
+.b .$f
+.DE
+Print footer;
+same comments apply
+as in
+.b .$h .
+.TL
+.b .$H
+.DE
+A normally undefined macro
+which is called
+at the top of each page
+(after outputing
+the header,
+initial saved floating keeps,
+etc.);
+in other words,
+this macro is called immediately before
+printing text
+on a page.
+It can be used for column headings
+and the like.
+.sh 1 "Displays"
+.pp
+All displays except centered blocks
+and block quotes
+are preceeded and followed
+by an extra
+.NR (bs
+[same as
+.NR (ps ]
+space.
+Quote spacing is stored in a separate register;
+centered blocks have no default initial or trailing space.
+The vertical spacing of all displays except quotes
+and centered blocks
+is stored in register
+.NR ($R
+instead of
+.NR ($r .
+.TL
+.b .(l
+.i m
+.i f
+.DE
+Begin list.
+Lists are single spaced,
+unfilled text.
+If
+.i f
+is
+.b F ,
+the list will be filled.
+If
+.i m
+[\c
+.b I ]
+is
+.b I
+the list is indented by
+.NR (bi
+[4n];
+if
+.b M
+the list is indented to the left margin;
+if
+.b L
+the list is left justified with respect to the text
+(different from
+.b M
+only if the base indent
+(stored in
+.NR ($i
+and set with
+.b .ba )
+is not zero);
+and if
+.b C
+the list is centered on a line-by-line basis.
+The list is set in font
+.NR (df
+[0].
+Must be matched by a
+.b .)l .
+This macro is almost like
+.b .(b
+except that no attempt is made
+to keep the display on one page.
+.TL
+.b .)l
+.DE
+End list.
+.TL
+.b .(q
+.DE
+Begin major quote.
+These are single spaced,
+filled,
+moved in from the text
+on both sides
+by
+.NR (qi
+[4n],
+preceeded and followed
+by
+.NR (qs
+[same as
+.NR (bs ]
+space,
+and are set in point size
+.NR (qp
+[one point smaller than surrounding text].
+.TL
+.b .)q
+.DE
+End major quote.
+.TL
+.b .(b
+.i m
+.i f
+.DE
+Begin block.
+Blocks are a form of
+.i keep ,
+where the text of a keep
+is kept together on one page
+if possible
+(keeps are useful
+for tables and figures
+which should not be broken
+over a page).
+If the block will not fit
+on the current page
+a new page is begun,
+.i unless
+that would leave more than
+.NR (bt
+[0]
+white space
+at the bottom of the text.
+If
+.NR (bt
+is zero, the threshold feature
+is turned off.
+Blocks are not filled
+unless
+.i f
+is
+.b F ,
+when they are filled.
+The block will be left-justified
+if
+.i m
+is
+.b L ,
+indented by
+.NR (bi
+[4n]
+if
+.i m
+is
+.b I
+or absent,
+centered
+(line-for-line)
+if
+.i m
+is
+.b C ,
+and left justified to the margin
+(not to the base indent)
+if
+.i m
+is
+.b M .
+The block is set in font
+.NR (df
+[0].
+.TL
+.b .)b
+.DE
+End block.
+.TL
+.b .(z
+.i m
+.i f
+.DE
+Begin floating keep.
+Like
+.b .(b
+except that the keep is
+.i floated
+to the bottom of the page
+or the top of the next page.
+Therefore,
+its position relative to the text changes.
+The floating keep is preceeded and followed
+by
+.NR (zs
+[1v]
+space.
+Also,
+it defaults to mode
+.b M .
+.TL
+.b .)z
+.DE
+End floating keep.
+.TL
+.b .(c
+.DE
+Begin centered block.
+The next keep
+is centered as a block,
+rather than on a line-by-line basis
+as with
+.b ".(b C" .
+This call may be nested
+inside keeps.
+.TL
+.b .)c
+.DE
+End centered block.
+.sh 1 Annotations
+.TL
+.b .(d
+.DE
+Begin delayed text.
+Everything in the next keep
+is saved for output
+later with
+.b .pd ,
+in a manner
+similar to footnotes.
+.TL
+.b .)d
+.i n
+.DE
+End delayed text.
+The delayed text number register
+.NR ($d
+and the associated string
+.ST #
+are incremented if
+.ST #
+has been referenced.
+.TL
+.b .pd
+.DE
+Print delayed text.
+Everything diverted via
+.b .(d
+is printed and truncated.
+This might be used
+at the end of each chapter.
+.TL
+.b .(f
+.DE
+Begin footnote.
+The text of the footnote
+is floated to the bottom
+of the page
+and set in font
+.NR (ff
+[1]
+and size
+.NR (fp
+[8p].
+Each entry
+is preceeded by
+.NR (fs
+[0.2v]
+space,
+is indented
+.NR (fi
+[3n]
+on the first line,
+and is indented
+.NR (fu
+[0]
+from the right margin.
+Footnotes line up underneath
+two columned output.
+If the text of the footnote
+will not all fit on one page
+it will be carried over
+to the next page.
+.TL
+.b .)f
+.i n
+.DE
+End footnote.
+The number register
+.NR ($f
+and the associated string
+.ST *
+are incremented
+if they have been referenced.
+.TL
+.b .$s
+.DE
+The macro to output the footnote seperator.
+This macro may be redefined
+to give other size lines or other types
+of separators.
+Currently
+it draws a 1.5i line.
+.TL
+.b .(x
+.i x
+.DE
+Begin index entry.
+Index entries are saved in the index
+.i x
+[\c
+.b x ]
+until called up with
+.b .xp.
+Each entry is preceeded
+by a
+.NR (xs
+[0.2v]
+space.
+Each entry is
+.q undented
+by
+.NR (xu
+[0.5i];
+this register tells how far the page number
+extends into the right margin.
+.TL
+.b .)x
+.i P
+.i A
+.DE
+End index entry.
+The index entry
+is finished with a row of dots
+with
+.i A
+[null]
+right justified on the last line
+(such as for an author's name),
+followed by P
+[\c
+.NR % ].
+If
+.i A
+is specified,
+.i P
+must be specified;
+.NR %
+can be used to print the current page number.
+If
+.i P
+is an underscore,
+no page number
+and no row of dots
+are printed.
+.TL
+.b .xp
+.i x
+.DE
+Print index
+.i x
+[\c
+.b x ].
+The index is formated in the font, size, and so forth
+in effect at the time it is printed,
+rather than at the time it is collected.
+.sh 1 "Columned Output"
+.TL
+.b .2c
+.i +S
+.i N
+.DE
+Enter two-column mode.
+The column separation is set to
+.i +S
+[4n, 0.5i in ACM mode]
+(saved in
+.NR ($s ).
+The column width,
+calculated to fill the single column line length
+with both columns,
+is stored in
+.NR ($l .
+The current column
+is in
+.NR ($c .
+You can test register
+.NR ($m
+[1]
+to see if you are in single column
+or double column mode.
+Actually,
+the request enters
+.i N
+[2]
+columned output.
+.TL
+.b .1c
+.DE
+Revert to single-column mode.
+.TL
+.b .bc
+.DE
+Begin column.
+This is like
+.b .bp
+except that it begins a new column
+on a new page
+only if necessary,
+rather than forcing a whole new page
+if there is another column left
+on the current page.
+.sh 1 "Fonts and Sizes"
+.TL
+.b .sz
+.i +P
+.DE
+The pointsize is set to
+.i P
+[10p],
+and the line spacing is set proportionally.
+The ratio of line spacing to pointsize
+is stored in
+.NR ($r .
+The ratio used internally
+by displays and annotations
+is stored in
+.NR ($R
+(although this is not used by
+.b .sz ).
+.TL
+.b .r
+.i W
+.i X
+.DE
+Set
+.i W
+in roman font,
+appending
+.i X
+in the previous font.
+To append different font requests,
+use
+.i X
+=
+.b \ec .
+If no parameters,
+change to roman font.
+.TL
+.b .i
+.i W
+.i X
+.DE
+Set
+.i W
+in italics,
+appending
+.i X
+in the previous font.
+If no parameters,
+change to italic font.
+Underlines in \*N.
+.TL
+.b .b
+.i W
+.i X
+.DE
+Set
+.i W
+in bold font
+and append
+.i X
+in the previous font.
+If no parameters,
+switch to bold font.
+In \*N,
+underlines.
+.TL
+.b .rb
+.i W
+.i X
+.DE
+Set
+.i W
+in bold font
+and append
+.i X
+in the previous font.
+If no parameters,
+switch to bold font.
+.b .rb
+differs from
+.b .b
+in that
+.b .rb
+does not underline in \*N.
+.TL
+.b .u
+.i W
+.i X
+.DE
+Underline
+.i W
+and append
+.i X .
+This is a true underlining,
+as opposed to the
+.b .ul
+request,
+which changes to
+.q "underline font"
+(usually italics in \*T).
+It won't work right
+if
+.i W
+is spread or broken (including hyphenated).
+In other words,
+it is safe in nofill mode only.
+.TL
+.b .q
+.i W
+.i X
+.DE
+Quote
+.i W
+and append
+.i X .
+In \*N
+this just surrounds
+.i W
+with double quote marks
+(`\|\c
+.b """" \|'),
+but in \*T
+uses directed quotes.
+.TL
+.b .bi
+.i W
+.i X
+.DE
+Set
+.i W
+in bold italics
+and append
+.i X .
+Actually,
+sets
+.i W
+in italic
+and overstrikes once.
+Underlines in \*N.
+It won't work right
+if
+.i W
+is spread or broken (including hyphenated).
+In other words,
+it is safe in nofill mode only.
+.TL
+.b .bx
+.i W
+.i X
+.DE
+Sets
+.i W
+in a box,
+with
+.i X
+appended.
+Underlines in \*N.
+It won't work right
+if
+.i W
+is spread or broken (including hyphenated).
+In other words,
+it is safe in nofill mode only.
+.sh 1 "Roff Support"
+.TL
+.b .ix
+.i +N
+.DE
+Indent,
+no break.
+Equivalent to
+.b \(aain
+.i N .
+.TL
+.b .bl
+.i N
+.DE
+Leave
+.i N
+contiguous white space,
+on the next page if not enough room
+on this page.
+Equivalent to a
+.b .sp
+.i N
+inside a block.
+.TL
+.b .pa
+.i +N
+.DE
+Equivalent to
+.b .bp .
+.TL
+.b .ro
+.DE
+Set page number
+in roman numerals.
+Equivalent to
+.b ".af % i" .
+.TL
+.b .ar
+.DE
+Set page number in arabic.
+Equivalent to
+.b ".af % 1" .
+.TL
+.b .n1
+.DE
+Number lines in margin from one
+on each page.
+.TL
+.b .n2
+.i N
+.DE
+Number lines from
+.i N ,
+stop if
+.i N
+= 0.
+.TL
+.b .sk
+.DE
+Leave the next output page blank,
+except for headers and footers.
+This is used to leave space
+for a full-page diagram
+which is produced externally
+and pasted in later.
+To get a partial-page paste-in display,
+say
+.b .sv \ \c
+.i N ,
+where
+.i N
+is the amount of space
+to leave;
+this space will be output immediately
+if there is room,
+and will otherwise be output
+at the top of the next page.
+However, be warned:
+if
+.i N
+is greater than the amount of available space
+on an empty page,
+no space will ever be output.
+.sh 1 "Preprocessor Support"
+.TL
+.b .EQ
+.i m
+.i T
+.DE
+Begin equation.
+The equation is centered
+if
+.i m
+is
+.b C
+or omitted,
+indented
+.NR (bi
+[4n]
+if
+.i m
+is
+.b I ,
+and left justified if
+.i m
+is
+.b L .
+.i T
+is a title printed on the right margin
+next to the equation.
+See
+.i "Typesetting Mathematics \- User's Guide"
+by Brian W. Kernighan
+and Lorinda L. Cherry.
+.TL
+.b .EN
+.i c
+.DE
+End equation.
+If
+.i c
+is
+.b C
+the equation must be continued
+by immediately following
+with another
+.b .EQ ,
+the text of which
+can be centered
+along with this one.
+Otherwise,
+the equation is printed,
+always on one page,
+with
+.NR (es
+[0.5v in \*T, 1v in \*N]
+space
+above and below it.
+.TL
+.b .TS
+.i h
+.DE
+Table start.
+Tables are single spaced
+and kept on one page
+if possible.
+If you have a large table
+which will not fit on one page,
+use
+.i h
+=
+.b H
+and follow the header part
+(to be printed on every page of the table)
+with a
+.b .TH .
+See
+.i "Tbl \- A Program to Format Tables"
+by M. E. Lesk.
+.TL
+.b .TH
+.DE
+With
+.b ".TS H" ,
+ends the header portion of the table.
+.TL
+.b .TE
+.DE
+Table end.
+Note that this table
+does not float,
+in fact,
+it is not even guaranteed to stay on one page
+if you use requests such as
+.b .sp
+intermixed with the text
+of the table.
+If you want it to float
+(or if you use requests
+inside the table),
+surround the entire table
+(including the
+.b .TS
+and
+.b .TE
+requests)
+with the requests
+.b .(z
+and
+.b .)z .
+.sh 1 "Miscellaneous"
+.TL
+.b .re
+.DE
+Reset tabs.
+Set to every 0.5i
+in \*T
+and every 0.8i in \*N.
+.TL
+.b .ba
+.i +N
+.DE
+Set the base indent
+to
+.i +N
+[0]
+(saved in
+.NR ($i ).
+All paragraphs,
+sections,
+and displays
+come out indented by this amount.
+Titles and footnotes
+are unaffected.
+The
+.b .sh
+request performs a
+.b .ba
+request
+if
+.NR (si
+[0] is not zero,
+and sets the base indent to
+.NR (si \c
+.b * \c
+.NR ($0 .
+.TL
+.b .xl
+.i +N
+.DE
+Set the line length to
+.i N
+[6.0i].
+This differs
+from
+.b .ll
+because it only affects the current environment.
+.TL
+.b .ll
+.i +N
+.DE
+Set line length in all environments
+to
+.i N
+[6.0i].
+This should not be used
+after output has begun,
+and particularly not in two-columned output.
+The current line length is stored in
+.NR ($l .
+.TL
+.b .hl
+.DE
+Draws a horizontal line
+the length of the page.
+This is useful
+inside floating keeps
+to differentiate
+between the text
+and the figure.
+.TL
+.b .lo
+.DE
+This macro loads another set of macros
+(in
+.b /usr/lib/me/local.me )
+which is intended to be a set of locally defined macros.
+These macros
+should all be of the form
+.b .* \c
+.i X ,
+where
+.i X
+is any letter
+(upper or lower case)
+or digit.
+.sh 1 "Standard Papers"
+.TL
+.b .tp
+.DE
+Begin title page.
+Spacing at the top of the page
+can occur,
+and headers and footers are supressed.
+Also,
+the page number
+is not incremented
+for this page.
+.TL
+.b .th
+.DE
+Set thesis mode.
+This defines the modes acceptable
+for a doctoral dissertation
+at Berkeley.
+It double spaces,
+defines the header
+to be a single page number,
+and changes the margins
+to be 1.5 inch on the left
+and one inch on the top.
+.b .++
+and
+.b .+c
+should be used with it.
+This macro must be stated
+before
+initialization,
+that is,
+before the first call of a paragraphing
+macro
+or
+.b .sh .
+.TL
+.b .++
+.i m
+.i H
+.DE
+This request defines the section of the paper
+which we are entering.
+The section type is defined by
+.i m .
+.b C
+means that we are entering the chapter portion
+of the paper,
+.b A
+means that we are entering the appendix portion
+of the paper,
+.b P
+means that the material following
+should be the preliminary portion
+(abstract, table of contents, etc.)
+portion of the paper,
+.b AB
+means that we are entering the abstract
+(numbered independently from 1
+in Arabic numerals),
+and
+.b B
+means that we are entering the bibliographic
+portion at the end of the paper.
+Also, the variants
+.b RC
+and
+.b RA
+are allowed,
+which specify renumbering of pages
+from one at the beginning of each
+chapter or appendix,
+respectively.
+The
+.i H
+parameter defines the new header.
+If there are any spaces in it,
+the entire header must be quoted.
+If you want the header to have the chapter number
+in it,
+Use the string
+.b "\e\e\e\en(ch" .
+For example, to number appendixes
+.b A.1
+etc.,
+type
+.b ".++ RA \(aa\(aa\(aa\e\e\e\en(ch.%\(aa" .
+Each section
+(chapter, appendix, etc.)
+should be preceeded by the
+.b .+c
+request.
+It should be mentioned
+that it is easier when using
+\*T to put the front material
+at the end of the paper,
+so that the table of contents
+can be collected and output;
+this material can then be physically
+moved to the beginning of the paper.
+.TL
+.b .+c
+.i T
+.DE
+Begin chapter with title
+.i T .
+The chapter number
+is maintained in
+.NR (ch .
+This register is incremented
+every time
+.b .+c
+is called with a parameter.
+The title and chapter number
+are printed by
+.b .$c .
+The header is moved to the footer
+on the first page
+of each chapter.
+If
+.i T
+is omitted,
+.b .$c
+is not called;
+this is useful for doing your own
+.q "title page"
+at the beginning of papers
+without a title page proper.
+.b .$c
+calls
+.b .$C
+as a hook so that chapter titles can be inserted
+into a table of contents automatically.
+The footnote numbering is reset to one.
+.TL
+.b .$c
+.i T
+.DE
+Print chapter number
+(from
+.NR (ch )
+and
+.i T .
+This macro can be redefined to your liking.
+It is defined by default
+to be acceptable
+for a PhD thesis
+at Berkeley.
+This macro calls
+.b $C ,
+which can be defined to make index entries,
+or whatever.
+.TL
+.b .$C
+.i K
+.i N
+.i T
+.DE
+This macro is called by
+.b .$c .
+It is normally undefined,
+but can be used to automatically insert
+index entries,
+or whatever.
+.i K
+is a keyword,
+either
+.q Chapter
+or
+.q Appendix
+(depending on the
+.b .++
+mode);
+.i N
+is the chapter or appendix number,
+and
+.i T
+is the chapter or appendix title.
+.TL
+.b .ac
+.i A
+.i N
+.DE
+This macro
+(short for
+.b .acm )
+sets up the \*N environment
+for photo-ready papers
+as used by the ACM.
+This format is 25% larger,
+and has no headers or footers.
+The author's name
+.i A
+is printed at the bottom of the page
+(but off the part which will be printed
+in the conference proceedings),
+together with the current page number
+and the total number of pages
+.i N .
+Additionally,
+this macro loads the file
+.b /usr/lib/me/acm.me ,
+which may later be augmented with other macros
+useful for printing papers
+for ACM conferences.
+It should be noted
+that this macro will not work correctly in \*T,
+since it sets the page length
+wider than the physical width
+of the phototypesetter roll.
+.sh 1 "Predefined Strings"
+.TL
+.ST *
+.DE
+Footnote number, actually
+.ST [ \c
+.NR ($f \c
+.ST ] .
+This macro is incremented
+after each call to
+.b .)f .
+.TL
+.ST #
+.DE
+Delayed text number.
+Actually
+[\c
+.NR ($d ].
+.TL
+.ST [
+.DE
+Superscript.
+This string gives upward movement
+and a change to a smaller point size
+if possible,
+otherwise it gives the left bracket character
+(`\^\c
+.b [ \^').
+Extra space is left above the line
+to allow room for the superscript.
+.TL
+.ST ]
+.DE
+Unsuperscript.
+Inverse to
+.ST [ .
+For example,
+to produce a superscript
+you might type
+.b x \c
+.ST [ \c
+.b 2 \c
+.ST ] ,
+which will produce
+.b x\*[2\*] .
+.TL
+.ST <
+.DE
+Subscript.
+Defaults to
+`\^<\^'
+if half-carriage motion not possible.
+Extra space is left below the line
+to allow for the subscript.
+.TL
+.ST >
+.DE
+Inverse to
+.ST < .
+.TL
+.ST (dw
+.DE
+The day of the week,
+as a word.
+.TL
+.ST (mo
+.DE
+The month,
+as a word.
+.TL
+.ST (td
+.DE
+Today's date,
+directly printable.
+The date is of the form \*(td.
+Other forms of the date can be used
+by using
+.NR (dy
+(the day of the month;
+for example, \n(dy),
+.ST (mo
+(as noted above)
+or
+.NR (mo
+(the same,
+but as an ordinal number;
+for example, \*(mo is \n(mo),
+and
+.NR (yr
+(the last two digits of the current year).
+.TL
+.ST (lq
+.DE
+Left quote marks.
+Double quote in \*N.
+.TL
+.ST (rq
+.DE
+Right quote.
+.TL
+.ST \-
+.DE
+\(34 em dash in \*T;
+two hyphens in \*N.
+.sh 1 "Special Characters and Marks"
+.pp
+There are a number of special characters
+and diacritical marks
+(such as accents)
+available through \-me.
+To reference these characters,
+you must call the macro
+.b .sc
+to define the characters before using them.
+.TL
+.b .sc
+.DE
+Define special characters and diacritical marks, as described
+in the remainder of this section.
+This macro must be stated
+before initialization.
+.pp
+The special characters available
+are listed below.
+.ta 15 +5 +6
+.nf
+Name   Usage   Example
+Acute accent   \e*\(aa a\e*\(aa        a\*'
+Grave accent   \e*\(ga e\e*\(ga        e\*`
+Umlat  \e*:    u\e*:   u\*:
+Tilde  \e*~    n\e*~   n\*~
+Caret  \e*^    e\e*^   e\*^
+Cedilla        \e*,    c\e*,   c\*,
+Czech  \e*v    e\e*v   e\*v
+Circle \e*o    A\e*o   A\*o
+There exists   \e*(qe          \*(qe
+For all        \e*(qa          \*(qa
+.fi
+.sp 1i
+.b Acknowledgments
+.pp
+I would like to thank
+Bob Epstein,
+Bill Joy,
+and Larry Rowe
+for having the courage
+to use the \-me macros
+to produce non-trivial papers
+during the development stages;
+Ricki Blau,
+Pamela Humphrey,
+and Jim Joyce
+for their help with the documentation phase;
+and the plethora of people who have contributed ideas
+and have given support for the project.
diff --git a/usr/doc/msmacros/ms b/usr/doc/msmacros/ms
new file mode 100644 (file)
index 0000000..4b86721
--- /dev/null
@@ -0,0 +1,922 @@
+.RP
+....TM 76-1274-16 39199 39199-11
+....ND October 8, 1976
+.nr CW 2.85i
+.nr GW .3i
+.TL
+Typing Documents on the UNIX System:
+.br
+\!.br
+Using the \-ms Macros with Troff and Nroff
+.AU "MH 2C-572" 6377
+M. E. Lesk
+.AI
+.MH
+.OK
+Text Formatting
+Phototypesetting
+.AB
+This document describes a set of easy-to-use macros
+for preparing documents on the UNIX system.
+Documents may be produced on either the
+phototypesetter or a on a computer terminal,
+without changing the input.
+.PP
+The macros provide facilities for paragraphs, sections (optionally
+with automatic numbering), page titles, footnotes,
+equations,
+tables, two-column format, and
+cover pages for papers.
+.PP
+This memo includes, as an appendix,
+the text of the ``Guide to Preparing
+Documents with \-ms''
+which contains additional examples
+of features of \-ms.
+.PP
+This manual is a revision of, and replaces,
+``Typing Documents on UNIX,''
+dated November 22, 1974.
+.AE
+.CS 6 6 12 1 0 8
+.bd I 3
+.PP
+.I
+Introduction.
+.R
+This memorandum describes a package of commands to produce
+papers
+using the
+.bd I
+.I
+troff
+.R
+and
+.I nroff
+formatting programs on the
+.SM
+UNIX
+.NL
+system.
+As with other
+.I roff -derived
+programs,
+text is prepared interspersed with formatting commands.
+However, this package,
+which itself is written in
+.I troff
+commands,
+provides higher-level commands
+than those provided with the basic
+.I troff
+program.
+The commands available in this package are listed in
+Appendix A.
+.bd I 3
+.PP
+.I
+Text.
+.R
+Type normally, except that instead of indenting for paragraphs,
+place a line reading ``.PP'' before each paragraph.
+This will produce indenting and extra space.
+.LP
+Alternatively, the command .LP that was used here will produce
+a left-aligned (block) paragraph.
+The paragraph spacing can be changed: see below under ``Registers.''
+.PP
+.I
+Beginning.
+.R
+For a document with a paper-type cover sheet, the input should start as follows:
+.DS L
+       [optional overall format .RP \- see below]
+       .TL
+       Title of document (one or more lines)
+       .AU
+       Author(s) (may also be several lines)
+       .AI
+       Author's institution(s)
+       .AB
+       Abstract; to be placed on the cover sheet of a paper.
+       Line length is 5/6 of normal; use .ll here to change.
+       .AE  (abstract end)
+       text ... (begins with .PP, which see)
+.DE
+To omit some of the standard headings
+(e.g. no abstract, or no author's institution) just
+omit the corresponding fields and command lines.
+The word
+.SM
+ABSTRACT
+.NL
+can be suppressed by writing ``.AB no'' for ``.AB''.
+Several interspersed .AU and .AI lines can be used for multiple authors.
+The headings are not compulsory: beginning
+with a .PP command is perfectly OK and will just
+start printing an ordinary paragraph.
+.I Warning:
+You can't just begin a document with a line of text.
+Some \-ms command must
+precede any text input.  When in doubt, use .LP
+to get proper initialization, although any of
+the commands .PP, .LP, .TL, .SH, .NH is good enough.
+Figure 1 shows the legal arrangement of commands at the
+start of a document.
+.PP
+.I
+Cover Sheets and First Pages.
+.R
+The first line
+of a document signals the general format of the first page.
+In particular, if it is ".RP" a cover sheet with title and
+abstract is prepared.
+The default format
+is useful for scanning drafts.
+.PP
+In general \-ms is arranged so that only one form
+of a document need be stored, containing all
+information;  the first command gives the format,
+and unnecessary items for that format are ignored.
+.PP
+Warning: don't put extraneous material
+between the .TL and .AE commands.  Processing
+of the titling items is
+special, and other data placed in them may not behave
+as you expect.
+Don't forget that some \-ms command must precede any input text.
+.PP
+.I
+Page headings.
+.R
+The \-ms macros, by default, will print a page heading containing
+a page number (if greater than 1).
+A default page footer is provided only in
+.I nroff ,
+where the date is used.
+The user can make minor adjustments to the page headings/footings
+by redefining the
+strings
+LH, CH, and RH
+which are the left, center and right portions of the page headings,
+respectively; and the
+strings
+LF, CF, and RF,
+which are the left, center and right portions of the page footer.
+For more complex formats, the user can redefine
+the macros PT and BT, which are invoked respectively at the top
+and bottom of each page.
+The margins (taken from registers HM and FM for the top and bottom
+margin respectively) are normally 1 inch; the page header/footer are
+in the middle of that space.
+The user who redefines these macros should be careful
+not to change parameters such as point size or font
+without resetting them to default values.
+.PP
+.2C
+.I
+Multi-column formats.
+.R
+If you place the command ``.2C'' in your document, the document will
+be printed in double column format beginning
+at that point.  This feature is not too useful in computer
+terminal output, but is often desirable on the typesetter.
+The command ``.1C'' will go
+back to one-column format and also skip to a new page.
+The ``.2C'' command is actually a special case of the command
+.DS L
+       .MC [column width [gutter width]]
+.DE
+which makes multiple columns with the specified column
+and gutter width; as many columns as will fit across the page
+are used.
+Thus triple, quadruple, ... column pages can be printed.
+Whenever the number of columns is changed (except going from
+full width to some larger number of columns)
+a new page is started.
+.PP
+.I
+Headings.
+.R
+To produce a special heading, there are two commands.
+If you type
+.DS L
+       .NH
+       type section heading here
+       may be several lines
+.DE
+you will get automatically numbered section headings (1, 2, 3, ...),
+in boldface.
+For example,
+.DS L
+    .NH
+    Care and Feeding of Department Heads
+.DE
+produces
+.NH
+Care and Feeding of Department Heads
+.PP
+Alternatively,
+.DS L
+       .SH
+       Care and Feeding of Directors
+.DE
+will print the heading with no number added:
+.SH
+Care and Feeding of Directors
+.PP
+Every section heading, of either type, should be followed
+by a paragraph beginning with .PP or .LP, indicating
+the end of the heading.
+Headings may contain more than one line
+of text.
+.PP
+The .NH command also supports more complex numbering schemes.
+If a numerical argument is given, it is taken to be a
+``level'' number and an appropriate sub-section
+number is generated.
+Larger level numbers indicate deeper
+sub-sections, as in this example:
+.DS L
+       .NH
+       Erie-Lackawanna
+       .NH 2
+       Morris and Essex Division
+       .NH 3
+       Gladstone Branch
+       .NH 3
+       Montclair Branch
+       .NH 2
+       Boonton Line
+.DE
+generates:
+.NH
+Erie-Lackawanna
+.NH 2
+Morris and Essex Division
+.NH 3
+Gladstone Branch
+.NH 3
+Montclair Branch
+.NH 2
+Boonton Line
+.PP
+An explicit ``.NH 0'' will reset the numbering of level 1
+to one, as here:
+.DS L
+       .NH 0
+       Penn Central
+.DE
+.ft 3
+.if n .ul 1
+.sp 1
+1.  Penn Central
+.PP
+.I
+Indented paragraphs.
+.R
+(Paragraphs with hanging numbers, e.g. references.)
+The sequence
+.DS L
+       .IP [1]
+       Text for first paragraph, typed
+       normally for as long as you would
+       like on as many lines as needed.
+       .IP [2]
+       Text for second paragraph, ...
+.DE
+produces
+.IP [1]
+Text for first paragraph, typed normally for as long
+as you would like on as many lines as
+needed.
+.IP [2]
+Text for second paragraph, ...
+.LP
+A series of indented paragraphs may be followed by an ordinary paragraph
+beginning with .PP or .LP,
+depending on whether you wish indenting or not.
+The command .LP was used here.
+.PP
+More sophisticated uses of .IP are also possible.
+If the label is omitted, for example, a plain block indent
+is produced.
+.DS L
+       .IP
+       This material will
+       just be turned into a
+       block indent suitable for quotations or
+       such matter.
+       .LP
+.DE
+will produce
+.IP
+This material
+will just be turned
+into a block indent
+suitable for
+quotations or such matter.
+.LP
+If a non-standard amount of indenting is required,
+it may be specified after the label (in character positions)
+and will remain in effect until the next .PP or .LP.
+Thus, the general form of the .IP command
+contains two additional fields: the label and the indenting
+length.  For example,
+.DS L
+       .IP first: 9
+       Notice the longer label, requiring larger
+       indenting for these paragraphs.
+       .IP second:
+       And so forth.
+       .LP
+.DE
+produces this:
+.IP first: 9
+Notice the longer label, requiring larger
+indenting for these paragraphs.
+.IP second:
+And so forth.
+.LP
+It is also possible to produce multiple nested indents;
+the command .RS indicates that the next .IP starts from the
+current indentation level.
+Each .RE will eat up one level of indenting
+so you should balance .RS and .RE commands.
+The .RS command should be thought of as ``move right'' and
+the .RE command as ``move left''.
+As an example
+.DS L
+       .IP 1.
+       Bell Laboratories
+       .RS
+       .IP 1.1
+       Murray Hill
+       .IP 1.2
+       Holmdel
+       .IP 1.3
+       Whippany
+       .RS
+       .IP 1.3.1
+       Madison
+       .RE
+       .IP 1.4
+       Chester
+       .RE
+       .LP
+.DE
+will result in
+.IP 1.
+Bell Laboratories
+.RS
+.IP 1.1
+Murray Hill
+.IP 1.2
+Holmdel
+.IP 1.3
+Whippany
+.RS
+.IP 1.3.1
+Madison
+.RE
+.IP 1.4
+Chester
+.RE
+.LP
+All of these variations on .LP leave the right
+margin untouched.  Sometimes, for purposes
+such as setting off a quotation, a paragraph indented
+on both right and left is required.
+.QP
+A single paragraph
+like this is obtained
+by preceding it with .QP.
+More complicated material (several paragraphs) should be
+bracketed with .QS and .QE.
+.LP
+.I
+Emphasis.
+.R
+To get
+italics
+(on the typesetter) or underlining (on the terminal)
+say
+.DS L
+       .I
+       as much text as you want
+       can be typed here
+       .R
+.DE
+.bd I
+.br
+as was done for
+.I
+these three words.
+.R
+The .R command restores the normal (usually Roman) font.
+If only one word is to be italicized, it
+may be just given on the line with the .I command,
+.br
+.bd I 3
+.DS
+       .I word
+.DE
+and in this case no .R is needed to restore
+the previous font.
+.B
+Boldface
+.R
+can be produced by
+.DS L
+       .B
+       Text to be set in boldface
+       goes here
+       .R
+.DE
+and also will be underlined on the terminal or line printer.
+As with .I, a single word can be placed in boldface
+by placing it on the same line as the .B command.
+.PP
+A few size changes
+can be specified similarly with
+the commands .LG (make larger), .SM (make smaller), and .NL
+(return to normal size).
+The size change
+is two points; the commands may be repeated for
+.SM
+increased
+.SM
+effect
+.NL
+(here one .NL canceled two .SM commands).
+.PP
+If actual
+.UL underlining
+as opposed to italicizing is required on the typesetter,
+the command
+.DS
+       .UL word
+.DE
+will underline a word.  There is no way to underline
+multiple words on the typesetter.
+.PP
+.I
+Footnotes.
+.R
+Material placed between lines with the commands .FS
+(footnote) and .FE (footnote end) will
+be collected, remembered, and finally placed
+at the bottom of the current page*.
+By default, footnotes are 11/12th the
+length of normal text,
+but this can be changed using the FL register (see below).
+.FS
+* Like this.
+.FE
+.PP
+.I
+Displays and Tables.
+.R
+To prepare displays of lines, such as tables, in which
+the lines should not be re-arranged,
+enclose them in the commands .DS and .DE
+.DS L
+       .DS
+       table lines, like the
+       examples here, are placed
+       between .DS and .DE
+       .DE
+.DE
+By default, lines between .DS and .DE are indented and left-adjusted.
+You can also center lines, or retain the left margin.
+Lines bracketed by .DS C and .DE commands are
+centered (and not re-arranged); lines bracketed
+by .DS L and .DE are left-adjusted, not indented, and
+not re-arranged.
+A plain .DS is equivalent
+to .DS I, which indents and left-adjusts.  Thus,
+.DS C
+these lines were preceded
+by .DS C and followed by
+a .DE command;
+.DE
+whereas
+.DS L
+these lines were preceded
+by .DS L and followed by
+a .DE command.
+.DE
+Note that .DS C centers each line; there is a variant .DS B
+that makes the display into a left-adjusted block of text, and
+then centers that entire block.
+Normally a display is kept together, on one page.
+If you wish to have a long display which
+may be split across page
+boundaries,
+use .CD, .LD, or .ID in place of
+the commands .DS C, .DS L, or .DS I respectively.
+An extra argument to the .DS I or .DS command is taken
+as an amount to indent.
+Note: it is tempting to assume that .DS R will right adjust
+lines, but it doesn't work.
+.PP
+.I
+Boxing words or lines.
+.R
+To draw rectangular boxes around words the command
+.DS L
+       .BX word
+.DE
+will print
+.BX word
+as shown.
+The boxes will not be neat on a terminal, and this
+should not be used as a substitute for italics.
+.B1
+Longer pieces of text may be boxed
+by enclosing them with .B1 and .B2:
+.DS L
+       .B1
+       text...
+       .B2
+.DE
+as has been done here.
+.B2
+.PP
+.I
+Keeping blocks together.
+.R
+If you wish to keep a table or other block of lines
+together on a page, there are ``keep - release'' commands.
+If a block of lines preceded by .KS and followed by .KE does
+not fit on the remainder of the current page, it will begin
+on a new page.
+Lines bracketed by .DS and .DE commands are automatically
+kept together this way.
+There is also a ``keep floating'' command: if the
+block to be kept together is preceded by .KF instead of .KS
+and does not fit
+on the current page, it will be moved down through the text
+until the top of the next page.  Thus, no large blank space
+will be introduced in the document.  
+.PP
+.I
+Nroff/Troff commands.
+.R
+Among the useful commands from the basic formatting programs
+are the following.  They all work with both typesetter and
+computer terminal output:
+.DS L
+       .bp - begin new page.
+       .br - ``break'', stop running text
+                 from line to line.
+       .sp n - insert n blank lines.
+       .na - don't adjust right margins.
+.DE
+.PP
+.I
+Date.
+.R
+By default, documents produced on computer terminals have the
+date at the bottom of each page; documents produced on
+the typesetter don't.
+To force the date, say ``.DA''.  To force no date, say ``.ND''.
+To lie about the date, say ``.DA July 4, 1776''
+which puts the specified date at the bottom of each page.
+The command
+.DS L
+       .ND May 8, 1945
+.DE
+in ".RP" format
+places the specified date on the cover sheet and nowhere else.
+Place this line before the title.
+.PP
+.I
+Signature line.
+.R
+You can obtain a signature line by placing
+the command .SG in the document.
+The authors' names will
+be output in place of the .SG line.
+An argument to .SG
+is used
+as a typing identification line, and
+placed after the signatures.
+The .SG command is ignored
+in released paper format.
+.PP
+.I
+Registers.
+.R
+Certain of the registers used by \-ms can
+be altered to change default
+settings.
+They should be changed with .nr commands,
+as with
+.DS
+       .nr PS 9
+.DE
+.bd I
+to make the default point size 9 point.
+If the effect is needed immediately, the
+normal
+.I
+troff
+.R
+command should be used
+in addition to changing the number register.
+.br
+.ps 9
+.vs 10p
+.TS
+c0 c c c
+c c c c
+a l l l.
+Register       Defines Takes   Default
+               effect
+PS     point size      next para.      10
+VS     line spacing    next para.      12 pts
+LL     line length     next para.      6\(fm\(fm
+LT     title length    next para.      6\(fm\(fm
+PD     para. spacing   next para.      0.3 VS
+PI     para. indent    next para.      5 ens
+FL     footnote length next FS 11/12 LL
+CW     column width    next 2C 7/15 LL
+GW     intercolumn gap next 2C 1/15 LL
+PO     page offset     next page       26/27\(fm\(fm
+HM     top margin      next page       1\(fm\(fm
+FM     bottom margin   next page       1\(fm\(fm
+.TE
+.ps \n(PS
+.vs \n(VS
+You may also alter
+the strings
+LH, CH, and RH which are the left, center, and right headings
+respectively; and similarly LF, CF, and RF which are strings in the
+page footer.
+The page number on
+.I
+output
+.R
+is taken from register PN, to permit
+changing its output style.
+For more complicated headers and footers
+the macros PT and BT can be redefined, as
+explained earlier.
+.bd I 3
+.PP
+.I
+Accents.
+.R
+To simplify typing certain foreign words,
+strings representing common accent marks are defined.
+They precede the letter over which the mark
+is to appear.
+Here are the strings:
+.TS
+center;
+c c6 c c.
+Input  Output  Input   Output
+\e*\(fme       \*'e    \e*~a   \*~a
+\e*\(gae       \*`e    \e*Ce   \h'0.15m'\v'-0.6m'\s6\zv\s0\v'0.6m'\h'-0.15m'e
+\e*:u  \*:u    \e*,c   \*,c
+\e*^e  \o'^e'
+.TE
+.PP
+.I
+Use.
+.R
+After your document is prepared and stored on a file,
+you can print it on a terminal with the command*
+.bd I
+.FS
+* If .2C was used, pipe the
+.I nroff
+output
+through
+.I col;
+make the first line of the input
+``.pi /usr/bin/col.''
+.br
+.FE
+.DS L
+.I
+   nroff \-ms file
+.R
+.DE
+and you can print it on the typesetter with the
+command
+.DS L
+.I
+   troff \-ms file
+.R
+.DE
+(many options are possible).
+In each case, if your document is stored in several files,
+just list all the filenames
+where we have used ``file''.
+If equations or tables are used,
+.I
+eqn
+.R
+and/or
+.I
+tbl
+.R
+must be invoked as preprocessors.
+.br
+.bd I 3
+.PP
+.I
+References and further study.
+.R
+If you have to do Greek or mathematics, see
+.I eqn
+[1]
+for equation setting.
+To aid
+.I eqn
+users,
+.I \-ms
+provides definitions of .EQ and .EN
+which normally center the equation and set it off slightly.
+An argument on .EQ is taken to be an equation
+number and placed in the right margin near the equation.
+In addition, there are three special arguments to EQ:
+the letters C, I, and L indicate centered (default),
+indented, and left adjusted equations, respectively. 
+If there is both a format argument
+and an equation number,
+give the format argument first, as in
+.bd I
+.DS
+       .EQ L (1.3a)
+.DE
+for a left-adjusted equation numbered (1.3a).
+.PP
+Similarly,
+the macros .TS and .TE
+are defined
+to separate tables (see [2]) from text with a little space.
+A very long table with a heading may be broken
+across pages by beginning it with .TS H
+instead of .TS,
+and placing the line .TH in the table data
+after the heading.  If the table
+has no heading repeated from page to page,
+just use the ordinary .TS and .TE macros.
+.PP
+To learn more about
+.I troff
+see
+[3] for a general introduction, and [4]
+for the full details (experts only).
+Information on related UNIX commands
+is in [5].
+For jobs that do not seem well-adapted
+to \-ms, consider other macro packages.
+It is often far easier to write a specific macro packages
+for such tasks as imitating particular journals than
+to try to adapt \-ms.
+.PP
+.bd I 3
+.I
+Acknowledgment.
+.R
+Many thanks are due to Brian Kernighan for
+his help in the design and implementation of this package,
+and for his assistance in preparing this manual.
+.bd I
+.SH
+.ce
+References
+.PP
+.IP [1]
+B. W. Kernighan and L. L. Cherry,
+.I
+Typesetting Mathematics \(em Users Guide (2nd edition),
+.R
+Bell Laboratories Computing Science Report no. 17.
+.IP [2]
+M. E. Lesk,
+.I
+Tbl \(em A Program to Format Tables,
+.R
+Bell Laboratories Computing Science Report no. 45.
+.IP [3]
+B. W. Kernighan,
+.I
+A Troff Tutorial,
+.R
+Bell Laboratories, 1976.
+.IP [4]
+J. F. Ossanna,
+.I
+Nroff\|/Troff Reference Manual,
+.R
+Bell Laboratories Computing Science Report no. 51.
+.IP [5]
+K. Thompson and D. M. Ritchie,
+.I
+UNIX Programmer's Manual,
+.R
+Bell Laboratories, 1978.
+.1C
+.SH
+.ce
+Appendix A
+.ce
+List of Commands
+.ft R
+.TS
+expand;
+l2 l5 l2 l.
+1C     Return to single column format. LG      Increase type size.
+2C     Start double column format.     LP      Left aligned block paragraph.
+AB     Begin abstract. 
+AE     End abstract.   
+AI     Specify author's institution.   
+AU     Specify author. ND      Change or cancel date.
+B      Begin boldface. NH      Specify numbered heading.
+DA     Provide the date on each page.  NL      Return to normal type size.
+DE     End display.    PP      Begin paragraph.
+DS     Start display (also CD, LD, ID).        
+EN     End equation.   R       Return to regular font (usually Roman).
+EQ     Begin equation. RE      End one level of relative indenting.
+FE     End footnote.   RP      Use released paper format.
+FS     Begin footnote. RS      Relative indent increased one level.
+               SG      Insert signature line.
+I      Begin italics.  SH      Specify section heading.
+               SM      Change to smaller type size.
+IP     Begin indented paragraph.       TL      Specify title.
+KE     Release keep.   
+KF     Begin floating keep.    UL      Underline one word.
+KS     Start keep.     
+.TE
+.sp
+.ce
+.ft B
+Register Names
+.ft R
+.PP
+The following register names are used by \-ms internally.
+Independent use of these names in one's own macros may
+produce incorrect output.
+Note that no lower case letters are used in any \-ms internal name.
+.TS
+ expand;
+c s s  s s s  s s s  s s
+l l l  l l l  l l l  l l.
+Number registers used in \-ms
+:      DW      GW      HM      IQ      LL      NA      OJ      PO      T.      TV
+#T     EF      H1      HT      IR      LT      NC      PD      PQ      TB      VS
+.T     FC      H2      IF      IT      MF      ND      PE      PS      TC      WF
+1T     FL      H3      IK      KI      MM      NF      PF      PX      TD      YE
+AV     FM      H4      IM      L1      MN      NS      PI      RO      TN      YY
+CW     FP      H5      IP      LE      MO      OI      PN      ST      TQ      ZN
+.TE
+.sp
+.TS
+expand;
+c s s  s s s  s s s  s s
+l l l  l l l  l l l  l l.
+String registers used in \-ms
+\(fm   A5      CB      DW      EZ      I       KF      MR      R1      RT      TL
+\(ga   AB      CC      DY      FA      I1      KQ      ND      R2      S0      TM
+^      AE      CD      E1      FE      I2      KS      NH      R3      S1      TQ
+~      AI      CF      E2      FJ      I3      LB      NL      R4      S2      TS
+:      AU      CH      E3      FK      I4      LD      NP      R5      SG      TT
+,      B       CM      E4      FN      I5      LG      OD      RC      SH      UL
+1C     BG      CS      E5      FO      ID      LP      OK      RE      SM      WB
+2C     BT      CT      EE      FQ      IE      ME      PP      RF      SN      WH
+A1     C       D       EL      FS      IM      MF      PT      RH      SY      WT
+A2     C1      DA      EM      FV      IP      MH      PY      RP      TA      XD
+A3     C2      DE      EN      FY      IZ      MN      QF      RQ      TE      XF
+A4     CA      DS      EQ      HO      KE      MO      R       RS      TH      XK
+.TE
+.ne 4i
+.br
+.ne 5i
+.ta 1i 2i 3i 4i
+.vs .6i
+.nf
+.in 1i
+.ll 4.2i
+.ce
+Order of Commands in Input
+
+       RP
+TL
+AU
+AI
+       AB
+       AE
+
+               NH, SH
+                       PP, LP
+                       text ...
+.br
+.ce
+Figure 1
+.fi
+.in 0
diff --git a/usr/doc/msmacros/refcard b/usr/doc/msmacros/refcard
new file mode 100644 (file)
index 0000000..efae7cb
--- /dev/null
@@ -0,0 +1,1253 @@
+.fp 3 H
+.po .5i
+.de I
+.ft 2
+..
+.de R
+.ft 1
+..
+.de B
+.bd R 2
+\\$1
+.bd R
+..
+.de hh
+.br
+.vs 10p
+.ps 12
+.bd 1 3
+.ce
+\\$1
+.ps 9
+.br
+.bd 1
+.sp
+..
+.de NP
+'po 0
+.ps 9
+.ta .25i 3.75i 7.25i 7.7i
+\(rn\t|\t|\t|\t\(rn
+'po
+'sp .2i
+.mk z
+..
+.de FT
+.po 0
+.ps 9
+.ta .25i 3.75i 7.25i
+       |       |       |
+.po .5i
+..
+.wh -8p FT
+.de b1
+.br
+.tm left col bottom at \\n(nl
+.po +3.5i
+.sp |\\nzu
+.ph
+..
+.de b2
+.br
+.tm right col bottom at \\n(nl
+.po -3.5i
+.bp
+.ph
+..
+.de ph
+.nr x +1
+.tl ''\\nx''
+.sp .2i
+..
+.nr x 1
+.wh 0 NP
+.ll 3i
+.lt 3i
+.nr LL 3i
+.nr IQ 4
+.nr IR 4
+.de IP
+.RT
+.if \\n(IP=0 .nr IP +1
+.if \\n(.$ .LB "\\$1"
+.if !\\n(.$ .LB
+..
+.de RT
+.if \\n(IP .in -\\n(IQn
+.if \\n(IP .nr IP -1
+..
+.de LP
+.RT
+.ti 0
+.ne 3
+.if \\n(.$ .LB \\$1
+..
+.de LB
+.in +\\n(IQn
+.ta \\n(IQn
+.if \\n(.$ .ti -\\n(IQn
+.if \\n(.$ \\$1\t\c
+..
+.de RS
+.in +\\n(IRn
+..
+.      \"RE - retreat to the left
+.de RE
+.br
+.in -\\n(IRn
+..
+.br
+.rs
+.sp 1i
+.ps 14
+.vs 16p
+.ce 3
+A Guide to Preparing
+Documents with \-ms
+.sp 2
+.ps 10
+.vs 12p
+.ft I
+.ce
+M. E. Lesk
+.ft R
+.lt \n(.lu
+.sp .5
+.tl 'Bell Laboratories''August 1978'
+.sp .5
+.tl xx\l'\n(.lu'xx
+.sp 1
+.bd I 2
+.vs 11p
+.fi
+This guide gives some simple examples of
+document preparation on Bell Labs computers,
+emphasizing the use of the \fI\-ms\fR macro
+package.
+It enormously abbreviates
+information in
+.IP 1.
+.I
+Typing Documents on UNIX and GCOS,
+.R
+by M. E. Lesk;
+.IP 2.
+.I
+Typesetting Mathematics \- User's Guide,
+.R
+by B. W. Kernighan and L. L. Cherry; and
+.IP 3.
+.I
+Tbl \- A Program to Format Tables,
+.R
+by M. E. Lesk.
+.LP
+These memos are all included in the
+.I
+UNIX Programmer's Manual, Volume 2.
+.R
+The new user should also have
+.I
+A Tutorial Introduction to the UNIX Text Editor,
+.R
+by B. W. Kernighan.
+.sp .5
+For more detailed information, read
+.I
+Advanced Editing on UNIX
+.R
+and
+.I
+A Troff Tutorial,
+.R
+by B. W. Kernighan,
+and (for experts)
+.I
+Nroff\^/Troff Reference Manual
+.R
+by J. F. Ossanna.
+Information on related commands is
+found (for UNIX users) in
+.I
+UNIX for Beginners
+.R
+by B. W. Kernighan
+and the
+.I
+UNIX Programmer's Manual
+.R
+by K. Thompson and D. M. Ritchie.
+.br
+.vs 12p
+.sp 1.5
+.ce
+.ps +2
+Contents
+.nf
+.ps
+.sp .5
+.in .2i
+.bd I
+.ta 2.4i
+.cs I 25
+A TM \fI\ 1\fR 2
+A released paper \fI\ 1\fR 3
+An internal memo, and headings \fI\ 1\fR 4
+Lists, displays, and footnotes \fI\ 1\fR 5
+Indents, keeps, and double column \fI\ 1\fR 6
+Equations and registers \fI\ 1\fR 7
+Tables and usage \fI\ 1\fR 8
+.in 0
+.cs I
+.sp 1
+.fi
+.EQ
+delim $$
+.EN
+Throughout the examples, input is shown in
+.ft 3
+.br
+.ti +2n
+this Helvetica sans serif font
+.ft R
+.br
+while the resulting output is shown in
+.ti +2n
+this Times Roman font.
+.nf
+.sp  2
+.ce
+UNIX Document no. 1111
+.ps 9
+.vs 10p
+.EQ
+gsize 9
+.EN
+.b1
+.hh "Commands for a TM"
+.nf
+.ft 3
+\&.TM 1978-5b3 99999 99999-11
+\&.ND April 1, 1976
+\&.TL
+\&The Role of the Allen Wrench in Modern
+\&Electronics
+\&.AU "MH 2G-111" 2345
+\&J. Q. Pencilpusher
+\&.AU "MH 1K-222" 5432
+\&X. Y. Hardwired
+\&.AI
+\&.MH
+\&.OK
+\&Tools
+\&Design
+\&.AB
+\&This abstract should be short enough to
+\&fit on a single page cover sheet.
+\&It must attract the reader into sending for
+\&the complete memorandum.
+\&.AE
+\&.CS 10 2 12 5 6 7
+\&.NH
+\&Introduction.
+\&.PP
+\&Now the first paragraph of actual text ...
+\&...
+\&Last line of text.
+\&.SG MH-1234-JQP/XYH-unix
+\&.NH
+\&References ...
+.ft
+.sp
+.fi
+Commands not needed in a particular
+format are ignored.
+.sp 
+.ps 8
+.vs 9p
+.mk a
+.sp .20i
+.ll 3i
+.nf
+\h'2n'\s16\(bs\s7 $fat roman size 7  "Bell Laboratories"$        \s8Cover Sheet for TM
+.sp
+\s6\l'3i'
+.fi
+.ps 7
+.ft 2
+.sp 1p
+This information is for employees of Bell Laboratories.  (GEI 13.9-3)\p
+.ft 1
+.nf
+.vs 4p
+\s6\l'3i'
+.vs 9p
+.sp
+.ll 3.0i
+.ps 7
+.ta .25i 2.25i 2.45i
+.mk
+Title- \s8
+.rt
+.in .25i
+.hy 0
+.bd 1 2
+The Role of the Allen Wrench
+in Modern Electronics
+.hy 14
+.br
+.bd 1
+.rt
+.ll \\n(LLu
+.in 2.1i
+\s7Date- \s8
+.rt
+.in 2.35i
+.bd 1 2
+.ps 8
+April 1, 1976
+.sp
+.bd 1
+.ti 2.1i
+.mk
+\s7TM- \s8
+.br
+.rt
+.bd 1 2
+1978-5b3
+.rt
+.in 0
+.bd 1
+.sp
+.mk
+\s7Other Keywords- \kQ 
+.rt
+.in \nQu
+.bd 1 2
+.ps 8
+Tools
+Design
+.rm OK
+.rm OD
+.in 0
+.bd 1
+.if t .sp .35i
+.ps 7
+.ta 1.05i 1.7i 2.0i
+Author Location        Ext.    Charging Case- \s8$fat roman size 8 99999$
+.nf
+.mk
+.bd 1 2
+.ps 8
+J. Q. Pencilpusher     MH 2G-111       2345
+.rt
+.br
+.bd 1
+                       \s7Filing Case- \s8$fat roman size 8 "99999a"$
+.br
+.bd 1 2
+X. Y. Hardwired        MH 1K-222       5432
+.sp .2i
+.bd 1
+.br
+.ll 3i
+.ce
+.ft I
+ABSTRACT
+.ft 1
+.sp
+.fi
+.ps 8
+.ll 2.5i
+.in +.25i
+.ti +2
+This abstract should be short enough to fit
+on a single page cover sheet.
+It must attract the reader into sending for the
+complete memorandum.
+.in
+.ll
+.sp .4i
+.nf
+\l'3i'
+.ta .9i 1.8i 2.7i
+.sp 5p
+Pages Text   10        Other   2       Total   12
+.if t .sp 8p
+.if n .sp 
+.if t No. Figures    5 No. Tables   6  No. Refs.   7   \b'|||||\ \ '
+\l'3i'
+.ps 6
+.if n .sp
+.lt 3i
+.tl 'E-1932-U (6-73)''SEE REVERSE SIDE FOR DISTRIBUTION LIST'
+.sp .20i
+.de eb
+.sp -1
+.nf
+\h'-1m'\L'|\\nau-1'\l'\\n(.lu+2m\(ul'\L'-|\\nau+1'\l'|0u-1m\(ul'
+.fi
+..
+.eb
+.b2
+.hh "A Released Paper with Mathematics"
+.ft 3
+.nf
+.EQ
+delim off
+.EN
+\&.EQ
+\&delim $$
+\&.EN
+\&.RP
+.sp
+.ft 1
+\&... (as for a TM)
+.sp
+.ft 3
+\&.CS 10 2 12 5 6 7
+\&.NH
+\&Introduction
+\&.PP
+\&The solution to the torque handle equation
+\&.EQ (1)
+\&sum from 0 to inf F ( x sub i ) = G ( x )
+\&.EN
+\&is found with the transformation $ x = rho over
+\&theta $ where $ rho = G prime (x) $ and $theta$
+\&is derived ...
+.ft 1
+.sp 2
+.mk a
+.ll 3i
+.ps 9
+.bd 1 2
+.sp .4i
+.ce 2
+.vs 11p
+The Role of the Allen Wrench
+in Modern Electronics
+.sp .7
+.ce 3
+.ft 2
+.bd 1
+.ps 8
+.vs 9p
+J. Q. Pencilpusher
+.sp .7
+X. Y. Hardwired
+.sp .7
+.ce 2
+.ft 1
+Bell Laboratories
+Murray Hill, New Jersey 07974
+.sp 2
+.ce
+.ft 2
+ABSTRACT
+.ft 1
+.sp .7
+.in +.25i
+.ll 2.75i
+.fi
+.ad
+.ti +2n
+This abstract should be short enough to fit
+on a single page cover sheet.
+It must attract the reader into sending for the
+complete memorandum.
+.sp 5v
+.in
+.ll
+April 1, 1976
+.sp .2i
+.eb
+.ll 3i
+.sp .5v
+.sp 3.5p
+.mk a
+.lt 3i
+.ps 9
+.sp .25i
+.bd 1 2
+.ce 2
+.vs 11p
+The Role of the Allen Wrench
+in Modern Electronics
+.sp
+.ce 3
+.bd 1
+.ft 2
+.ps 8
+.vs 9p
+J. Q. Pencilpusher
+.sp
+X. Y. Hardwired
+.sp
+.ce 2
+.ft 1
+Bell Laboratories
+Murray Hill, New Jersey 07974
+.sp 3
+.ce
+.de SH
+.bd 1 2
+.sp
+.ce 0
+.in 0
+..
+.de PP
+.sp .3
+.ft 1
+.bd 1
+.ti +2n
+..
+.SH
+1. Introduction
+.PP
+The solution to the torque handle equation
+.br
+.di xx
+.EQ
+delim $$
+gsize 8
+sum from 0 to inf F ( x sub i ) = G ( x )
+.EN
+.br
+.di
+.tl ''\*(10'(1)'
+is found with the transformation
+$ x = rho over theta $ where $ rho = G prime ( x )$
+and $theta$ is derived from well-known principles.
+......PP
+......ft 2
+.....The Ascent of the Riffelberg,
+......ft 1
+.....by Mark Twain.
+.....I sat silent some time, then turned to Harris and said:
+.....``My mind is made up.''
+.....Something in my tone struck him; and when he glanced
+.....at my eye and read what was written there, his face paled
+.....perceptibly.  He hesitated a moment, then said:
+.....``Speak.''
+.....I answered, with perfect calmness:
+......ft 2
+.....``I will ascend the Riffelberg.''
+......ft 1
+.....If I had shot my poor friend he could not have fallen from
+.....his chair more suddenly.  If I had been his father he
+.....could not have pleaded harder to get me to give up my
+.....purpose.  But I turned a deaf ear to all he said.  When he
+.....perceived at last that nothing could alter my determination,
+.....he ceased to urge, and for a while the deep\p
+.sp .5v
+.sp 3.5p
+.eb
+.b1
+.hh "An Internal Memorandum"
+.ft 3
+.nf
+\&.IM
+\&.ND January 24, 1956
+\&.TL
+\&The 1956 Consent Decree
+\&.AU
+\&Able, Baker &
+\&Charley, Attys.
+\&.PP
+Plaintiff, United States of America, having filed
+its complaint herein on January 14, 1949; the
+defendants having appeared and filed their
+answer to such complaint denying the
+substantive allegations thereof; and the parties,
+by their attorneys, ...
+.ft
+.sp
+.ft 1
+.mk a
+.br
+.sp .20i
+.ta 2.1i
+.ll 3i
+.ps 18
+.br
+       \(bs
+.vs .20i
+.ps 7
+.br
+.bd 1 2
+.nf
+       Bell Laboratories
+.fi
+.na
+.bd 1
+.ps 7
+.vs 8p
+.sp .12i
+.mk
+.fi
+.ll
+.ll 2.0i
+Subject:
+.ps 8
+.hy 0
+.br
+.bd 1 2
+.sp -1
+\h'\w'\s7Subject: \s0'u'The 1956 Consent Decree
+.hy 14
+.br
+.bd 1
+.rt
+.ll 3.25i
+.in 2.10i
+.ps 7
+.mk
+.ti -6n
+date:
+.br
+.bd 1 2
+.rt
+.ps 8
+January 24, 1956
+.sp
+.bd 1
+.ps 7
+.mk
+.ti -6n
+from:
+.ps 8
+.nf
+.br
+.bd 1 2
+.rt
+Able, Baker &
+Charley, Attys.
+.br
+.bd 1
+.sp
+.sp
+.ll 3i
+.ad
+.fi
+.in 0
+.de SH
+.sp .5
+.bd 1 2
+..
+.de PP
+.sp .3
+.bd 1
+.ti +2n
+..
+.PP
+Plaintiff, United States of America, having filed its complaint
+herein on January 14, 1949; the defendants having appeared and
+filed their answer to such complaint denying the substantive
+allegations thereof; and the parties, by their attorneys, having
+severally consented to the entry of this Final Judgment without
+trial or adjudication of any issues of fact or law herein and without
+this Final Judgment constituting any evidence or admission by any
+party in respect of any such issues;
+.PP
+Now, therefore before any testimony has been taken herein, and
+without trial or adjudication of any issue of fact or law herein,
+and upon the consent of all parties hereto, it is hereby
+.PP
+Ordered, adjudged and decreed as follows:
+.SH
+I.
+[Sherman Act]
+.PP
+This Court has jurisdiction of the subject matter herein and of all
+the parties hereto.
+The complaint states a claim upon which relief may be granted
+against each of the defendants under Sections 1, 2 and 3 of the
+Act of Congress of July 2, 1890, entitled ``An act to protect
+trade and commerce against unlawful restraints and monopolies,''
+commonly known as the Sherman Act, as amended.
+.SH
+II.
+[Definitions]
+.PP
+For the purposes of this Final Judgment:
+.PP
+(a)  ``Western'' shall mean the defendant Western Electric
+Company, Incorporated.
+.sp .25i
+.eb
+.sp
+.ft 1
+.bd 1
+
+.ps 9
+.vs 10p
+Other formats possible (specify before \f3.TL\f1) are:
+\&\f3.MR\f1 (``memo for record''), \f3.MF\f1
+(``memo for file''),
+\&\f3.EG\f1 (``engineer's notes'') and \f3.TR\f1
+(Computing Science Tech. Report).
+.sp 2
+.hh "Headings"
+.sp .5
+.nf
+.ft 3
+.ta 2i
+\&.NH  .SH
+Introduction.  Appendix I
+\&.PP  .PP
+text text text text text text
+.ft 1
+.bd 1 2
+.sp
+.br
+1.  Introduction       Appendix I
+.br
+.sp .3v
+.bd 1
+\0\0text text text     \0\0text text text
+.br
+.b2
+.hh "A Simple List"
+.ft 3
+.nf
+\&.IP 1.
+\&J. Pencilpusher and X. Hardwired,
+\&.I
+\&A New Kind of Set Screw,
+\&.R
+\&Proc. IEEE
+\&.B 75
+\&(1976), 23-255.
+\&.IP 2.
+\&H. Nails and R. Irons,
+\&.I
+\&Fasteners for Printed Circuit Boards,
+\&.R
+\&Proc. ASME
+\&.B 23
+\&(1974), 23-24.
+\&.LP  \fP(terminates list)
+.sp 1.5
+.EQ
+delim $$
+gsize 9
+.EN
+.fi
+.IP 1.
+J. Pencilpusher and X. Hardwired,
+.I
+A New Kind of Set Screw,
+.R
+Proc. IEEE
+$fat 75$
+(1976), 23-255.
+.IP 2.
+H. Nails and R. Irons,
+.I
+Fasteners for Printed Circuit Boards,
+.R
+Proc. ASME
+$fat 23$
+(1974), 23-24.
+.LP
+.sp 2
+.EQ
+delim off
+.EN
+.hh "Displays"
+.nf
+.ft 3
+\&text text text text text text 
+\&.DS
+\&and now
+\&for something
+\&completely different
+\&.DE
+\&text text text text text text 
+.ft
+.sp 1
+.fi
+hoboken harrison newark roseville avenue grove street
+east orange brick church orange highland avenue
+mountain station south orange maplewood millburn short hills
+summit new providence
+.in .4i
+.sp .5
+.nf
+and now
+for something
+completely different
+.sp .5
+.in
+.fi
+murray hill berkeley heights
+gillette stirling millington lyons basking ridge
+bernardsville far hills peapack gladstone
+.sp .5
+Options: \f3.DS L\f1: left-adjust;
+\&\f3.DS C\f1: line-by-line center; \f3.DS B\f1: make block, then center.
+.sp  2
+.hh "Footnotes"
+.nf
+.ft 3
+\&Among the most important occupants
+\&of the workbench are the long-nosed pliers.
+\&Without these basic tools*
+\&.FS
+\&* As first shown by Tiger & Leopard
+\&(1975).
+\&.FE
+\&few assemblies could be completed.  They may
+\&lack the popular appeal of the sledgehammer
+.ft
+.sp 1.5
+.fi
+Among the most important occupants
+of the workbench are the long-nosed
+pliers.
+Without these basic tools*
+few assemblies could be completed.
+They may lack the
+popular appeal of the sledgehammer
+.br
+\l'1i'
+.ps -1
+.br
+* As first shown by Tiger & Leopard (1975).
+.ps
+.br
+.nf
+.b1
+.hh "Multiple Indents"
+.ft 3
+\&This is ordinary text to point out
+\&the margins of the page.
+\&.IP 1.
+\&First level item
+\&.RS
+\&.IP a)
+\&Second level.
+\&.IP b)
+\&Continued here with another second
+\&level item, but somewhat longer.
+\&.RE
+\&.IP 2.
+\&Return to previous value of the
+\&indenting at this point.
+\&.IP 3.
+\&Another
+\&line.
+.ft
+.sp 1.5v
+.fi
+This is ordinary text to point out
+the margins of the page.
+.IP 1.
+First level item
+.RS
+.IP a)
+Second level.
+.IP b)
+Continued here with another second level
+item, but somewhat longer.
+.RE
+.IP 2.
+Return to previous value of the
+indenting at this point.
+.IP 3.
+Another
+line.
+.LP
+.sp 2
+.hh "Keeps"
+.fi
+Lines bracketed by the following commands are kept together,
+and will appear entirely on one page:
+.TS
+center;
+Lf3 5 L8 Lf3 5 L.
+\&.KS  not moved       .KF     may float
+\&.KE  through text    .KE     in text
+.TE
+.nf
+.sp 2
+.hh "Double Column"
+.nf
+.hy 0
+.ft 3
+\&.TL
+The Declaration of Independence
+\&.2C
+.na
+.fi
+\&.PP
+.br
+When in the course of human events, it becomes
+necessary for one people to dissolve the political bonds 
+which have connected them with another, and to assume 
+among the powers of the earth the separate and equal station
+to which the laws of Nature and of Nature's God entitle them,
+a decent respect to the opinions of
+.ft
+.de xy
+.if \\n(xy=0 'rt
+.if \\n(xy=0 'po +1.58i
+.nr xy +1
+..
+.wh 10.45i xy
+.br
+.ad
+.hy 1 
+.sp 1.5
+.ce
+The Declaration of Independence
+.sp .5
+.ll 1.42i
+.mk
+.fi
+.ti +2n
+When in the course of human events, it becomes
+necessary for one people to dissolve the political bonds which have
+connected them with another, and to assume among the 
+powers of the earth the separate and equal station to which
+the laws of Nature and of Nature's God entitle them, a decent
+respect to the opinions of mankind requires that they should
+declare the causes which impel them to the separation.
+.ti +2n
+We hold these truths to be self-evident, that all men
+are created equal, that they are endowed by their creator
+with certain unalienable rights, that among these are life, liberty,
+and the pursuit of happiness.  That to secure these rights,
+governments are instituted among men,\p
+.br
+.po -1.58i
+.ll 3i
+.lt 3i
+.rm xy
+.b2
+.hh "Equations"
+.nf
+.de EQ  \"equation, breakout and display
+.nr EF \\n(.u
+.rm EE
+.nr LE 1       \" 1 is center
+.ds EL \\$1
+.if "\\$1"L" .ds EL \\$2
+.if "\\$1"L" .nr LE 0
+.if "\\$1"C" .ds EL \\$2
+.if "\\$1"I" .nr LE 0
+.if "\\$1"I" .ds EE \\h'5n'
+.if "\\$1"I" .if !"\\$3"" .ds EE \\h'\\$3n'
+.if "\\$1"I" .ds EL \\$2
+.nf
+.di EZ
+..
+.de EN  \" end of a displayed equation
+.di
+.rm EZ
+.lt \\n(.lu
+.pc
+.if \\n(dn>0 .if \\n(LE>0 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts
+.if \\n(dn>0 .if \\n(LE=0 .tl '\\*(EE\\*(10''\\*(EL'
+.pc %
+.lt \\n(LLu
+.if \\n(EF>0 .fi
+.rm EL
+.rm 10
+.nr PE \\n(.d
+..
+.ft 3
+A displayed equation is marked
+with an equation number at the right margin
+by adding an argument to the EQ line:
+\&.EQ (1.3)
+x sup 2 over a sup 2 ~=~ sqrt {p z sup 2 +qz+r}
+\&.EN
+.ft
+.sp
+.fi
+A displayed equation is marked with an equation number
+at the right margin by adding an argument to the EQ line:
+.sp .4
+.EQ (1.3)
+x sup 2 over a  sup 2
+~=~ sqrt { p z sup 2 + q z + r }
+.EN
+.sp 
+.nf
+.ft 3
+\&.EQ  I (2.2a)
+bold V bar sub nu~=~left [ pile {a above b above
+c } right ] + left [ matrix { col { A(11) above .
+above . } col { . above . above .} col {. above .
+above A(33) }} right ] cdot left [ pile { alpha
+above beta above  gamma } right ]
+.nf
+\&.EN
+.ft
+.sp
+.EQ I (2.2a)
+fat {roman  V}  bar sub nu~=~left [ pile {a above b above c}
+right ] + left [ matrix { col { A(11) above .
+above . } col { . above . above .} col {. above .
+above A(33) }} right ] cdot left [ pile { alpha
+above beta above  gamma } right ]
+.EN
+.sp
+.ft 3
+\&.EQ  L
+F hat ( chi ) ~ mark = ~ | del V | sup 2
+\&.EN
+\&.EQ  L
+.fi
+.na
+lineup =~ {left ( {partial V} over {partial x} right ) } sup 2
++ { left ( {partial V} over {partial y} right ) } sup 2
+~~~~~~ lambda -> inf
+.nf
+\&.EN
+.ft
+.ta .25i
+.sp
+.EQ L
+F hat ( chi ) ~ mark = ~ | del V | sup 2
+.EN
+.sp 1
+.EQ L
+delim off
+lineup =~ {left ( {partial V} over {partial x} right ) } sup 2
++ { left ( {partial V} over {partial y} right ) } sup 2
+~~~~~~ lambda -> inf
+.EN
+.rm EQ
+.rm EN
+.fi
+.sp
+.ft 3
+$ a dot $,  $ b dotdot$,  $ xi tilde times
+y vec$:
+.EQ
+delim $$
+.EN
+.ft R
+.br
+.sp
+$ a dot $,  $ b dotdot$,  $ xi tilde times
+y vec$.
+.EQ
+delim off
+.EN
+\h'.3i'(with delim $$ on, see panel 3).
+.sp .5
+See also the equations in the second table, panel 8.
+.nf
+.br
+.bd I
+.sp 2
+.ft R
+.hh "Some Registers You Can Change"
+.nf
+.mk
+Line length
+       .nr LL 7i
+.sp .4
+Title length
+       .nr LT 7i
+.sp .4
+Point size
+       .nr PS 9
+.sp .4
+Vertical spacing
+       .nr VS 11
+.sp .4
+Column width
+       .nr CW 3i
+.sp .4
+Intercolumn spacing
+       .nr GW .5i
+.sp .4
+Margins \- head and foot
+       .nr HM .75i
+       .nr FM .75i
+.sp .4
+Paragraph indent
+       .nr PI 2n
+.rt
+.po +1.6i
+Paragraph spacing
+       .nr PD 0
+.sp .4
+Page offset
+       .nr PO 0.5i
+.sp .4
+Page heading
+       .ds CH Appendix 
+           (center)
+       .ds RH 7-25-76
+           (right)
+       .ds LH Private
+           (left)
+.sp .4
+Page footer
+       .ds CF Draft
+       .ds LF
+       .ds RF  \u similar \d
+.sp .4
+Page numbers
+       .nr % 3
+.po -1.6i
+.b1
+.hh Tables
+.nf
+.ds T \|\h'.35n'\v'-.1n'\s6\zT\s0\v'.1n'\h'-.35n'\(ci\|
+.ft 3
+.EQ
+delim off
+.EN
+\&.TS\h'.5i'\fR(\f3\*T\f1 indicates a tab)\f3
+\&allbox;
+.nr x \n(nl
+\&c s s
+\&c c c
+\&n n n.
+\&AT&T Common Stock
+\&Year\*TPrice\*TDividend
+\&1971\*T41-54\*T$2.60
+\&2\*T41-54\*T2.70
+\&3\*T46-55\*T2.87
+\&4\*T40-53\*T3.24
+\&5\*T45-52\*T3.40
+\&6\*T51-59\*T.95*
+\&.TE
+\&* (first quarter only)
+.ft 1
+.nr y \n(nl
+.sp |\nxu
+.di qq
+.TS
+allbox;
+c s s
+c c c
+n1 n1 n1.
+AT&T Common Stock
+Year   Price   Dividend
+1971   41-54   $2.60
+2      41-54   2.70
+3      46-55   2.87
+4      40-53   3.24
+5      45-52   3.40
+6      51-59   .95*
+.TE
+* (first quarter only)
+.br
+.di
+.in 3i-\n(TWu
+.nf
+.qq
+.in 0
+.if \ny>\n(nl .sp |\nyu
+.sp .5
+.ft 1
+.fi
+.ad
+The meanings of the key-letters describing
+the alignment of each entry are:
+.br
+.nf
+.TS
+center;
+cf3 l6 cf3 l.
+c      center  n       numerical
+r      right-adjust    a       subcolumn
+l      left-adjust     s       spanned
+.TE
+.fi
+The global table options are
+.ft 3
+.bd I 2
+.hy 0
+center, expand, box, doublebox, allbox,
+tab (\f2x\fP\|)
+.ft 1
+and
+.ft 3
+linesize (\f2n\fP\|).
+.br
+.hy 1
+.ft 1
+.bd I
+.sp 1
+.nf
+.ta .1i
+.ft 3
+\&.TS\h'.5i'\fR(with delim $$ on, see panel 3)\fP
+\&doublebox, center;
+\&c c
+\&l l.
+\&Name\*TDefinition
+\&.sp
+\&Gamma\*T$GAMMA (z) = int sub 0 sup inf \e
+        t sup {z-1} e sup -t dt$
+\&Sine\*T$sin (x) = 1 over 2i ( e sup ix - e sup -ix )$
+\&Error\*T$ roman erf (z) = 2 over sqrt pi \e
+       int sub 0 sup z e sup {-t sup 2} dt$
+\&Bessel\*T$ J sub 0 (z) = 1 over pi \e
+       int sub 0 sup pi cos ( z sin theta ) d theta $
+\&Zeta\*T$ zeta (s) = \e
+       sum from k=1 to inf k sup -s ~~( Re~s > 1)$
+\&.TE
+.ft
+.sp
+.EQ
+delim $$
+.EN
+.vs +2p
+.TS
+doublebox, center;
+c c
+l l.
+Name   Definition
+.sp
+Gamma  $GAMMA (z) = int sub 0 sup inf  t sup {z-1} e sup -t dt$
+Sine   $sin (x) = 1 over 2i ( e sup ix - e sup -ix )$
+Error  $ roman erf (z) = 2 over sqrt pi int sub 0 sup z e sup {-t sup 2} dt$
+Bessel $ J sub 0 (z) = 1 over pi int sub 0 sup pi cos ( z sin theta ) d theta $
+Zeta   $ zeta (s) = sum from k=1 to inf k sup -s ~~( Re~s > 1)$
+.TE
+.vs -2p
+.br
+.bd I 2
+.sp 1
+.hh "Usage"
+.ps 9
+.vs 10p
+.ds & \\s-1&\\s0
+.TS
+l.
+\h'.25i'Documents with just text:
+troff -ms files 
+\h'.25i'With equations only:
+eqn files | troff -ms 
+\h'.25i'With tables only:
+tbl files | troff -ms 
+\h'.25i'With both tables and equations:
+tbl files\||\|eqn\||\|troff -ms
+_
+.TE
+.ft R
+.fi
+.sp .5
+The above generates \s-2STARE\s0 output on
+\s-2GCOS\s0: replace
+.ft 3
+\-st
+.ft R
+with
+.ft 3
+\-ph
+.ft R
+for typesetter output.
+.ft 1
+.bd I
+.b2